[webkit-changes] [WebKit/WebKit] ce9d6a: Unable to opt out of lockdown mode on sites that s...
Chris Dumez
noreply at github.com
Fri Jan 19 15:19:23 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ce9d6af9dc1ab3e2c33a7908c9913007866d6de0
https://github.com/WebKit/WebKit/commit/ce9d6af9dc1ab3e2c33a7908c9913007866d6de0
Author: Chris Dumez <cdumez at apple.com>
Date: 2024-01-19 (Fri, 19 Jan 2024)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
Log Message:
-----------
Unable to opt out of lockdown mode on sites that serve COOP + COEP HTTP headers
https://bugs.webkit.org/show_bug.cgi?id=267766
rdar://119503109
Reviewed by Brent Fulgham.
If lockdown mode is enabled system-wide and the user attempts to navigate to
a site where lockdown mode has been disabled by the user, we expect this
request to be satisfied. However, in the event where the site serves the
proper COOP + COEP HTTP headers to trigger a process-swap, we would fail to
disable lockdown mode.
The reason is that WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation(),
which gets called on network response in case of a COOP + COEP process swap,
would not carry over correctly the lockdown mode state from the old WebProcess
to the new one. In particular, if there is a ProvisionalPageProxy (because the
current navigation caused a PSON process-swap), we should be getting the lockdown
mode from this ProvisionalPageProxy's WebProcessProxy, instead of from the
WebPageProxy's WebPageProxy (which is the committed process, not the provisional
one associated with the current navigation).
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Canonical link: https://commits.webkit.org/273243@main
More information about the webkit-changes
mailing list