Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a5472161108aa520f5ca31211f0ffeab0eec37dc
      
https://github.com/WebKit/WebKit/commit/a5472161108aa520f5ca31211f0ffeab0eec37dc
  Author: Ryosuke Niwa <[email protected]>
  Date:   2026-10-05 (Mon, 05 Oct 2026)

  Changed paths:
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/PageOverlayController.cpp
    M Source/WebCore/page/PageOverlayController.h

  Log Message:
  -----------
  [Site Isolation] [iOS] ProcessSwap.PageOverlayLayerPersistence fails
https://bugs.webkit.org/show_bug.cgi?id=326395

Reviewed by Alex Christensen and Zak Ridouh.

With site isolation enabled and the multi-process back/forward cache disabled, 
going back to a cross-site page
creates a new WebPage whose main frame starts out as a RemoteFrame with a 
provisional LocalFrame. View overlays
installed during page creation, such as the one installed by the injected 
bundle in this test, cannot be attached
at that point since WebChromeClient::attachViewOverlayGraphicsLayer() bails out 
while the main frame is remote.
Nothing attaches them once the provisional frame is committed as the main 
frame, so the view overlay never makes
it into the layer tree.

Fixed the bug by attaching view overlays when the main frame becomes local in 
Page::setMainFrame().

No new tests. Covered by ProcessSwap.PageOverlayLayerPersistence with 
--site-isolation-enabled-by-default.

* Source/WebCore/page/Page.cpp:
(WebCore::Page::setMainFrame):
* Source/WebCore/page/PageOverlayController.cpp:
(WebCore::PageOverlayController::mainFrameDidBecomeLocal):
* Source/WebCore/page/PageOverlayController.h:

Canonical link: https://commits.webkit.org/322795@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to