Bug 213060

Summary: [WebDriver] Support input cancel list
Product: WebKit Reporter: Lauro Moura <lmoura>
Component: WebDriverAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bburg
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=193684

Description Lauro Moura 2020-06-10 17:01:49 PDT
Currently, WebAutomationSession/SimulatedInputDispacher generates a set of default reset states for each input source when canceling an interaction sequence. (WebAutomationSession::cancelInteractionSequence).

This is causing the mouseup reset event to be emitted with (0,0) position instead of the position of the last mouse press/move. This is making imported/w3c/webdriver/tests/perform_actions/pointer_contextmenu.py::test_release_control_click (and probably others to fail).

A tentative fix for this, preserving the pointer coordinate, also showed that the order of the actions is not preserved (Cancel actions are traversed in a different order than expected).

In the current WebDriver spec, these are the actions that add actions to the inputCancelList:

* KeyDown -> Adds the same state with KeyUp
* PointerDown -> Adds the same state with PointerUp