Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3602ddd766aa6c9b752da5d6eaf03282cb3b5cb9
https://github.com/WebKit/WebKit/commit/3602ddd766aa6c9b752da5d6eaf03282cb3b5cb9
Author: Devin Rousso <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
M
LayoutTests/http/tests/site-isolation/inspector/dom/custom-elements-and-pseudo-elements-frame-target.html
M
LayoutTests/http/tests/site-isolation/inspector/dom/dom-mutation-events-frame-target.html
M
LayoutTests/http/tests/site-isolation/inspector/dom/shadow-root-cross-frame-isolation-frame-target.html
M
LayoutTests/http/tests/site-isolation/inspector/dom/shadow-root-pushed-frame-target.html
M LayoutTests/inspector/css/setLayoutContextTypeChangedMode.html
M LayoutTests/inspector/dom/attachedNodes.html
M LayoutTests/inspector/dom/moveBefore.html
M LayoutTests/inspector/dom/pseudo-element-dynamic.html
M LayoutTests/inspector/dom/pseudo-element-request-node.html
M Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js
M Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js
M Source/WebInspectorUI/UserInterface/Models/DOMNode.js
M Source/WebInspectorUI/UserInterface/Models/DOMTree.js
M Source/WebInspectorUI/UserInterface/Views/DOMNodeDetailsSidebarPanel.js
M Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js
M Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js
M Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js
Log Message:
-----------
Web Inspector: move node-specific `WI.DOMManager.Event` to `WI.DOMNode.Event`
https://bugs.webkit.org/show_bug.cgi?id=319461
Reviewed by Timothy Hatcher.
Rather than having the `WI.DOMNode` be part of `event.data`, it should be the
`event.target`.
`WI.Object` already supports listening for specific instances or any instance
(via the constructor).
As such, moving to `WI.DOMNode.Event` allows observers that only need a
specific instance to do that.
Also skip including some related data in the `event.data` as it's already
available on the `WI.DOMNode`.
An inserted node's current parent is available as `event.target.parentNode`.
Removals that happen after detachment retain the previous parent in
`event.data`.
* Source/WebInspectorUI/UserInterface/Models/DOMNode.js:
(WI.DOMNode.Event):
* Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype._trySpliceFrameDocumentIntoNode):
(WI.DOMManager.prototype._cleanupFrameTarget):
(WI.DOMManager.prototype._frameTargetAttributeModified):
(WI.DOMManager.prototype._frameTargetAttributeRemoved):
(WI.DOMManager.prototype._loadFrameTargetNodeAttributes):
(WI.DOMManager.prototype._frameTargetCharacterDataModified):
(WI.DOMManager.prototype._frameTargetChildNodeCountUpdated):
(WI.DOMManager.prototype._frameTargetChildNodeInserted):
(WI.DOMManager.prototype._frameTargetChildNodeRemoved):
(WI.DOMManager.prototype._frameTargetShadowRootPushed):
(WI.DOMManager.prototype._frameTargetShadowRootPopped):
(WI.DOMManager.prototype._frameTargetWillDestroyDOMNode):
(WI.DOMManager.prototype._frameTargetCustomElementStateChanged):
(WI.DOMManager.prototype._frameTargetPseudoElementAdded):
(WI.DOMManager.prototype._frameTargetPseudoElementRemoved):
(WI.DOMManager.prototype.willDestroyDOMNode):
(WI.DOMManager.prototype._attributeModified):
(WI.DOMManager.prototype._attributeRemoved):
(WI.DOMManager.prototype._loadNodeAttributes):
(WI.DOMManager.prototype._characterDataModified):
(WI.DOMManager.prototype._setChildNodes):
(WI.DOMManager.prototype._childNodeCountUpdated):
(WI.DOMManager.prototype._childNodeInserted):
(WI.DOMManager.prototype._childNodeRemoved):
(WI.DOMManager.prototype._customElementStateChanged):
(WI.DOMManager.prototype._pseudoElementAdded):
(WI.DOMManager.prototype._pseudoElementRemoved):
(WI.DOMManager.Event):
* Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype._nodeInserted):
(WI.DOMDebuggerManager.prototype._nodeRemoved):
* Source/WebInspectorUI/UserInterface/Models/DOMTree.js:
(WI.DOMTree):
(WI.DOMTree.prototype.disconnect):
(WI.DOMTree.prototype.invalidate):
(WI.DOMTree.prototype._requestRootDOMNode):
(WI.DOMTree.prototype._setRootDOMNode): Added.
(WI.DOMTree.prototype._nodeRemoved):
* Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.closed):
(WI.DOMTreeContentView.prototype._domNodeChanged):
* Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:
(WI.DOMTreeUpdater):
(WI.DOMTreeUpdater.prototype.close):
(WI.DOMTreeUpdater.prototype._attributesUpdated):
(WI.DOMTreeUpdater.prototype._characterDataModified):
(WI.DOMTreeUpdater.prototype._nodeInserted):
(WI.DOMTreeUpdater.prototype._nodeRemoved):
(WI.DOMTreeUpdater.prototype._childNodeCountUpdated):
* Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js:
(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):
(WI.LayoutDetailsSidebarPanel.prototype._handleNodeRemoved):
Update listeners to use `WI.DOMNode.Event`.
* Source/WebInspectorUI/UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
(WI.DOMNodeDetailsSidebarPanel.prototype.addEventListeners): Added.
(WI.DOMNodeDetailsSidebarPanel.prototype.removeEventListeners): Added.
(WI.DOMNodeDetailsSidebarPanel.prototype._eventListenersChanged):
(WI.DOMNodeDetailsSidebarPanel.prototype._attributesChanged):
(WI.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
(WI.DOMNodeDetailsSidebarPanel.prototype._customElementStateChanged):
(WI.DOMNodeDetailsSidebarPanel.prototype.closed): Deleted.
`addEventListeners` and `attached` can be called before `initialLayout` so
additional `didInitialLayout` checks are needed for now.
Drive-by: `closed` is not actually called by anything.
*
LayoutTests/http/tests/site-isolation/inspector/dom/custom-elements-and-pseudo-elements-frame-target.html:
*
LayoutTests/http/tests/site-isolation/inspector/dom/dom-mutation-events-frame-target.html:
*
LayoutTests/http/tests/site-isolation/inspector/dom/shadow-root-cross-frame-isolation-frame-target.html:
*
LayoutTests/http/tests/site-isolation/inspector/dom/shadow-root-pushed-frame-target.html:
* LayoutTests/inspector/css/setLayoutContextTypeChangedMode.html:
* LayoutTests/inspector/dom/attachedNodes.html:
* LayoutTests/inspector/dom/moveBefore.html:
* LayoutTests/inspector/dom/pseudo-element-dynamic.html:
* LayoutTests/inspector/dom/pseudo-element-request-node.html:
Canonical link: https://commits.webkit.org/323656@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications