Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e3e8e6850c8d880902afe69023e3a49ce976f38e
https://github.com/WebKit/WebKit/commit/e3e8e6850c8d880902afe69023e3a49ce976f38e
Author: Basuke Suzuki <[email protected]>
Date: 2026-05-06 (Wed, 06 May 2026)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
Log Message:
-----------
[Site Isolation] Skip the live frame's process for back/forward navigation
when a SuspendedPage exists
https://bugs.webkit.org/show_bug.cgi?id=314130
rdar://176305227
Reviewed by Sihui Liu.
processForTheFrameItem and copyFrameStateForBackForwardNavigation
currently return the live frame's process for back/forward navigation
under Site Isolation. But if the target back/forward item has a
SuspendedPageProxy (the common case for a BFCache restoration target),
returning the live frame's process is stale — the BFCache path should
drive process selection via the SuspendedPage. Skip the live frame's
process in that case so the caller falls back to the default and the
BFCache path takes over later in the navigation.
Also add a defensive check: if the live frame's process is neither
the page's main frame process nor reachable via a RemotePageProxy in
the BCG, log and fall back rather than returning a detached process.
The shared Site Isolation gate previously duplicated between the two
callers is extracted into frameProcessForNonCachedBackForwardNavigation
along with the new checks.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processForTheFrameItem const):
(WebKit::WebPageProxy::copyFrameStateForBackForwardNavigation const):
(WebKit::WebPageProxy::frameProcessForNonCachedBackForwardNavigation const):
* Source/WebKit/UIProcess/WebPageProxy.h:
Canonical link: https://commits.webkit.org/312724@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications