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