Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2a4f2cc364a987aafad3a99f3d7c8b033ea1bd9e
https://github.com/WebKit/WebKit/commit/2a4f2cc364a987aafad3a99f3d7c8b033ea1bd9e
Author: Sihui Liu <[email protected]>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.h
M Source/WebKit/UIProcess/WebFrameProxy.cpp
Log Message:
-----------
[Site Isolation] Fix WKNavigation.HTTPSFirstWithHTTPRedirect
https://bugs.webkit.org/show_bug.cgi?id=310145
rdar://172786795
Reviewed by Per Arne Vollan.
309232@main makes it possible to use uncommitted process for loading under Site
Isolation, but some API tests (like
WKNavigation.HTTPSFirstWithHTTPRedirect) still fail because uncommitted process
is not reused as expected. The direct
cause is `sourceProcess->frameProcessCount()` in
`WebProcessPool::processForNavigationInternal` is 2 even though the
process is only used by the navigating frame (so there should be only one
`FrameProcess` and the value should be 1). It
turns out besides `WebFrameProxy`, `ProvisionalPageProxy` also holds onto
`FrameProcess` with `m_frameProcess`, and that
is not updated when we swap process for `WebFrameProxy` -- so `WebFrameProxy`
could hold onto the new `FrameProcess`
with redirect site, while `ProvisionalPageProxy` holds onto the old
`FrameProcess` with previous site, and both
`FrameProcess` objects point to the same `WebProcessProxy`, preventing the
process from being reused in
`WebProcessPool::processForNavigationInternal`. To fix this, making sure
`ProvisionalPageProxy` updates `m_frameProcess`
when its frame updates process.
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::updateFrameProcess):
* Source/WebKit/UIProcess/ProvisionalPageProxy.h:
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setProcess):
Canonical link: https://commits.webkit.org/309483@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications