Skip to content

Re-land Create SPI for Enhanced Security#51115

Merged
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
darryl-apple:eng/Reland-Create-WKAPI-for-Enhanced-Security
Sep 24, 2025
Merged

Re-land Create SPI for Enhanced Security#51115
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
darryl-apple:eng/Reland-Create-WKAPI-for-Enhanced-Security

Conversation

@darryl-apple
Copy link
Contributor

@darryl-apple darryl-apple commented Sep 22, 2025

347f872

Re-land Create SPI for Enhanced Security
https://bugs.webkit.org/show_bug.cgi?id=299285
rdar://161090983

Reviewed by Per Arne Vollan.

Create SPI for EnhancedSecurity

Tests: security/cocoa/check-enhanced-security-disabled.html
       security/cocoa/check-enhanced-security-enabled.html
       security/cocoa/enhanced-security/check-enhanced-security-enabled.html
       security/cocoa/lockdown-mode/check-lockdown-mode-enabled.html
       Tools/TestWebKitAPI/SourcesCocoa.txt
       Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
       Tools/TestWebKitAPI/Tests/WebKitCocoa/EnhancedSecurity.mm
* LayoutTests/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/security/cocoa/check-enhanced-security-disabled-expected.txt: Added.
* LayoutTests/security/cocoa/check-enhanced-security-disabled.html: Added.
* LayoutTests/security/cocoa/check-enhanced-security-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/check-enhanced-security-enabled.html: Added.
* LayoutTests/security/cocoa/enhanced-security/check-enhanced-security-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/enhanced-security/check-enhanced-security-enabled.html: Added.
* LayoutTests/security/cocoa/lockdown-mode/check-lockdown-mode-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/lockdown-mode/check-lockdown-mode-enabled.html: Added.
* Source/WebCore/page/Page.h:
(WebCore::Page::setWebContentProcessVariant):
(WebCore::Page::webContentProcessVariant const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::webContentProcessVariant const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):
(WebKit::setJSCOptions):
* Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::enhancedSecurityEnabled const):
* Source/WebKit/UIProcess/API/APIPageConfiguration.h:
* Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isEnhancedSecurityEnabled:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _setEnhancedSecurityEnabled:]):
(-[WKWebpagePreferences _enhancedSecurityEnabled]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:
(WebKit::BrowsingContextGroup::sharedProcessForSite):
* Source/WebKit/UIProcess/BrowsingContextGroup.h:
* Source/WebKit/UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):
* Source/WebKit/UIProcess/SuspendedPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
(WebKit::WebPageProxy::isEnhancedSecurityEnabled):
(WebKit::WebPageProxy::shouldEnableEnhancedSecurity const):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::takeProcess):
* Source/WebKit/UIProcess/WebProcessCache.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForSite):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::prepareProcessForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::createForRemoteWorkers):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::getLaunchOptions):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_toolbarsAreVisible):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
(WebKit::WebProcess::isEnhancedSecurityEnabled):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Tools/MiniBrowser/mac/SettingsController.h:
* Tools/MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu:]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleEnhancedSecurityEnabled:]):
(-[SettingsController enhancedSecurityEnabled]):
* Tools/MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
* Tools/TestRunnerShared/TestFeatures.cpp:
(WTR::shouldEnableEnhancedSecurity):
(WTR::hardcodedFeaturesBasedOnPathForTest):
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/EnhancedSecurity.mm: Added.
(TestWebKitAPI::isEnhancedSecurityEnabled):
(TestWebKitAPI::isJITEnabled):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityEnablesTrue)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityEnableFalse)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityDisablesJIT)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityNavigationStaysEnabledAfterNavigation)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecurity)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySamePage)):
(TestWebKitAPI::psonProcessPoolConfiguration):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySharedProcessPool)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySharedProcessPoolReverse)):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
* Tools/WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::enhancedSecurityEnabled const):
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::configureWebpagePreferences):

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

6ac8c24

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows Apple Internal
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 win ✅ 🛠 ios-apple
✅ 🧪 bindings ✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ✅ 🧪 wpe-wk2 ✅ 🧪 win-tests ✅ 🛠 mac-apple
✅ 🧪 webkitperl ✅ 🧪 ios-wk2 ✅ 🧪 api-mac ✅ 🧪 api-wpe ✅ 🛠 vision-apple
✅ 🧪 ios-wk2-wpt ✅ 🧪 mac-wk1 ✅ 🛠 wpe-cairo
✅ 🧪 api-ios ✅ 🧪 mac-wk2 ✅ 🛠 gtk
✅ 🛠 vision ✅ 🧪 mac-AS-debug-wk2 ✅ 🧪 gtk-wk2
✅ 🛠 vision-sim ✅ 🧪 mac-wk2-stress ✅ 🧪 api-gtk
✅ 🛠 🧪 merge ✅ 🧪 vision-wk2 ✅ 🧪 mac-intel-wk2 ✅ 🛠 playstation
✅ 🛠 tv ✅ 🛠 mac-safer-cpp
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

@darryl-apple darryl-apple added the New Bugs Unclassified bugs are placed in this component until the correct component can be determined. label Sep 22, 2025
@darryl-apple darryl-apple changed the title Reland Create SPI for Enhanced Security Re-land Create SPI for Enhanced Security Sep 22, 2025
@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from e1d21ca to 2fd43bb Compare September 22, 2025 13:34
@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from 2fd43bb to b1829f9 Compare September 22, 2025 14:18
@@ -1035,6 +1035,8 @@ class Internals final

bool isHardwareVP9DecoderExpected();

bool enhancedSecurityEnabled() const;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I mentioned in another PR, while I think having the term "enhanced security" in Apple's WebKit API/SPI is fine, I really don't think it belongs in the internals as it is not a term that is meaningful or has standards associated with it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - Thanks for the feedback! We'll look at breaking it down into more specifics as the feature develops

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you go into more detail about why WebCore internals need to know about this state at the moment?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is purely to expose to LayoutTests when we are/aren't running in a given configuration. We actually want the same thing for LockdownMode too.

How about an alternate proposal of DOMString webContentProcessVariant() which returns 'standard', 'lockdown', 'security', etc.? That way, we can have a generic routine which can be re-used throughout the various testing scenarios we would like to cover.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those seem like things that are probably better tested through API tests.

@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from b1829f9 to 5705a2f Compare September 22, 2025 23:43
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Sep 23, 2025
@pvollan pvollan requested a review from weinig September 23, 2025 02:35
Comment on lines +6563 to +6580
String Internals::webContentProcessVariant() const
{
auto* document = contextDocument();
if (!document)
return { };
auto* page = document->page();
if (!page)
return { };

switch (page->webContentProcessVariant()) {
case WebContentProcessVariant::Security:
return "security"_s;
case WebContentProcessVariant::Lockdown:
return "lockdown"_s;
default:
return "standard"_s;
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should use entitlements checks instead to determine the WebContent process variant. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that we should do this and is the intent. But this PR doesn’t have the code to spin the new process type up - that’s in the follow-up. We didn’t want to merge the 2 PRs and it be too large to review. The hope was that this small amount of glue code would be enough to get an initial set of tests passing then in the follow-up we’d replace it with a process check using entitlement/process name or similar.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, thanks! Should we file a bug, and add a comment about this? I think we can move forward with the current approach, if Sam does not have concerns with the Internals changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @weinig

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WebCore, and therefore this Internals class, really should not know anything about web process, as that is a WebKit concept.

I do think this would be better as an API test.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good point @weinig! @darryl-apple, would you have time to create API tests for this instead?

@darryl-apple darryl-apple removed the merging-blocked Applied to prevent a change from being merged label Sep 23, 2025
@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from 5705a2f to 7419202 Compare September 23, 2025 06:42
@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from 7419202 to 082c839 Compare September 23, 2025 07:10
@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from 082c839 to d0ad450 Compare September 23, 2025 09:19
@@ -1380,6 +1386,9 @@ class Page : public RefCountedAndCanMakeWeakPtr<Page>, public Supplementable<Pag
void setHardwareKeyboardAttached(bool attached) { m_hardwareKeyboardAttached = attached; }
bool hardwareKeyboardAttached() const { return m_hardwareKeyboardAttached; }

void setWebContentProcessVariant(WebContentProcessVariant value) { m_webContentProcessVariant = value; };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: value -> variant

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

@@ -12227,6 +12229,12 @@ void WebPageProxy::isJITEnabled(CompletionHandler<void(bool)>&& completionHandle
protectedLegacyMainFrameProcess()->sendWithAsyncReply(Messages::WebProcess::IsJITEnabled(), WTFMove(completionHandler), 0);
}

void WebPageProxy::isEnhancedSecurityEnabled(CompletionHandler<void(bool)>&& completionHandler)
{
launchInitialProcessIfNecessary();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we just call the completion handler with false if a WebContent process hasn't been launched yet?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that seems sensible. Changed

@@ -145,6 +145,7 @@ messages -> WebProcess : AuxiliaryProcess WantsAsyncDispatchMessage {
#endif

IsJITEnabled() -> (bool enabled)
IsEnhancedSecurityEnabled() -> (bool enabled)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may replace this with an entitlement check at a later point.

@darryl-apple darryl-apple force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from d0ad450 to 6ac8c24 Compare September 23, 2025 20:37
@darryl-apple darryl-apple added the safe-merge-queue Applied to automatically send a pull-request to merge-queue after passing EWS checks label Sep 24, 2025
@webkit-ews-buildbot webkit-ews-buildbot added merge-queue Applied to send a pull request to merge-queue and removed safe-merge-queue Applied to automatically send a pull-request to merge-queue after passing EWS checks labels Sep 24, 2025
@webkit-ews-buildbot
Copy link
Collaborator

Safe-Merge-Queue: Build #70176.

https://bugs.webkit.org/show_bug.cgi?id=299285
rdar://161090983

Reviewed by Per Arne Vollan.

Create SPI for EnhancedSecurity

Tests: security/cocoa/check-enhanced-security-disabled.html
       security/cocoa/check-enhanced-security-enabled.html
       security/cocoa/enhanced-security/check-enhanced-security-enabled.html
       security/cocoa/lockdown-mode/check-lockdown-mode-enabled.html
       Tools/TestWebKitAPI/SourcesCocoa.txt
       Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
       Tools/TestWebKitAPI/Tests/WebKitCocoa/EnhancedSecurity.mm
* LayoutTests/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/security/cocoa/check-enhanced-security-disabled-expected.txt: Added.
* LayoutTests/security/cocoa/check-enhanced-security-disabled.html: Added.
* LayoutTests/security/cocoa/check-enhanced-security-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/check-enhanced-security-enabled.html: Added.
* LayoutTests/security/cocoa/enhanced-security/check-enhanced-security-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/enhanced-security/check-enhanced-security-enabled.html: Added.
* LayoutTests/security/cocoa/lockdown-mode/check-lockdown-mode-enabled-expected.txt: Added.
* LayoutTests/security/cocoa/lockdown-mode/check-lockdown-mode-enabled.html: Added.
* Source/WebCore/page/Page.h:
(WebCore::Page::setWebContentProcessVariant):
(WebCore::Page::webContentProcessVariant const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::webContentProcessVariant const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):
(WebKit::setJSCOptions):
* Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::enhancedSecurityEnabled const):
* Source/WebKit/UIProcess/API/APIPageConfiguration.h:
* Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isEnhancedSecurityEnabled:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _setEnhancedSecurityEnabled:]):
(-[WKWebpagePreferences _enhancedSecurityEnabled]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:
(WebKit::BrowsingContextGroup::sharedProcessForSite):
* Source/WebKit/UIProcess/BrowsingContextGroup.h:
* Source/WebKit/UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):
* Source/WebKit/UIProcess/SuspendedPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
(WebKit::WebPageProxy::isEnhancedSecurityEnabled):
(WebKit::WebPageProxy::shouldEnableEnhancedSecurity const):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::takeProcess):
* Source/WebKit/UIProcess/WebProcessCache.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForSite):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::prepareProcessForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::createForRemoteWorkers):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::getLaunchOptions):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_toolbarsAreVisible):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
(WebKit::WebProcess::isEnhancedSecurityEnabled):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Tools/MiniBrowser/mac/SettingsController.h:
* Tools/MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu:]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleEnhancedSecurityEnabled:]):
(-[SettingsController enhancedSecurityEnabled]):
* Tools/MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
* Tools/TestRunnerShared/TestFeatures.cpp:
(WTR::shouldEnableEnhancedSecurity):
(WTR::hardcodedFeaturesBasedOnPathForTest):
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/EnhancedSecurity.mm: Added.
(TestWebKitAPI::isEnhancedSecurityEnabled):
(TestWebKitAPI::isJITEnabled):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityEnablesTrue)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityEnableFalse)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityDisablesJIT)):
(TestWebKitAPI::TEST(EnhancedSecurity, EnhancedSecurityNavigationStaysEnabledAfterNavigation)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecurity)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySamePage)):
(TestWebKitAPI::psonProcessPoolConfiguration):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySharedProcessPool)):
(TestWebKitAPI::TEST(EnhancedSecurity, PSONToEnhancedSecuritySharedProcessPoolReverse)):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
* Tools/WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::enhancedSecurityEnabled const):
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::configureWebpagePreferences):

Canonical link: https://commits.webkit.org/300457@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Reland-Create-WKAPI-for-Enhanced-Security branch from 6ac8c24 to 347f872 Compare September 24, 2025 11:32
@webkit-commit-queue
Copy link
Collaborator

Committed 300457@main (347f872): https://commits.webkit.org/300457@main

Reviewed commits have been landed. Closing PR #51115 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 347f872 into WebKit:main Sep 24, 2025
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Sep 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New Bugs Unclassified bugs are placed in this component until the correct component can be determined.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants