Files
servo/components
Euclid Ye aedbebbb35 webdriver: Support interspersed pointerMove actions via event queue (#42289)
For `pointerMove` with duration, we need to wait asynchronously and
execute in parallel for subsequent moves.
But we never did this correctly: we waited in a blocking way which broke
the whole point of tick: making sure we simultaneously perform actions
from multiple sources within a single unit time.

To avoid async borrow-checker hell, we achieve the same effect using a
event queue.

> Spec: The initial pointer movement is performed synchronously. This
ensures determinism in the sequence of the first event triggered by each
action in the tick.
> 
> Subsequent movements (if any) are performed asynchronously. This
allows events from two
[pointerMove](https://w3c.github.io/webdriver/#dfn-pointermove) actions
in the tick to be interspersed.

Testing: Existing WPT tests not affected, which is a good sign.
Fixes: #42235
This is a pre-requisite to #41923: multi-touch support.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-02-03 04:08:58 +00:00
..
2025-09-20 03:09:37 +00:00