Skip to content

Commit

Permalink
Add setting for WebKit process management
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=265337
rdar://118789596

Reviewed by Brent Fulgham.

Add setting to manage WebKit processes as extensions. This setting is not enabled by default.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:

Canonical link: https://commits.webkit.org/271181@main
  • Loading branch information
pvollan committed Nov 28, 2023
1 parent a9bd8c3 commit 8a3ec59
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
12 changes: 12 additions & 0 deletions Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3984,6 +3984,18 @@ ManageCaptureStatusBarInGPUProcessEnabled:
WebCore:
default: false

ManageWebKitProcessesAsExtensions:
type: bool
status: internal
humanReadableName: "Manage WebKit processes as extensions"
humanReadableDescription: "Manage WebKit processes as extensions"
condition: USE(EXTENSIONKIT)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false

ManagedMediaSourceEnabled:
type: bool
status: stable
Expand Down
5 changes: 0 additions & 5 deletions Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
Original file line number Diff line number Diff line change
Expand Up @@ -304,11 +304,6 @@ static void logProcessPoolState(const WebProcessPool& pool)
for (const auto& pool : WebProcessPool::allProcessPools())
logProcessPoolState(pool.get());
});

#if USE(EXTENSIONKIT)
bool manageProcessesAsExtensions = !CFPreferencesGetAppBooleanValue(CFSTR("disableProcessesAsExtensions"), kCFPreferencesCurrentApplication, nullptr);
AuxiliaryProcessProxy::setManageProcessesAsExtensions(manageProcessesAsExtensions);
#endif
}

void WebProcessPool::platformResolvePathsForSandboxExtensions()
Expand Down
5 changes: 5 additions & 0 deletions Source/WebKit/UIProcess/WebProcessPool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1105,6 +1105,11 @@ Ref<WebPageProxy> WebProcessPool::createWebPage(PageClient& pageClient, Ref<API:
pageConfiguration->setWebsiteDataStore(WebKit::WebsiteDataStore::defaultDataStore());
}

#if USE(EXTENSIONKIT)
auto manageWebKitProcessesAsExtensions = pageConfiguration->preferences()->store().getBoolValueForKey(WebPreferencesKey::manageWebKitProcessesAsExtensionsKey());
AuxiliaryProcessProxy::setManageProcessesAsExtensions(manageWebKitProcessesAsExtensions);
#endif

RefPtr<WebProcessProxy> process;
auto lockdownMode = pageConfiguration->lockdownModeEnabled() ? WebProcessProxy::LockdownMode::Enabled : WebProcessProxy::LockdownMode::Disabled;
RefPtr relatedPage = pageConfiguration->relatedPage();
Expand Down

0 comments on commit 8a3ec59

Please sign in to comment.