Title: [252615] trunk/Source/WebInspectorUI
Revision
252615
Author
[email protected]
Date
2019-11-18 17:35:29 -0800 (Mon, 18 Nov 2019)

Log Message

Web Inspector: Elements: copying multiple DOM nodes should copy more than just the last selected node
https://bugs.webkit.org/show_bug.cgi?id=204266

Reviewed by Brian Burg.

* UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype.async handleCopyEvent): Added.
(WI.DOMTreeContentView.prototype.handleCopyEvent): Deleted.
Call `DOM.getOuterHTML` for each selected DOM node and join the results with newlines.

* UserInterface/Models/DOMNode.js:
(WI.DOMNode.prototype.getOuterHTML):
(WI.DOMNode.prototype.copyNode): Deleted.
(WI.DOMNode.prototype.copyNode.copy): Deleted.
* UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):
(WI.DOMTreeElement.prototype._copyHTML): Deleted.
Simplify API surface.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (252614 => 252615)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-11-19 01:30:51 UTC (rev 252614)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-11-19 01:35:29 UTC (rev 252615)
@@ -1,5 +1,26 @@
 2019-11-18  Devin Rousso  <[email protected]>
 
+        Web Inspector: Elements: copying multiple DOM nodes should copy more than just the last selected node
+        https://bugs.webkit.org/show_bug.cgi?id=204266
+
+        Reviewed by Brian Burg.
+
+        * UserInterface/Views/DOMTreeContentView.js:
+        (WI.DOMTreeContentView.prototype.async handleCopyEvent): Added.
+        (WI.DOMTreeContentView.prototype.handleCopyEvent): Deleted.
+        Call `DOM.getOuterHTML` for each selected DOM node and join the results with newlines.
+
+        * UserInterface/Models/DOMNode.js:
+        (WI.DOMNode.prototype.getOuterHTML):
+        (WI.DOMNode.prototype.copyNode): Deleted.
+        (WI.DOMNode.prototype.copyNode.copy): Deleted.
+        * UserInterface/Views/DOMTreeElement.js:
+        (WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):
+        (WI.DOMTreeElement.prototype._copyHTML): Deleted.
+        Simplify API surface.
+
+2019-11-18  Devin Rousso  <[email protected]>
+
         Web Inspector: Local Resource Overrides: allow substitution based on a url pattern
         https://bugs.webkit.org/show_bug.cgi?id=202375
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/DOMNode.js (252614 => 252615)


--- trunk/Source/WebInspectorUI/UserInterface/Models/DOMNode.js	2019-11-19 01:30:51 UTC (rev 252614)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/DOMNode.js	2019-11-19 01:35:29 UTC (rev 252615)
@@ -549,7 +549,10 @@
     getOuterHTML(callback)
     {
         let target = WI.assumingMainTarget();
-        target.DOMAgent.getOuterHTML(this.id, callback);
+        if (typeof callback === "function")
+            target.DOMAgent.getOuterHTML(this.id, callback);
+        else
+            return target.DOMAgent.getOuterHTML(this.id).then(({outerHTML}) => outerHTML);
     }
 
     setOuterHTML(html, callback)
@@ -587,18 +590,6 @@
         target.DOMAgent.removeNode(this.id, this._makeUndoableCallback(callback));
     }
 
-    copyNode()
-    {
-        function copy(error, text)
-        {
-            if (!error)
-                InspectorFrontendHost.copyText(text);
-        }
-
-        let target = WI.assumingMainTarget();
-        target.DOMAgent.getOuterHTML(this.id, copy);
-    }
-
     getEventListeners(callback)
     {
         console.assert(WI.domManager.inspectedNode === this);

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js (252614 => 252615)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2019-11-19 01:30:51 UTC (rev 252614)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2019-11-19 01:35:29 UTC (rev 252615)
@@ -219,16 +219,23 @@
         this._domTreeOutline.selectDOMNode(domNode, !preventFocusChange);
     }
 
-    handleCopyEvent(event)
+    async handleCopyEvent(event)
     {
-        var selectedDOMNode = this._domTreeOutline.selectedDOMNode();
-        if (!selectedDOMNode)
+        let promises = [];
+
+        for (let treeElement of this._domTreeOutline.selectedTreeElements) {
+            if (treeElement.representedObject instanceof WI.DOMNode)
+                promises.push(treeElement.representedObject.getOuterHTML());
+        }
+
+        if (!promises.length)
             return;
 
         event.clipboardData.clearData();
         event.preventDefault();
 
-        selectedDOMNode.copyNode();
+        let outerHTMLs = await Promise.all(promises);
+        InspectorFrontendHost.copyText(outerHTMLs.join("\n"));
     }
 
     handlePasteEvent(event)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js (252614 => 252615)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js	2019-11-19 01:30:51 UTC (rev 252614)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js	2019-11-19 01:35:29 UTC (rev 252615)
@@ -832,7 +832,10 @@
 
         if (!this.representedObject.isPseudoElement()) {
             subMenus.copy.appendItem(WI.UIString("HTML"), () => {
-                this._copyHTML();
+                this.representedObject.getOuterHTML()
+                .then((outerHTML) => {
+                    InspectorFrontendHost.copyText(outerHTML);
+                });
             });
         }
 
@@ -1792,11 +1795,6 @@
         });
     }
 
-    _copyHTML()
-    {
-        this.representedObject.copyNode();
-    }
-
     _highlightSearchResults()
     {
         if (!this.title || !this._searchQuery || !this._searchHighlightsVisible)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to