Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7f3ca46090657f4934f58f71894a5e3566505425
https://github.com/WebKit/WebKit/commit/7f3ca46090657f4934f58f71894a5e3566505425
Author: Zak Ridouh <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
A
LayoutTests/http/tests/site-isolation/inspector/page/frame-process-swap-single-frame-expected.txt
A
LayoutTests/http/tests/site-isolation/inspector/page/frame-process-swap-single-frame.html
M Source/WebKit/UIProcess/Inspector/Agents/ProxyingPageAgent.cpp
M Source/WebKit/UIProcess/Inspector/Agents/ProxyingPageAgent.h
M Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp
Log Message:
-----------
[Site Isolation] Web Inspector: A frame that swaps process is left behind as
a stale WI.Frame
https://bugs.webkit.org/show_bug.cgi?id=325088
rdar://188866795
Reviewed by Qianlang Chen.
The protocol frame ID encodes the hosting process, so a cross-site process swap
makes
Page.frameNavigated report a new ID. Nothing retired the old ID, so the
frontend kept a stale
WI.Frame in WI.networkManager.frames and in the parent's child frames. When the
old process is the
page's own, its in-process Page agent sends a detach, but any other old process
sent nothing.
didCommitProvisionalFrame now tells the Page agent to send Page.frameDetached
for the ID the frame
had in the old process. The frontend sees detach(old ID), then navigated(new
ID). The IDs differ, so
the live frame survives. The in-process agent's duplicate detach is ignored by
NetworkManager.frameDidDetach.
Test:
http/tests/site-isolation/inspector/page/frame-process-swap-single-frame.html
*
LayoutTests/http/tests/site-isolation/inspector/page/frame-process-swap-single-frame-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/inspector/page/frame-process-swap-single-frame.html:
Added.
* Source/WebKit/UIProcess/Inspector/Agents/ProxyingPageAgent.cpp:
(Inspector::ProxyingPageAgent::frameSwappedOutOfProcess): Added.
* Source/WebKit/UIProcess/Inspector/Agents/ProxyingPageAgent.h:
* Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp:
(WebKit::WebPageInspectorController::didCommitProvisionalFrame):
Canonical link: https://commits.webkit.org/323547@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications