WebKit Bugzilla
Attachment 372819 Details for
Bug 199182
: Web Inspector: Elements: allow nodes to be copied and pasted
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199182-20190624235903.patch (text/plain), 3.84 KB, created by
Devin Rousso
on 2019-06-24 23:59:04 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2019-06-24 23:59:04 PDT
Size:
3.84 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index dd4d4a9c0d1f95af57215302a5ec04390c5ed460..d8c09352773aff3451d568fa8c19495c045910f7 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,21 @@ >+2019-06-24 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: Elements: allow nodes to be copied and pasted >+ https://bugs.webkit.org/show_bug.cgi?id=199182 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Copy is already supported, so there's nothing that needs to be done there. >+ >+ Pasting is as simple as calling `insertAdjacentHTML("afterend", ...)` on the selected node. >+ >+ * UserInterface/Base/Main.js: >+ (WI.contentLoaded): >+ (WI._paste): Added. >+ >+ * UserInterface/Views/DOMTreeContentView.js: >+ (WI.DOMTreeContentView.prototype.handlePasteEvent): Added. >+ > 2019-06-23 Matt Baker <mattbaker@apple.com> > > Web Inspector: REGRESSION (r246684): Dark Mode: dashboard buttons should have no background >diff --git a/Source/WebInspectorUI/UserInterface/Base/Main.js b/Source/WebInspectorUI/UserInterface/Base/Main.js >index 5bfde51548f7f26a7baed1b9a447e8d52cb6657c..c0985bf1c4669e10c0b3c6d59a01995202be5c63 100644 >--- a/Source/WebInspectorUI/UserInterface/Base/Main.js >+++ b/Source/WebInspectorUI/UserInterface/Base/Main.js >@@ -269,6 +269,7 @@ WI.contentLoaded = function() > // Register for global events. > document.addEventListener("beforecopy", WI._beforecopy); > document.addEventListener("copy", WI._copy); >+ document.addEventListener("paste", WI._paste); > > document.addEventListener("click", WI._mouseWasClicked); > document.addEventListener("dragover", WI._handleDragOver); >@@ -2620,6 +2621,35 @@ WI._copy = function(event) > event.preventDefault(); > }; > >+WI._paste = function(event) >+{ >+ let selection = window.getSelection(); >+ >+ // If there is no selection, pass the copy event on to the focused element or focused ContentView. >+ if (selection.isCollapsed && !WI.isEventTargetAnEditableField(event)) { >+ let focusedCopyHandler = WI.currentFocusElement && WI.currentFocusElement.copyHandler; >+ if (focusedCopyHandler && typeof focusedCopyHandler.handlePasteEvent === "function") { >+ focusedCopyHandler.handlePasteEvent(event); >+ if (event.defaultPrevented) >+ return; >+ } >+ >+ let focusedContentView = WI._focusedContentView(); >+ if (focusedContentView && typeof focusedContentView.handlePasteEvent === "function") { >+ focusedContentView.handlePasteEvent(event); >+ return; >+ } >+ >+ let tabContentView = WI.tabBrowser.selectedTabContentView; >+ if (tabContentView && typeof tabContentView.handlePasteEvent === "function") { >+ tabContentView.handlePasteEvent(event); >+ return; >+ } >+ >+ return; >+ } >+}; >+ > WI._increaseZoom = function(event) > { > const epsilon = 0.0001; >diff --git a/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js b/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js >index b018897d87dd0d365f832c5b79aefe01755652a0..5db19b81fcab70137b4fa6559daddb002695f58c 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js >@@ -251,6 +251,19 @@ WI.DOMTreeContentView = class DOMTreeContentView extends WI.ContentView > selectedDOMNode.copyNode(); > } > >+ handlePasteEvent(event) >+ { >+ let selectedDOMNode = this._domTreeOutline.selectedDOMNode(); >+ if (!selectedDOMNode) >+ return; >+ >+ let text = event.clipboardData.getData("text/plain"); >+ if (!text) >+ return; >+ >+ selectedDOMNode.insertAdjacentHTML("afterend", text); >+ } >+ > get supportsSave() > { > return WI.canArchiveMainFrame();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199182
:
372819
|
373306