mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Synchronize dispatch_actions
in WebDriver (#36932)
Implement missing synchronization in `dispatch_actions` of `WebDriver`. https://w3c.github.io/webdriver/#dispatching-actions > The user agent event loop has spun enough times to process the DOM events generated by the last invocation of the >[dispatch tick actions](https://w3c.github.io/webdriver/#dfn-dispatch-tick-actions) steps. - Add a way for `ScriptThread` to notify `WebDriver` about the completion of input commands. - Add a `webdriver_id` field for `InputEvent`. `ScriptThread` uses it to distinguish WebDriver events and sends notification. Tests: `./mach test-wpt --product servodriver -r tests\wpt\tests\webdriver\tests\classic\element_click\events.py` pass if `hit_testing` pass. Check [issue](https://github.com/servo/servo/issues/36676#issuecomment-2882917136) cc: @xiaochengh --------- Signed-off-by: batu_hoang <longvatrong111@gmail.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
3a527d784b
commit
f52fa9b672
13 changed files with 471 additions and 140 deletions
|
@ -10,6 +10,7 @@ use base::id::{PipelineId, WebViewId};
|
|||
use crossbeam_channel::Sender;
|
||||
use embedder_traits::{
|
||||
AnimationState, EventLoopWaker, MouseButton, MouseButtonAction, TouchEventResult,
|
||||
WebDriverMessageId,
|
||||
};
|
||||
use euclid::Rect;
|
||||
use ipc_channel::ipc::IpcSender;
|
||||
|
@ -101,9 +102,16 @@ pub enum CompositorMsg {
|
|||
/// The load of a page has completed
|
||||
LoadComplete(WebViewId),
|
||||
/// WebDriver mouse button event
|
||||
WebDriverMouseButtonEvent(WebViewId, MouseButtonAction, MouseButton, f32, f32),
|
||||
WebDriverMouseButtonEvent(
|
||||
WebViewId,
|
||||
MouseButtonAction,
|
||||
MouseButton,
|
||||
f32,
|
||||
f32,
|
||||
WebDriverMessageId,
|
||||
),
|
||||
/// WebDriver mouse move event
|
||||
WebDriverMouseMoveEvent(WebViewId, f32, f32),
|
||||
WebDriverMouseMoveEvent(WebViewId, f32, f32, WebDriverMessageId),
|
||||
// Webdriver wheel scroll event
|
||||
WebDriverWheelScrollEvent(WebViewId, f32, f32, f64, f64),
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue