From 0e91435a07bace3d997417c9e9e7a0339de29870 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 8 Sep 2020 09:31:04 +0200 Subject: [PATCH] chore - trusted types search --- .vscode/searches/TrustedTypes.code-search | 493 ++++++++++++++++++++++ 1 file changed, 493 insertions(+) create mode 100644 .vscode/searches/TrustedTypes.code-search diff --git a/.vscode/searches/TrustedTypes.code-search b/.vscode/searches/TrustedTypes.code-search new file mode 100644 index 00000000000..f4ded269d55 --- /dev/null +++ b/.vscode/searches/TrustedTypes.code-search @@ -0,0 +1,493 @@ +# Query: .innerHTML = +# Flags: CaseSensitive WordMatch +# Including: src/vs/**/*.{t,j}s +# Excluding: *.test.ts +# ContextLines: 3 + +59 results - 40 files + +src/vs/base/browser/markdownRenderer.ts: + 156 const strValue = values[0]; + 157 const span = element.querySelector(`div[data-code="${id}"]`); + 158 if (span) { + 159: span.innerHTML = strValue; + 160 } + 161 }).catch(err => { + 162 // ignore + + 238 return true; + 239 } + 240 + 241: element.innerHTML = insane(renderedMarkdown, { + 242 allowedSchemes, + 243 // allowedTags should included everything that markdown renders to. + 244 // Since we have our own sanitize function for marked, it's possible we missed some tag so let insane make sure. + +src/vs/base/browser/ui/codicons/codiconStyles.ts: + 20 for (let c of iconRegistry.all) { + 21 rules.push(formatRule(c)); + 22 } + 23: codiconStyleSheet.innerHTML = rules.join('\n'); + 24 } + 25 + 26 const delayer = new RunOnceScheduler(updateAll, 0); + +src/vs/base/browser/ui/contextview/contextview.ts: + 157 this.shadowRootHostElement = DOM.$('.shadow-root-host'); + 158 this.container.appendChild(this.shadowRootHostElement); + 159 this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: 'open' }); + 160: this.shadowRoot.innerHTML = ` + 161 + +src/vs/base/browser/ui/list/listWidget.ts: + 826 + 827 const newStyles = content.join('\n'); + 828 if (newStyles !== this.styleElement.innerHTML) { + 829: this.styleElement.innerHTML = newStyles; + 830 } + 831 } + 832 } + +src/vs/base/browser/ui/menu/menu.ts: + 229 private initializeStyleSheet(container: HTMLElement): void { + 230 if (isInShadowDOM(container)) { + 231 this.styleSheet = createStyleSheet(container); + 232: this.styleSheet.innerHTML = MENU_WIDGET_CSS; + 233 } else { + 234 if (!Menu.globalStyleSheet) { + 235 Menu.globalStyleSheet = createStyleSheet(); + 236: Menu.globalStyleSheet.innerHTML = MENU_WIDGET_CSS; + 237 } + 238 + 239 this.styleSheet = Menu.globalStyleSheet; + +src/vs/base/browser/ui/menu/menubar.ts: + 548 } + 549 + 550 innerHtml = innerHtml.replace(/&&/g, '&'); + 551: titleElement.innerHTML = innerHtml; + 552 } else { + 553: titleElement.innerHTML = cleanMenuLabel.replace(/&&/g, '&'); + 554 } + 555 + 556 let mnemonicMatches = MENU_MNEMONIC_REGEX.exec(label); + +src/vs/base/browser/ui/sash/sash.ts: + 266 } + 267 } + 268 + 269: style.innerHTML = `* { cursor: ${cursor} !important; }`; + 270 }; + 271 + 272 const disposables = new DisposableStore(); + +src/vs/base/browser/ui/selectBox/selectBoxCustom.ts: + 367 content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { outline: none !important; }`); + 368 } + 369 + 370: this.styleElement.innerHTML = content.join('\n'); + 371 + 372 this.applyStyles(); + 373 } + + 705 }); + 706 + 707 + 708: container.innerHTML = this.options[longest].text + (!!this.options[longest].decoratorRight ? (this.options[longest].decoratorRight + ' ') : ''); + 709 elementWidth = dom.getTotalWidth(container); + 710 } + 711 + +src/vs/base/browser/ui/tree/abstractTree.ts: + 1476 + 1477 const newStyles = content.join('\n'); + 1478 if (newStyles !== this.styleElement.innerHTML) { + 1479: this.styleElement.innerHTML = newStyles; + 1480 } + 1481 + 1482 this.view.style(styles); + +src/vs/base/parts/quickinput/browser/quickInput.ts: + 1693 } + 1694 const newStyles = content.join('\n'); + 1695 if (newStyles !== this.ui.styleSheet.innerHTML) { + 1696: this.ui.styleSheet.innerHTML = newStyles; + 1697 } + 1698 } + 1699 } + +src/vs/code/electron-browser/workbench/workbench.js: + 124 const style = document.createElement('style'); + 125 style.className = 'initialShellColors'; + 126 document.head.appendChild(style); + 127: style.innerHTML = `body { background-color: ${shellBackground}; color: ${shellForeground}; margin: 0; padding: 0; }`; + 128 + 129 if (data && data.layoutInfo) { + 130 // restore parts if possible (we might not always store layout info) + + 150 + 151 if (configuration.folderUri || configuration.workspace) { + 152 // folder or workspace -> status bar color, sidebar + 153: splash.innerHTML = ` + 154
+ 155
+ 156
+ + 158 `; + 159 } else { + 160 // empty -> speical status bar color, no sidebar + 161: splash.innerHTML = ` + 162
+ 163
+ 164
+ +src/vs/code/electron-sandbox/issue/issueReporterMain.ts: + 57 const platformClass = platform.isWindows ? 'windows' : platform.isLinux ? 'linux' : 'mac'; + 58 addClass(document.body, platformClass); // used by our fonts + 59 + 60: document.body.innerHTML = BaseHtml(); + 61 const issueReporter = new IssueReporter(configuration); + 62 issueReporter.render(); + 63 document.body.style.display = 'block'; + + 244 content.push(`.monaco-text-button:not(.disabled):hover, .monaco-text-button:focus { background-color: ${styles.buttonHoverBackground} !important; }`); + 245 } + 246 + 247: styleTag.innerHTML = content.join('\n'); + 248 document.head.appendChild(styleTag); + 249 document.body.style.color = styles.color || ''; + 250 } + +src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts: + 282 this.listeners.clear(); + 283 + 284 const tableHead = document.createElement('thead'); + 285: tableHead.innerHTML = ` + 286 ${localize('cpu', "CPU %")} + 287 ${localize('memory', "Memory (MB)")} + 288 ${localize('pid', "PID")} + + 319 content.push(`.highest { color: ${styles.highlightForeground}; }`); + 320 } + 321 + 322: styleTag.innerHTML = content.join('\n'); + 323 if (document.head) { + 324 document.head.appendChild(styleTag); + 325 } + +src/vs/editor/browser/view/domLineBreaksComputer.ts: + 107 allCharOffsets[i] = tmp[0]; + 108 allVisibleColumns[i] = tmp[1]; + 109 } + 110: containerDomNode.innerHTML = sb.build(); + 111 + 112 containerDomNode.style.position = 'absolute'; + 113 containerDomNode.style.top = '10000'; + +src/vs/editor/browser/view/viewLayer.ts: + 507 private _finishRenderingNewLines(ctx: IRendererContext, domNodeIsEmpty: boolean, newLinesHTML: string, wasNew: boolean[]): void { + 508 const lastChild = this.domNode.lastChild; + 509 if (domNodeIsEmpty || !lastChild) { + 510: this.domNode.innerHTML = newLinesHTML; + 511 } else { + 512 lastChild.insertAdjacentHTML('afterend', newLinesHTML); + 513 } + + 525 private _finishRenderingInvalidLines(ctx: IRendererContext, invalidLinesHTML: string, wasInvalid: boolean[]): void { + 526 const hugeDomNode = document.createElement('div'); + 527 + 528: hugeDomNode.innerHTML = invalidLinesHTML; + 529 + 530 for (let i = 0; i < ctx.linesLength; i++) { + 531 const line = ctx.lines[i]; + +src/vs/editor/browser/widget/diffEditorWidget.ts: + 2157 + 2158 let domNode = document.createElement('div'); + 2159 domNode.className = `view-lines line-delete ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`; + 2160: domNode.innerHTML = sb.build(); + 2161 Configuration.applyFontInfoSlow(domNode, fontInfo); + 2162 + 2163 let marginDomNode = document.createElement('div'); + 2164 marginDomNode.className = 'inline-deleted-margin-view-zone'; + 2165: marginDomNode.innerHTML = marginHTML.join(''); + 2166 Configuration.applyFontInfoSlow(marginDomNode, fontInfo); + 2167 + 2168 return { + +src/vs/editor/standalone/browser/colorizer.ts: + 40 let text = domNode.firstChild ? domNode.firstChild.nodeValue : ''; + 41 domNode.className += ' ' + theme; + 42 let render = (str: string) => { + 43: domNode.innerHTML = str; + 44 }; + 45 return this.colorize(modeService, text || '', mimeType, options).then(render, (err) => console.error(err)); + 46 } + +src/vs/editor/standalone/browser/standaloneThemeServiceImpl.ts: + 211 if (!this._globalStyleElement) { + 212 this._globalStyleElement = dom.createStyleSheet(); + 213 this._globalStyleElement.className = 'monaco-colors'; + 214: this._globalStyleElement.innerHTML = this._css; + 215 this._styleElements.push(this._globalStyleElement); + 216 } + 217 return Disposable.None; + + 220 private _registerShadowDomContainer(domNode: HTMLElement): IDisposable { + 221 const styleElement = dom.createStyleSheet(domNode); + 222 styleElement.className = 'monaco-colors'; + 223: styleElement.innerHTML = this._css; + 224 this._styleElements.push(styleElement); + 225 return { + 226 dispose: () => { + + 290 ruleCollector.addRule(generateTokensCSSForColorMap(colorMap)); + 291 + 292 this._css = cssRules.join('\n'); + 293: this._styleElements.forEach(styleElement => styleElement.innerHTML = this._css); + 294 + 295 TokenizationRegistry.setColorMap(colorMap); + 296 this._onColorThemeChange.fire(theme); + +src/vs/editor/test/browser/controller/imeTester.ts: + 55 let content = this._model.getModelLineContent(i); + 56 r += content + '
'; + 57 } + 58: output.innerHTML = r; + 59 } + 60 } + 61 + + 69 let title = document.createElement('div'); + 70 title.className = 'title'; + 71 + 72: title.innerHTML = description + '. Type ' + inputStr + ''; + 73 container.appendChild(title); + 74 + 75 let startBtn = document.createElement('button'); + +src/vs/workbench/browser/parts/compositePart.ts: + 414 const $this = this; + 415 return { + 416 updateTitle: (id, title, keybinding) => { + 417: titleLabel.innerHTML = strings.escape(title); + 418 titleLabel.title = keybinding ? nls.localize('titleTooltip', "{0} ({1})", title, keybinding) : title; + 419 }, + 420 + +src/vs/workbench/browser/parts/statusbar/statusbarPart.ts: + 672 this.styleElement = createStyleSheet(container); + 673 } + 674 + 675: this.styleElement.innerHTML = `.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak:before { border-bottom-color: ${backgroundColor}; }`; + 676 } + 677 + 678 private doCreateStatusItem(id: string, alignment: StatusbarAlignment, ...extraClasses: string[]): HTMLElement { + +src/vs/workbench/contrib/comments/browser/commentsView.ts: + 109 content.push(`.comments-panel .comments-panel-container .text code { color: ${codeTextForegroundColor}; }`); + 110 } + 111 + 112: styleElement.innerHTML = content.join('\n'); + 113 } + 114 + 115 private async renderComments(): Promise { + +src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts: + 692 } + 693 + 694 if (label) { + 695: this._headingLabel.innerHTML = strings.escape(label); + 696 this._headingLabel.setAttribute('aria-label', label); + 697 } + 698 } + + 916 font-weight: ${fontInfo.fontWeight}; + 917 }`); + 918 + 919: this._styleElement.innerHTML = content.join('\n'); + 920 + 921 // Editor decorations should also be responsive to theme changes + 922 this.setCommentEditorDecorations(); + +src/vs/workbench/contrib/debug/browser/repl.ts: + 306 const replInputLineHeight = this.replInput.getOption(EditorOption.lineHeight); + 307 + 308 // Set the font size, font family, line height and align the twistie to be centered, and input theme color + 309: this.styleElement.innerHTML = ` + 310 .repl .repl-tree .expression { + 311 font-size: ${fontSize}px; + 312 font-family: ${fontFamily}; + +src/vs/workbench/contrib/debug/browser/statusbarColorProvider.ts: + 84 this.styleElement = createStyleSheet(container); + 85 } + 86 + 87: this.styleElement.innerHTML = `.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak:before { border-bottom-color: ${backgroundColor} !important; }`; + 88 } + 89 + 90 private getColorKey(noFolderColor: string, debuggingColor: string, normalColor: string): string { + +src/vs/workbench/contrib/files/browser/views/explorerView.ts: + 812 + 813 const newStyles = content.join('\n'); + 814 if (newStyles !== this.styleElement.innerHTML) { + 815: this.styleElement.innerHTML = newStyles; + 816 } + 817 } + 818 + +src/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.ts: + 222 + 223 const newStyles = content.join('\n'); + 224 if (newStyles !== this.styleElement.innerHTML) { + 225: this.styleElement.innerHTML = newStyles; + 226 } + 227 } + 228 } + +src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts: + 1033 + 1034 const newStyles = content.join('\n'); + 1035 if (newStyles !== this.styleElement.innerHTML) { + 1036: this.styleElement.innerHTML = newStyles; + 1037 } + 1038 } + 1039 + +src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.ts: + 443 + 444 private getMarkdownDragImage(templateData: MarkdownCellRenderTemplate): HTMLElement { + 445 const dragImageContainer = DOM.$('.cell-drag-image.monaco-list-row.focused.markdown-cell-row'); + 446: dragImageContainer.innerHTML = templateData.container.outerHTML; + 447 + 448 // Remove all rendered content nodes after the + 449 const markdownContent = dragImageContainer.querySelector('.cell.markdown')!; + + 587 + 588 private getDragImageImpl(templateData: BaseCellRenderTemplate, editor: ICodeEditor, type: 'code' | 'markdown'): HTMLElement | null { + 589 const dragImageContainer = DOM.$(`.cell-drag-image.monaco-list-row.focused.${type}-cell-row`); + 590: dragImageContainer.innerHTML = templateData.container.innerHTML; + 591 + 592 const editorContainer = dragImageContainer.querySelector('.cell-editor-container'); + 593 if (!editorContainer) { + + 599 return null; + 600 } + 601 + 602: editorContainer.innerHTML = richEditorText; + 603 + 604 return dragImageContainer; + 605 } + +src/vs/workbench/contrib/notebook/browser/view/renderers/cellWidgets.ts: + 77 return; + 78 } + 79 + 80: this.leftContributedItemsContainer.innerHTML = ''; + 81: this.rightContributedItemsContainer.innerHTML = ''; + 82 this.itemsDisposable.clear(); + 83 + 84 const items = this.notebookCellStatusBarService.getEntries(this.currentContext.cell.uri); + +src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts: + 375 addMouseoverListeners(outputNode, outputId); + 376 const content = data.content; + 377 if (content.type === RenderOutputType.Html) { + 378: outputNode.innerHTML = content.htmlContent; + 379 cellOutputContainer.appendChild(outputNode); + 380 domEval(outputNode); + 381 } else { + +src/vs/workbench/contrib/sash/browser/sash.ts: + 35 const size = clamp(this.configurationService.getValue(this.configurationName) ?? minSize, minSize, maxSize); + 36 + 37 // Update styles + 38: this.stylesheet.innerHTML = ` + 39 .monaco-sash.vertical { cursor: ew-resize; top: 0; width: ${size}px; height: 100%; } + 40 .monaco-sash.horizontal { cursor: ns-resize; left: 0; width: 100%; height: ${size}px; } + 41 .monaco-sash:not(.disabled).orthogonal-start::before, .monaco-sash:not(.disabled).orthogonal-end::after { content: ' '; height: ${size * 2}px; width: ${size * 2}px; z-index: 100; display: block; cursor: all-scroll; position: absolute; } + +src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts: + 1301 + 1302 private setViewState(state: IViewState): void { + 1303 this.viewState = state; + 1304: this.stylesheet.innerHTML = ` + 1305 .monaco-editor .dirty-diff-modified,.monaco-editor .dirty-diff-added{border-left-width:${state.width}px;} + 1306 .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added, .monaco-editor .dirty-diff-deleted { + 1307 opacity: ${state.visibility === 'always' ? 1 : 0}; + +src/vs/workbench/contrib/watermark/browser/watermark.ts: + 141 const dd = dom.append(dl, $('dd')); + 142 const keybinding = new KeybindingLabel(dd, OS, { renderUnboundKeybindings: true }); + 143 keybinding.set(this.keybindingService.lookupKeybinding(entry.id)); + 144: dd.innerHTML = keybinding.element.outerHTML; + 145 }); + 146 }; + 147 + +src/vs/workbench/contrib/webview/browser/webviewIconManager.ts: + 61 } + 62 } + 63 } + 64: this._styleElement.innerHTML = cssRules.join('\n'); + 65 } + 66 } + +src/vs/workbench/contrib/webview/browser/pre/main.js: + 386 // apply default styles + 387 const defaultStyles = newDocument.createElement('style'); + 388 defaultStyles.id = '_defaultStyles'; + 389: defaultStyles.innerHTML = defaultCssRules; + 390 newDocument.head.prepend(defaultStyles); + 391 + 392 applyStyles(newDocument, newDocument.body); + +src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts: + 328 + 329 const prodName = container.querySelector('.welcomePage .title .caption') as HTMLElement; + 330 if (prodName) { + 331: prodName.innerHTML = this.productService.nameLong; + 332 } + 333 + 334 recentlyOpened.then(({ workspaces }) => { + +src/vs/workbench/contrib/welcome/walkThrough/browser/walkThroughPart.ts: + 281 + 282 const content = model.main.textEditorModel.getValue(EndOfLinePreference.LF); + 283 if (!strings.endsWith(input.resource.path, '.md')) { + 284: this.content.innerHTML = content; + 285 this.updateSizeClasses(); + 286 this.decorateContent(); + 287 this.contentDisposables.push(this.keybindingService.onDidUpdateKeybindings(() => this.decorateContent())); + + 303 const innerContent = document.createElement('div'); + 304 innerContent.classList.add('walkThroughContent'); // only for markdown files + 305 const markdown = this.expandMacros(content); + 306: innerContent.innerHTML = marked(markdown, { renderer }); + 307 this.content.appendChild(innerContent); + 308 + 309 model.snippets.forEach((snippet, i) => { + +src/vs/workbench/services/textMate/browser/abstractTextMateService.ts: + 312 grammarFactory.setTheme(theme, tokenColorMap); + 313 let colorMap = AbstractTextMateService._toColorMap(tokenColorMap); + 314 let cssRules = generateTokensCSSForColorMap(colorMap); + 315: this._styleElement.innerHTML = cssRules; + 316 TokenizationRegistry.setColorMap(colorMap); + 317 } + 318 + +src/vs/workbench/services/themes/browser/workbenchThemeService.ts: + 692 const elStyle = document.createElement('style'); + 693 elStyle.type = 'text/css'; + 694 elStyle.className = rulesClassName; + 695: elStyle.innerHTML = styleSheetContent; + 696 document.head.appendChild(elStyle); + 697 } else { + 698: (themeStyles[0]).innerHTML = styleSheetContent; + 699 } + 700 } + 701