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

Reply via email to