Remove DOM prototype patching of createTextChild(ren)

Bug: chromium:1011811
Change-Id: I44a66c10efd317dcb7d5a4f58ab4be0fded4b215
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2466182
Reviewed-by: Alex Rudenko <[email protected]>
Reviewed-by: Tim van der Lippe <[email protected]>
Commit-Queue: Sigurd Schneider <[email protected]>
diff --git a/front_end/elements/DOMLinkifier.js b/front_end/elements/DOMLinkifier.js
index 6eac286..385f340 100644
--- a/front_end/elements/DOMLinkifier.js
+++ b/front_end/elements/DOMLinkifier.js
@@ -28,7 +28,7 @@
     const idElement = parentElement.createChild('span', 'node-label-id');
     const part = '#' + idAttribute;
     title += part;
-    idElement.createTextChild(part);
+    UI.UIUtils.createTextChild(idElement, part);
 
     // Mark the name as extra, since the ID is more important.
     nameElement.classList.add('extra');
@@ -45,7 +45,7 @@
         if (className && !foundClasses.has(className)) {
           const part = '.' + className;
           title += part;
-          classesElement.createTextChild(part);
+          UI.UIUtils.createTextChild(classesElement, part);
           foundClasses.add(className);
         }
       }
@@ -55,7 +55,7 @@
   if (isPseudo) {
     const pseudoElement = parentElement.createChild('span', 'extra node-label-pseudo');
     const pseudoText = '::' + originalNode.pseudoType();
-    pseudoElement.createTextChild(pseudoText);
+    UI.UIUtils.createTextChild(pseudoElement, pseudoText);
     title += pseudoText;
   }
   parentElement.title = tooltipContent || title;
diff --git a/front_end/elements/ElementStatePaneWidget.js b/front_end/elements/ElementStatePaneWidget.js
index fecfac9..6d7e99b 100644
--- a/front_end/elements/ElementStatePaneWidget.js
+++ b/front_end/elements/ElementStatePaneWidget.js
@@ -19,7 +19,7 @@
     super(true);
     this.registerRequiredCSS('elements/elementStatePaneWidget.css');
     this.contentElement.className = 'styles-element-state-pane';
-    this.contentElement.createChild('div').createTextChild(Common.UIString.UIString('Force element state'));
+    UI.UIUtils.createTextChild(this.contentElement.createChild('div'), Common.UIString.UIString('Force element state'));
     const table = document.createElement('table');
     table.classList.add('source-code');
     UI.ARIAUtils.markAsPresentation(table);
diff --git a/front_end/elements/ElementsTreeElement.js b/front_end/elements/ElementsTreeElement.js
index 16ea390..ced53b0 100644
--- a/front_end/elements/ElementsTreeElement.js
+++ b/front_end/elements/ElementsTreeElement.js
@@ -516,9 +516,9 @@
       }
       const nodeName = matchResult[1];
       tag.textContent = '';
-      tag.createTextChild('<' + nodeName);
+      UI.UIUtils.createTextChild(tag, '<' + nodeName);
       tag.appendChild(node);
-      tag.createTextChild('>');
+      UI.UIUtils.createTextChild(tag, '>');
     }
   }
 
@@ -1548,7 +1548,7 @@
     attrNameElement.textContent = name;
 
     if (hasText) {
-      attrSpanElement.createTextChild('=\u200B"');
+      UI.UIUtils.createTextChild(attrSpanElement, '=\u200B"');
     }
 
     const attrValueElement = attrSpanElement.createChild('span', 'webkit-html-attribute-value');
@@ -1600,7 +1600,7 @@
     }
 
     if (hasText) {
-      attrSpanElement.createTextChild('"');
+      UI.UIUtils.createTextChild(attrSpanElement, '"');
     }
 
     /**
@@ -1620,7 +1620,7 @@
       let i = 0;
       while (value.length) {
         if (i++ > 0) {
-          fragment.createTextChild(' ');
+          UI.UIUtils.createTextChild(fragment, ' ');
         }
         value = value.trim();
         // The url and descriptor may end with a separating comma.
@@ -1645,13 +1645,13 @@
           // Up to one trailing comma should be removed from `url`.
           if (url.endsWith(',')) {
             fragment.appendChild(linkifyValue.call(this, url.substring(0, url.length - 1)));
-            fragment.createTextChild(',');
+            UI.UIUtils.createTextChild(fragment, ',');
           } else {
             fragment.appendChild(linkifyValue.call(this, url));
           }
         }
         if (descriptor) {
-          fragment.createTextChild(descriptor);
+          UI.UIUtils.createTextChild(fragment, descriptor);
         }
         value = value.substring(url.length + descriptor.length);
       }
@@ -1668,7 +1668,7 @@
   _buildPseudoElementDOM(parentElement, pseudoElementName) {
     const pseudoElement = parentElement.createChild('span', 'webkit-html-pseudo-element');
     pseudoElement.textContent = '::' + pseudoElementName;
-    parentElement.createTextChild('\u200B');
+    UI.UIUtils.createTextChild(parentElement, '\u200B');
   }
 
   /**
@@ -1685,7 +1685,7 @@
       classes.push('close');
     }
     const tagElement = parentElement.createChild('span', classes.join(' '));
-    tagElement.createTextChild('<');
+    UI.UIUtils.createTextChild(tagElement, '<');
     const tagNameElement =
         tagElement.createChild('span', isClosingTag ? 'webkit-html-close-tag-name' : 'webkit-html-tag-name');
     tagNameElement.textContent = (isClosingTag ? '/' : '') + tagName;
@@ -1696,7 +1696,7 @@
         const attributes = node.attributes();
         for (let i = 0; i < attributes.length; ++i) {
           const attr = attributes[i];
-          tagElement.createTextChild(' ');
+          UI.UIUtils.createTextChild(tagElement, ' ');
           this._buildAttributeDOM(tagElement, attr.name, attr.value, updateRecord, false, node);
         }
       }
@@ -1709,8 +1709,8 @@
       }
     }
 
-    tagElement.createTextChild('>');
-    parentElement.createTextChild('\u200B');
+    UI.UIUtils.createTextChild(tagElement, '>');
+    UI.UIUtils.createTextChild(parentElement, '\u200B');
   }
 
   /**
@@ -1775,7 +1775,7 @@
           if (!this.expanded) {
             const textNodeElement = titleDOM.createChild('span', 'webkit-html-text-node bogus');
             textNodeElement.textContent = '…';
-            titleDOM.createTextChild('\u200B');
+            UI.UIUtils.createTextChild(titleDOM, '\u200B');
             this._buildTagDOM(titleDOM, tagName, true, false, updateRecord);
           }
           break;
@@ -1786,7 +1786,7 @@
           const result = this._convertWhitespaceToEntities(node.firstChild.nodeValue());
           textNodeElement.textContent = result.text;
           UI.UIUtils.highlightRangesWithStyleClass(textNodeElement, result.entityRanges, 'webkit-html-entity-value');
-          titleDOM.createTextChild('\u200B');
+          UI.UIUtils.createTextChild(titleDOM, '\u200B');
           this._buildTagDOM(titleDOM, tagName, true, false, updateRecord);
           if (updateRecord && updateRecord.hasChangedChildren()) {
             UI.UIUtils.runCSSAnimationOnce(textNodeElement, 'dom-update-highlight');
@@ -1819,12 +1819,12 @@
           const cssSyntaxHighlighter = new UI.SyntaxHighlighter.SyntaxHighlighter('text/css', true);
           cssSyntaxHighlighter.syntaxHighlightNode(newNode).then(updateSearchHighlight);
         } else {
-          titleDOM.createTextChild('"');
+          UI.UIUtils.createTextChild(titleDOM, '"');
           const textNodeElement = titleDOM.createChild('span', 'webkit-html-text-node');
           const result = this._convertWhitespaceToEntities(node.nodeValue());
           textNodeElement.textContent = result.text;
           UI.UIUtils.highlightRangesWithStyleClass(textNodeElement, result.entityRanges, 'webkit-html-entity-value');
-          titleDOM.createTextChild('"');
+          UI.UIUtils.createTextChild(titleDOM, '"');
           if (updateRecord && updateRecord.isCharDataModified()) {
             UI.UIUtils.runCSSAnimationOnce(textNodeElement, 'dom-update-highlight');
           }
@@ -1833,33 +1833,33 @@
 
       case Node.COMMENT_NODE: {
         const commentElement = titleDOM.createChild('span', 'webkit-html-comment');
-        commentElement.createTextChild('<!--' + node.nodeValue() + '-->');
+        UI.UIUtils.createTextChild(commentElement, '<!--' + node.nodeValue() + '-->');
         break;
       }
 
       case Node.DOCUMENT_TYPE_NODE: {
         const docTypeElement = titleDOM.createChild('span', 'webkit-html-doctype');
-        docTypeElement.createTextChild('<!DOCTYPE ' + node.nodeName());
+        UI.UIUtils.createTextChild(docTypeElement, '<!DOCTYPE ' + node.nodeName());
         if (node.publicId) {
-          docTypeElement.createTextChild(' PUBLIC "' + node.publicId + '"');
+          UI.UIUtils.createTextChild(docTypeElement, ' PUBLIC "' + node.publicId + '"');
           if (node.systemId) {
-            docTypeElement.createTextChild(' "' + node.systemId + '"');
+            UI.UIUtils.createTextChild(docTypeElement, ' "' + node.systemId + '"');
           }
         } else if (node.systemId) {
-          docTypeElement.createTextChild(' SYSTEM "' + node.systemId + '"');
+          UI.UIUtils.createTextChild(docTypeElement, ' SYSTEM "' + node.systemId + '"');
         }
 
         if (node.internalSubset) {
-          docTypeElement.createTextChild(' [' + node.internalSubset + ']');
+          UI.UIUtils.createTextChild(docTypeElement, ' [' + node.internalSubset + ']');
         }
 
-        docTypeElement.createTextChild('>');
+        UI.UIUtils.createTextChild(docTypeElement, '>');
         break;
       }
 
       case Node.CDATA_SECTION_NODE: {
         const cdataElement = titleDOM.createChild('span', 'webkit-html-text-node');
-        cdataElement.createTextChild('<![CDATA[' + node.nodeValue() + ']]>');
+        UI.UIUtils.createTextChild(cdataElement, '<![CDATA[' + node.nodeValue() + ']]>');
         break;
       }
 
@@ -1871,7 +1871,7 @@
 
       default: {
         const nameWithSpaceCollapsed = Platform.StringUtilities.collapseWhitespace(node.nodeNameInCorrectCase());
-        titleDOM.createTextChild(nameWithSpaceCollapsed);
+        UI.UIUtils.createTextChild(titleDOM, nameWithSpaceCollapsed);
       }
     }
 
diff --git a/front_end/elements/ElementsTreeOutline.js b/front_end/elements/ElementsTreeOutline.js
index 2eeacaa..adf7144 100644
--- a/front_end/elements/ElementsTreeOutline.js
+++ b/front_end/elements/ElementsTreeOutline.js
@@ -1732,7 +1732,7 @@
     title.textContent = '\u21AA ' + text;
 
     const link = linkifyDeferredNodeReference(nodeShortcut.deferredNode);
-    this.listItemElement.createTextChild(' ');
+    UI.UIUtils.createTextChild(this.listItemElement, ' ');
     link.classList.add('elements-tree-shortcut-link');
     link.textContent = Common.UIString.UIString('reveal');
     this.listItemElement.appendChild(link);
diff --git a/front_end/elements/MetricsSidebarPane.js b/front_end/elements/MetricsSidebarPane.js
index beeed47..900d1ac 100644
--- a/front_end/elements/MetricsSidebarPane.js
+++ b/front_end/elements/MetricsSidebarPane.js
@@ -312,7 +312,7 @@
             'dblclick', this.startEditing.bind(this, heightElement, 'height', 'height', style), false);
 
         boxElement.appendChild(widthElement);
-        boxElement.createTextChild(' × ');
+        UI.UIUtils.createTextChild(boxElement, ' × ');
         boxElement.appendChild(heightElement);
       } else {
         const suffix = (name === 'border' ? '-width' : '');
diff --git a/front_end/elements/StylePropertyTreeElement.js b/front_end/elements/StylePropertyTreeElement.js
index 800eb6f..257ca20 100644
--- a/front_end/elements/StylePropertyTreeElement.js
+++ b/front_end/elements/StylePropertyTreeElement.js
@@ -162,7 +162,7 @@
    */
   _processVar(text) {
     const swatch = InlineEditor.CSSVarSwatch.createCSSVarSwatch();
-    swatch.createTextChild(text);
+    UI.UIUtils.createTextChild(swatch, text);
 
     const {computedValue, fromFallback} = this._matchedStyles.computeSingleVariableValue(this._style, text);
     swatch.data = {text, computedValue, fromFallback, onLinkClick: this._handleVarDefinitionClick.bind(this)};
@@ -481,8 +481,9 @@
     }
 
     const indent = Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
