Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2cf2471c5f9fc902be3815f54a79069913a8a20f
      
https://github.com/WebKit/WebKit/commit/2cf2471c5f9fc902be3815f54a79069913a8a20f
  Author: Per Arne Vollan <[email protected]>
  Date:   2026-03-18 (Wed, 18 Mar 2026)

  Changed paths:
    M Source/WebKit/Modules/OSX_Private.modulemap
    M Source/WebKit/Modules/iOS_Private.modulemap
    M Source/WebKit/Sources.txt
    M Source/WebKit/UIProcess/API/APINavigation.cpp
    M Source/WebKit/UIProcess/API/APINavigation.h
    M Source/WebKit/UIProcess/API/Cocoa/WKNavigation.mm
    A Source/WebKit/UIProcess/API/Cocoa/WKNavigationPrivateForTesting.h
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    A Source/WebKit/UIProcess/ProcessActivityGroup.cpp
    A Source/WebKit/UIProcess/ProcessActivityGroup.h
    M Source/WebKit/UIProcess/RemotePageProxy.cpp
    M Source/WebKit/UIProcess/RemotePageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxyInternals.h
    M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp
    M Source/WebKit/UIProcess/XR/PlatformXRSystem.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Create a class to manage the aggregated set of activities on 
a WebContent process tree
https://bugs.webkit.org/show_bug.cgi?id=307816
rdar://170326047

Reviewed by Sihui Liu and Chris Dumez.

This change is introducing a new class, ProcessActivityGroup, that manages an 
aggregated set of activities
on a WebContent process tree. This ensures that the WebContent processes in the 
tree have the same activities.
When the ProcessActivityGroup is created, an activity is taken on the main 
frame process and all the iframe
processes. When a new iframe process is created, the same activity will be 
taken on it. And when an iframe
process is exiting, the associated activity will be destroyed. This can be used 
in suspension edge cases
where we currently are only taking an activity on the main frame process. This 
patch is covering some edge
cases. This is guarded behind the Site Isolation runtime flag.

New API test: SiteIsolation.ProcessActivityGroup

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::loadBackgroundWebView):
(WebKit::WebExtensionContext::loadInspectorBackgroundPage):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/RemotePageProxy.cpp:
(WebKit::RemotePageProxy::RemotePageProxy):
(WebKit::RemotePageProxy::~RemotePageProxy):
* Source/WebKit/UIProcess/SiteIsolatedActivity.cpp: Added.
(WebKit::SiteIsolatedActivity::create):
(WebKit::SiteIsolatedActivity::SiteIsolatedActivity):
(WebKit::SiteIsolatedActivity::~SiteIsolatedActivity):
(WebKit::SiteIsolatedActivity::createActivity):
(WebKit::SiteIsolatedActivity::addActivityForRemotePage):
(WebKit::SiteIsolatedActivity::removeActivityForRemotePage):
* Source/WebKit/UIProcess/SiteIsolatedActivity.h: Added.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCreateRemotePage):
(WebKit::WebPageProxy::willDestroyRemotePage):
(WebKit::WebPageProxy::siteIsolatedActivity):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp:
(WebKit::PlatformXRSystem::ensureImmersiveSessionActivity):
* Source/WebKit/UIProcess/XR/PlatformXRSystem.h:

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



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

Reply via email to