Skip to content

Commit d2bd76b

Browse files
authored
dom - adopt more textContent over innerText (#260259)
Test the waters: `innerText` does more, considering styles as well. I would argue we have used `innerText` without the need for this behaviour in most cases. See https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#differences_from_innertext
1 parent 8123e64 commit d2bd76b

File tree

18 files changed

+35
-35
lines changed

18 files changed

+35
-35
lines changed

src/vs/base/browser/dom.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ export function prepend<T extends Node>(parent: HTMLElement, child: T): T {
12791279
* Removes all children from `parent` and appends `children`
12801280
*/
12811281
export function reset(parent: HTMLElement, ...children: Array<Node | string>): void {
1282-
parent.innerText = '';
1282+
parent.textContent = '';
12831283
append(parent, ...children);
12841284
}
12851285

src/vs/base/browser/domStylesheets.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ class WrappedStyleElement {
3232
this._currentCssStyle = cssStyle;
3333

3434
if (!this._styleSheet) {
35-
this._styleSheet = createStyleSheet(mainWindow.document.head, (s) => s.innerText = cssStyle);
35+
this._styleSheet = createStyleSheet(mainWindow.document.head, (s) => s.textContent = cssStyle);
3636
} else {
37-
this._styleSheet.innerText = cssStyle;
37+
this._styleSheet.textContent = cssStyle;
3838
}
3939
}
4040

src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export class BreadcrumbsWidget {
163163
if (style.breadcrumbsHoverForeground) {
164164
content += `.monaco-breadcrumbs:not(.disabled ) .monaco-breadcrumb-item:hover:not(.focused):not(.selected) { color: ${style.breadcrumbsHoverForeground}}\n`;
165165
}
166-
styleElement.innerText = content;
166+
styleElement.textContent = content;
167167
}
168168

169169
setEnabled(value: boolean) {
@@ -332,7 +332,7 @@ export class BreadcrumbsWidget {
332332
try {
333333
item.render(container);
334334
} catch (err) {
335-
container.innerText = '<<RENDER ERROR>>';
335+
container.textContent = '<<RENDER ERROR>>';
336336
console.error(err);
337337
}
338338
container.tabIndex = -1;

src/vs/base/browser/ui/iconLabel/iconLabel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,14 +275,14 @@ class Label {
275275

276276
if (typeof label === 'string') {
277277
if (!this.singleLabel) {
278-
this.container.innerText = '';
278+
this.container.textContent = '';
279279
this.container.classList.remove('multiple');
280280
this.singleLabel = dom.append(this.container, dom.$('a.label-name', { id: options?.domId }));
281281
}
282282

283283
this.singleLabel.textContent = label;
284284
} else {
285-
this.container.innerText = '';
285+
this.container.textContent = '';
286286
this.container.classList.add('multiple');
287287
this.singleLabel = undefined;
288288

@@ -340,14 +340,14 @@ class LabelWithHighlights extends Disposable {
340340

341341
if (typeof label === 'string') {
342342
if (!this.singleLabel) {
343-
this.container.innerText = '';
343+
this.container.textContent = '';
344344
this.container.classList.remove('multiple');
345345
this.singleLabel = this._register(new HighlightedLabel(dom.append(this.container, dom.$('a.label-name', { id: options?.domId })), { supportIcons: this.supportIcons }));
346346
}
347347

348348
this.singleLabel.set(label, options?.matches, undefined, options?.labelEscapeNewLines);
349349
} else {
350-
this.container.innerText = '';
350+
this.container.textContent = '';
351351
this.container.classList.add('multiple');
352352
this.singleLabel = undefined;
353353

src/vs/base/browser/ui/menu/menu.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,12 +630,12 @@ class BaseMenuActionViewItem extends BaseActionViewItem {
630630
escMatch[3]),
631631
strings.rtrim(replaceDoubleEscapes(label.substr(escMatch.index + escMatch[0].length)), ' '));
632632
} else {
633-
this.label.innerText = replaceDoubleEscapes(label).trim();
633+
this.label.textContent = replaceDoubleEscapes(label).trim();
634634
}
635635

636636
this.item?.setAttribute('aria-keyshortcuts', (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase());
637637
} else {
638-
this.label.innerText = label.replace(/&&/g, '&').trim();
638+
this.label.textContent = label.replace(/&&/g, '&').trim();
639639
}
640640
}
641641
}

src/vs/base/browser/ui/menu/menubar.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -583,17 +583,17 @@ export class MenuBar extends Disposable {
583583
const replaceDoubleEscapes = (str: string) => str.replace(/&amp;&amp;/g, '&amp;');
584584

585585
if (escMatch) {
586-
titleElement.innerText = '';
586+
titleElement.textContent = '';
587587
titleElement.append(
588588
strings.ltrim(replaceDoubleEscapes(cleanLabel.substr(0, escMatch.index)), ' '),
589589
$('mnemonic', { 'aria-hidden': 'true' }, escMatch[3]),
590590
strings.rtrim(replaceDoubleEscapes(cleanLabel.substr(escMatch.index + escMatch[0].length)), ' ')
591591
);
592592
} else {
593-
titleElement.innerText = replaceDoubleEscapes(cleanLabel).trim();
593+
titleElement.textContent = replaceDoubleEscapes(cleanLabel).trim();
594594
}
595595
} else {
596-
titleElement.innerText = cleanMenuLabel.replace(/&&/g, '&');
596+
titleElement.textContent = cleanMenuLabel.replace(/&&/g, '&');
597597
}
598598

599599
const mnemonicMatches = MENU_MNEMONIC_REGEX.exec(label);

src/vs/base/browser/ui/selectBox/selectBoxCustom.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class SelectListRenderer implements IListRenderer<ISelectOptionItem, ISelectList
6363

6464
data.text.textContent = text;
6565
data.detail.textContent = !!detail ? detail : '';
66-
data.decoratorRight.innerText = !!decoratorRight ? decoratorRight : '';
66+
data.decoratorRight.textContent = !!decoratorRight ? decoratorRight : '';
6767

6868
// pseudo-select disabled option
6969
if (isDisabled) {
@@ -450,7 +450,7 @@ export class SelectBoxList extends Disposable implements ISelectBoxDelegate, ILi
450450
// ContextView dropdown methods
451451

452452
private showSelectDropDown() {
453-
this.selectionDetailsPane.innerText = '';
453+
this.selectionDetailsPane.textContent = '';
454454

455455
if (!this.contextViewProvider || this._isVisible) {
456456
return;
@@ -902,7 +902,7 @@ export class SelectBoxList extends Disposable implements ISelectBoxDelegate, ILi
902902
}
903903

904904
private updateDetail(selectedIndex: number): void {
905-
this.selectionDetailsPane.innerText = '';
905+
this.selectionDetailsPane.textContent = '';
906906
const option = this.options[selectedIndex];
907907
const description = option?.description ?? '';
908908
const descriptionIsMarkdown = option?.descriptionIsMarkdown ?? false;
@@ -912,7 +912,7 @@ export class SelectBoxList extends Disposable implements ISelectBoxDelegate, ILi
912912
const actionHandler = option.descriptionMarkdownActionHandler;
913913
this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(description, actionHandler));
914914
} else {
915-
this.selectionDetailsPane.innerText = description;
915+
this.selectionDetailsPane.textContent = description;
916916
}
917917
this.selectionDetailsPane.style.display = 'block';
918918
} else {

src/vs/workbench/browser/parts/banner/bannerPart.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export class BannerPart extends Part implements IBannerService {
136136
private getBannerMessage(message: MarkdownString | string): HTMLElement {
137137
if (typeof message === 'string') {
138138
const element = $('span');
139-
element.innerText = message;
139+
element.textContent = message;
140140
return element;
141141
}
142142

src/vs/workbench/browser/parts/compositePart.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ export abstract class CompositePart<T extends Composite> extends Part {
430430
updateTitle: (id, title, keybinding) => {
431431
// The title label is shared for all composites in the base CompositePart
432432
if (!this.activeComposite || this.activeComposite.getId() === id) {
433-
titleLabel.innerText = title;
433+
titleLabel.textContent = title;
434434
hover.update(keybinding ? localize('titleTooltip', "{0} ({1})", title, keybinding) : title);
435435
}
436436
},

src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class OutlineItem extends BreadcrumbsItem {
8585
const templateId = outline.config.delegate.getTemplateId(element);
8686
const renderer = outline.config.renderers.find(renderer => renderer.templateId === templateId);
8787
if (!renderer) {
88-
container.innerText = '<<NO RENDERER>>';
88+
container.textContent = '<<NO RENDERER>>';
8989
return;
9090
}
9191

@@ -388,7 +388,7 @@ export class BreadcrumbsControl {
388388
this._widget.setEnabled(false);
389389
this._widget.setItems([new class extends BreadcrumbsItem {
390390
render(container: HTMLElement): void {
391-
container.innerText = localize('empty', "no elements");
391+
container.textContent = localize('empty', "no elements");
392392
}
393393
equals(other: BreadcrumbsItem): boolean {
394394
return other === this;

0 commit comments

Comments
 (0)