-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Need to replace input_id when coalescing existing input event to unblock the thread #43136
Copy link
Copy link
Closed
Labels
A-content/scriptRelated to the script threadRelated to the script threadA-webdriverI-raceA race between two concurrent pieces of code.A race between two concurrent pieces of code.
Description
Describe the bug:
I've been intensively writing WebDriver input events with duration for past few months.
Sometimes, the test just randomly TIMEOUT.
Previously it is just mousemove, but now it happens for Wheel too, seems to be after ##43074.
The problem is, when we replace existing event,
| if let InputEvent::Wheel(ref mut existing_wheel) = existing.event.event { |
input_id.
This is important, because we synchronously block the thread for last event:
servo/components/webdriver_server/lib.rs
Lines 497 to 503 in 6f15489
| fn send_blocking_input_event_to_embedder(&mut self, input_event: InputEvent) { | |
| let (result_sender, result_receiver) = unbounded(); | |
| if self | |
| .send_message_to_embedder(WebDriverCommandMsg::InputEvent( | |
| self.verified_webview_id(), | |
| input_event, | |
| Some(result_sender), |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-content/scriptRelated to the script threadRelated to the script threadA-webdriverI-raceA race between two concurrent pieces of code.A race between two concurrent pieces of code.