-    this.listItemElement.createChild('span', 'styles-clipboard-only')
-        .createTextChild(indent + (this.property.disabled ? '/* ' : ''));
+    UI.UIUtils.createTextChild(
+        this.listItemElement.createChild('span', 'styles-clipboard-only'),
+        indent + (this.property.disabled ? '/* ' : ''));
     this.listItemElement.appendChild(this.nameElement);
     const lineBreakValue = this.valueElement.firstElementChild && this.valueElement.firstElementChild.tagName === 'BR';
     const separator = lineBreakValue ? ':' : ': ';
@@ -491,9 +492,9 @@
       this.listItemElement.appendChild(this._expandElement);
     }
     this.listItemElement.appendChild(this.valueElement);
-    this.listItemElement.createTextChild(';');
+    UI.UIUtils.createTextChild(this.listItemElement, ';');
     if (this.property.disabled) {
-      this.listItemElement.createChild('span', 'styles-clipboard-only').createTextChild(' */');
+      UI.UIUtils.createTextChild(this.listItemElement.createChild('span', 'styles-clipboard-only'), ' */');
     }
 
     if (!this.property.parsedOk) {
diff --git a/front_end/elements/StylesSidebarPane.js b/front_end/elements/StylesSidebarPane.js
index c91bfd5..7d779f5 100644
--- a/front_end/elements/StylesSidebarPane.js
+++ b/front_end/elements/StylesSidebarPane.js
@@ -987,7 +987,7 @@
   static async _createInheritedNodeBlock(node) {
     const separatorElement = createElement('div');
     separatorElement.className = 'sidebar-separator';
-    separatorElement.createTextChild(ls`Inherited from${' '}`);
+    UI.UIUtils.createTextChild(separatorElement, ls`Inherited from${' '}`);
     const link = await Common.Linkifier.Linkifier.linkify(node, {preventKeyboardFocus: true});
     separatorElement.appendChild(link);
     return new SectionBlock(separatorElement);
@@ -1716,7 +1716,7 @@
     const fragment = createDocumentFragment();
     for (let i = 0; i < selectors.length; ++i) {
       if (i) {
-        fragment.createTextChild(', ');
+        UI.UIUtils.createTextChild(fragment, ', ');
       }
       fragment.appendChild(this._createSelectorElement(selectors[i], matchingSelectors[i], i));
     }
@@ -2798,7 +2798,7 @@
       url = url.substring(1, url.length - 1);
     }
     const container = createDocumentFragment();
-    container.createTextChild('url(');
+    UI.UIUtils.createTextChild(container, 'url(');
     let hrefUrl = null;
     if (this._rule && this._rule.resourceURL()) {
       hrefUrl = Common.ParsedURL.ParsedURL.completeURL(this._rule.resourceURL(), url);
@@ -2817,7 +2817,7 @@
         }),
         hrefUrl || url);
     container.appendChild(link);
-    container.createTextChild(')');
+    UI.UIUtils.createTextChild(container, ')');
     return container;
   }
 }