Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ffa4174157ba8a428bdb6a4d5e6beab1d15b546c
https://github.com/WebKit/WebKit/commit/ffa4174157ba8a428bdb6a4d5e6beab1d15b546c
Author: Serge Deh <[email protected]>
Date: 2026-01-28 (Wed, 28 Jan 2026)
Changed paths:
M Source/WebKit/UIProcess/Automation/BidiScriptAgent.cpp
M Source/WebKit/UIProcess/Automation/BidiScriptAgent.h
M Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp
M Source/WebKit/UIProcess/Automation/WebAutomationSession.h
M Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp
M Source/WebKit/UIProcess/Automation/protocol/BidiScript.json
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.js
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in
M WebDriverTests/TestExpectations.json
Log Message:
-----------
[WebDriver BiDi] Add foundation for script.evaluate implementation
https://bugs.webkit.org/show_bug.cgi?id=288060
Reviewed by BJ Burg.
This patch implements the foundational infrastructure for WebDriver BiDi
script.evaluate command. It establishes the protocol definitions,
IPC plumbing, and basic evaluation capability needed for subsequent
feature enhancements.
The implementation includes:
- Protocol definitions for script.evaluate in BidiScript.json
- IPC message routing from UIProcess to WebProcess
- JavaScript wrapper for BiDi-compliant script evaluation
- Basic RemoteValue serialization for primitive types
- Simplified exception handling with placeholder stack traces
This foundation supports basic script evaluation with context-based targets.
Advanced features (resultOwnership, serializationOptions, sandbox, realm
targets, complex types, detailed exception information) are marked with
FIXME comments for future implementation.
* Source/WebKit/UIProcess/Automation/BidiScriptAgent.cpp:
(WebKit::BidiScriptAgent::evaluate): Add basic script.evaluate implementation
with context-based target handling.
(WebKit::BidiScriptAgent::finishEvaluateBidiScriptResult): Add result
processing with simplified exception handling.
(WebKit::deserializeRemoteValue): Add basic primitive type deserialization.
* Source/WebKit/UIProcess/Automation/BidiScriptAgent.h:
Add method declarations for script.evaluate support.
* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::evaluateBidiScript): Add bridge method for
BiDi script evaluation.
* Source/WebKit/UIProcess/Automation/WebAutomationSession.h:
Add evaluateBidiScript method declaration.
* Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp:
(WebKit::WebDriverBidiProcessor::processBidiMessage): Simplify to rely on
backend dispatcher validation.
* Source/WebKit/UIProcess/Automation/protocol/BidiScript.json:
Update RemoteValueType enum with primitive types.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
Add IPC message handling for EvaluateBidiScript.
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::evaluateBidiScript): Implement script
evaluation with BiDi envelope format.
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h:
Add evaluateBidiScript method declaration.
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.js:
(evaluateBidiScript): Add JavaScript wrapper for BiDi-compliant evaluation
with envelope format and type markers.
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.messages.in:
Add EvaluateBidiScript IPC message definition.
* WebDriverTests/TestExpectations.json:
Update test expectations for script.evaluate tests.
Canonical link: https://commits.webkit.org/306378@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications