Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6e575fc4461fd3fab4fa0cb1db22d9726a6e16b6
      
https://github.com/WebKit/WebKit/commit/6e575fc4461fd3fab4fa0cb1db22d9726a6e16b6
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Cross-site frame in webarchive does not load when shared 
process mode is on
https://bugs.webkit.org/show_bug.cgi?id=322665
rdar://185246724

Reviewed by Per Arne Vollan.

Under site isolation, every frame of a page loading a webarchive has to stay in 
the same archive process because the
archive's subresources are only loaded into that process. There is a check in 
WebProcessPool::processForNavigation to
make sure subframe loads reuse the archive process. However, when shared 
process mode is on, we look for a shared
process (BrowsingContextGroup::sharedProcessForSite) before looking for a 
process in the process pool
(WebProcessPool::processForNavigation), so the check is skipped, and we might 
pick a shared process instead of the
archive process for loading a subframe. Move the check earlier to before the 
sharedProcessForSite call.

Add SiteIsolation.LoadWebArchiveWithSharedProcess, which pins 
SiteIsolationSharedProcessEnabled on and would have caught
this. SiteIsolation.LoadWebArchive only inherited the default value of the 
preference, and it now pins it off so we also
get coverage for full isolation mode (even if the default becomes shared 
process mode).

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigation):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, LoadWebArchive)):
(TestWebKitAPI::(SiteIsolation, LoadWebArchiveWithSharedProcess)):

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



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

Reply via email to