Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f43fa7ebe877fd00e630aa1d61a70ca94edb6af
      
https://github.com/WebKit/WebKit/commit/7f43fa7ebe877fd00e630aa1d61a70ca94edb6af
  Author: Razvan Caliman <[email protected]>
  Date:   2026-10-07 (Wed, 07 Oct 2026)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Sources.txt
    M Source/WebKit/UIProcess/Automation/BidiEventNames.h
    A Source/WebKit/UIProcess/Automation/BidiInputAgent.cpp
    A Source/WebKit/UIProcess/Automation/BidiInputAgent.h
    M Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp
    M Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.h
    A Source/WebKit/UIProcess/Automation/protocol/BidiInput.json
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [WebDriver][BiDi] Add protocol definition and basic validation for input 
module
https://bugs.webkit.org/show_bug.cgi?id=325653
rdar://188706546

Reviewed by BJ Burg.

Add the WebDriver BiDi input module to the Automation backend: the BidiInput 
protocol
domain (input.performActions, input.releaseActions, input.setFiles, and the
input.fileDialogOpened event) and BidiInputAgent, registered with 
WebDriverBidiProcessor.

input.performActions resolves the navigable, then implements the WebDriver 
"extract an
action sequence" algorithm against a per-top-level-context input state. Each 
input source
action sequence and each action item is validated in spec order: source type, 
id, pointer
parameters, then get-or-create the input source (rejecting a reused id with a 
different
type or pointerType), then every action.

Durations, buttons and pointer dimensions must be js-uint; pointerMove 
coordinates are floats;
wheel coordinates and deltas must be js-int; pointer pressure, tilt, twist and 
angle properties
are range-checked; element origins must be an input.ElementOrigin with a 
script.SharedReference;
and wheel sources reject the "pointer" origin. Invalid input produces invalid 
argument,
and unknown contexts produce no such frame.

Dispatching validated actions is not implemented yet, so input.performActions 
reports
unsupported operation after validation instead of claiming success. 
input.releaseActions
resets the input state for the context's top-level traversabl. Since no actions 
can have
been dispatched, its input cancel list is always empty. input.setFiles reports 
unsupported
operation. Dispatch is tracked in webkit.org/b/288114 and setFiles in 
webkit.org/b/287926.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/Automation/BidiEventNames.h:
* Source/WebKit/UIProcess/Automation/BidiInputAgent.cpp: Added.
(WebKit::BidiInput::State::find const):
(WebKit::BidiInput::State::add):
(WebKit::BidiInput::numberValue):
(WebKit::BidiInput::integerValue):
(WebKit::BidiInput::optionalUnsigned):
(WebKit::BidiInput::optionalNumberInRange):
(WebKit::BidiInput::optionalIntegerInRange):
(WebKit::BidiInput::processPauseAction):
(WebKit::BidiInput::isSingleGraphemeCluster):
(WebKit::BidiInput::elementOriginSharedId):
(WebKit::BidiInput::processOrigin):
(WebKit::BidiInput::processPointerProperties):
(WebKit::BidiInput::processButton):
(WebKit::BidiInput::processPointerAction):
(WebKit::BidiInput::processWheelAction):
(WebKit::BidiInput::processKeyAction):
(WebKit::BidiInput::processNullAction):
(WebKit::BidiInput::processInputSourceActionSequence):
(WebKit::BidiInput::extractActionSequence):
(WebKit::BidiInputAgent::BidiInputAgent):
(WebKit::BidiInputAgent::inputStateForTopLevelContext):
(WebKit::BidiInputAgent::resetInputState):
(WebKit::BidiInputAgent::performActions):
(WebKit::BidiInputAgent::releaseActions):
(WebKit::BidiInputAgent::setFiles):
* Source/WebKit/UIProcess/Automation/BidiInputAgent.h: Added.
* Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp:
(WebKit::WebDriverBidiProcessor::WebDriverBidiProcessor):
* Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.h:
* Source/WebKit/UIProcess/Automation/protocol/BidiInput.json: Added.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to