Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b0e64776919aebb76cee7883232178b04052d020
https://github.com/WebKit/WebKit/commit/b0e64776919aebb76cee7883232178b04052d020
Author: Anuj Panta <[email protected]>
Date: 2026-06-09 (Tue, 09 Jun 2026)
Changed paths:
A
LayoutTests/http/tests/site-isolation/inspector/dom/query-commands-frame-target-expected.txt
A
LayoutTests/http/tests/site-isolation/inspector/dom/query-commands-frame-target.html
M Source/JavaScriptCore/inspector/protocol/DOM.json
M Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
M Source/WebCore/inspector/agents/frame/FrameDOMAgent.cpp
M Source/WebCore/inspector/agents/frame/FrameDOMAgent.h
M Source/WebCore/inspector/agents/frame/FrameDOMAgentStubs.cpp
M Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js
M Source/WebInspectorUI/UserInterface/Models/DOMNode.js
M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js
Log Message:
-----------
Web Inspector: [SI] implement querySelector, querySelectorAll, getOuterHTML,
and search for FrameDOMAgent
https://bugs.webkit.org/show_bug.cgi?id=314646
rdar://176894021
Reviewed by Qianlang Chen.
Builds on the FrameDOMAgent event wiring landed in bug 313550 by implementing
the remaining read-only query surface: querySelector, querySelectorAll,
getOuterHTML, getSupportedEventNames, performSearch/getSearchResults/
discardSearchResults, and pushNodeByPathToFrontend. Each operates on the
frame's local Document, mirroring InspectorDOMAgent's implementations and
keeping per-agent state (m_searchResults) isolated to that frame's process.
On the frontend, DOMNode routes querySelector, querySelectorAll, and
getOuterHTML through `owningTarget` with `backendNodeId` so cross-origin
iframe nodes query their own FrameDOMAgent rather than the page's
InspectorDOMAgent. RequestAssignedSlot and requestAssignedNodes use
nodeForIdInFrameTarget to resolve scoped IDs.
Commands that require infrastructure not yet ported to frame targets (DOM
editing via DOMEditor, overlay highlighting, accessibility, event listeners,
media stats, CSS style refresh) get defensive early-returns so interacting
with a cross-origin frame node in the Elements panel no longer crashes or
silently dispatches malformed commands. DOMNodeStyles.refresh() in
particular bails out without dispatching `Event.Refreshed` to avoid reading
a null computedStyle in BoxModelDetailsSectionRow; a full CSS integration
lands with FrameCSSAgent
Test: http/tests/site-isolation/inspector/dom/query-commands-frame-target.html
*
LayoutTests/http/tests/site-isolation/inspector/dom/query-commands-frame-target-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/inspector/dom/query-commands-frame-target.html:
Added.
* Source/JavaScriptCore/inspector/protocol/DOM.json:
* Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):
* Source/WebCore/inspector/agents/frame/FrameDOMAgent.cpp:
(WebCore::FrameDOMAgent::reset):
(WebCore::FrameDOMAgent::querySelector):
(WebCore::FrameDOMAgent::querySelectorAll):
(WebCore::FrameDOMAgent::getOuterHTML):
(WebCore::FrameDOMAgent::getSupportedEventNames):
(WebCore::FrameDOMAgent::performSearch):
(WebCore::FrameDOMAgent::getSearchResults):
(WebCore::FrameDOMAgent::discardSearchResults):
(WebCore::FrameDOMAgent::nodeForPath):
(WebCore::FrameDOMAgent::pushNodeByPathToFrontend):
* Source/WebCore/inspector/agents/frame/FrameDOMAgent.h:
* Source/WebCore/inspector/agents/frame/FrameDOMAgentStubs.cpp:
(WebCore::FrameDOMAgent::querySelector): Deleted.
(WebCore::FrameDOMAgent::querySelectorAll): Deleted.
(WebCore::FrameDOMAgent::getSupportedEventNames): Deleted.
(WebCore::FrameDOMAgent::getOuterHTML): Deleted.
(WebCore::FrameDOMAgent::performSearch): Deleted.
(WebCore::FrameDOMAgent::getSearchResults): Deleted.
(WebCore::FrameDOMAgent::discardSearchResults): Deleted.
(WebCore::FrameDOMAgent::pushNodeByPathToFrontend): Deleted.
* Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.setInspectedNode):
* Source/WebInspectorUI/UserInterface/Models/DOMNode.js:
(WI.DOMNode.prototype.setNodeName):
(WI.DOMNode.prototype.setNodeValue):
(WI.DOMNode.prototype.setAttribute):
(WI.DOMNode.prototype.setAttributeValue):
(WI.DOMNode.prototype.querySelector):
(WI.DOMNode.prototype.querySelectorAll):
(WI.DOMNode.prototype.showLayoutOverlay):
(WI.DOMNode.prototype.hideLayoutOverlay):
(WI.DOMNode.prototype.getOuterHTML):
(WI.DOMNode.prototype.setOuterHTML):
(WI.DOMNode.prototype.insertAdjacentHTML):
(WI.DOMNode.prototype.removeNode):
(WI.DOMNode.prototype.getEventListeners):
(WI.DOMNode.prototype.moveTo):
(WI.DOMNode):
* Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
Canonical link: https://commits.webkit.org/314831@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications