Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a8aac3e415410bdc261470177d0b098b8414055a
https://github.com/WebKit/WebKit/commit/a8aac3e415410bdc261470177d0b098b8414055a
Author: BJ Burg <[email protected]>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/webdriver/NavigatorWebDriver.cpp
A Source/WebCore/Modules/webdriver/NavigatorWebDriverActivePolicy.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/SettingsBase.h
M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
M Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration+Extras.swift
M Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm
M Source/WebKit/UIProcess/API/Swift/WebPage+Configuration.swift
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WebKit/WebPage/NavigatorWebDriverOverride.swift
Log Message:
-----------
Add an API test to exercise the behavior of navigator.webdriver
https://bugs.webkit.org/show_bug.cgi?id=165269
Reviewed by Richard Robinson.
Introduce a 3-valued NavigatorWebDriverActivePolicy preference (Auto,
Enabled, Disabled) and a navigatorWebDriverEnabled BOOL on
_WKAutomationSessionConfiguration. NavigatorWebDriver consults the
policy: Auto falls back to Page::isControlledByAutomation() (today's
behavior), Enabled forces true, Disabled forces false. The
automation-session BOOL carries the embedder's choice; the
WKPreferences SPI _setNavigatorWebDriverActivePolicy lets a session
apply it per page.
The test is written against WebPage. To drive the automation-controlled
input without adding new public API, add an isControlledByAutomation
testing-only property to WebPage.Configuration (mirroring the existing
processPool testing hook), forwarded to the underlying
WKWebViewConfiguration; the active policy is applied through the page's
preferences.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/webdriver/NavigatorWebDriver.cpp:
(WebCore::NavigatorWebDriver::isControlledByAutomation):
* Source/WebCore/Modules/webdriver/NavigatorWebDriverActivePolicy.h: Added.
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/SettingsBase.h:
* Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _navigatorWebDriverActivePolicy]):
(-[WKPreferences _setNavigatorWebDriverActivePolicy:]):
* Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration+Extras.swift:
* Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm:
(-[_WKAutomationSessionConfiguration init]):
(-[_WKAutomationSessionConfiguration copyWithZone:]):
* Source/WebKit/UIProcess/API/Swift/WebPage+Configuration.swift:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/WebPage/NavigatorWebDriverOverride.swift:
Added.
Canonical link: https://commits.webkit.org/315656@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications