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

Reply via email to