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