mirror of
https://github.com/servo/servo.git
synced 2025-09-27 23:30:08 +01:00
webdriver: Focus WebView asynchronously (#39241)
#38160 added a webdriver-specific API to support waiting on focus operations to complete. Later, #38243 added a unique id to track each focus operation. Back then we wait on focusing webview in webdriver hoping to improve stability, but it does not matter as it turns out later. #39086 also focuses browsing context asynchronously. This PR would make webdriver's focusing-webview behaviour same as human interaction. Testing: [Before 1](https://github.com/yezhizhen/servo/actions/runs/17598288280), [Before 2](https://github.com/yezhizhen/servo/actions/runs/17598289360), [Before 3](https://github.com/yezhizhen/servo/actions/runs/17598290532) [After 1](https://github.com/yezhizhen/servo/actions/runs/17598282988), [After 2](https://github.com/yezhizhen/servo/actions/runs/17598280603), [After 3](https://github.com/yezhizhen/servo/actions/runs/17589228530) --------- Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
This commit is contained in:
parent
433a6bf47b
commit
726b456120
12 changed files with 42 additions and 124 deletions
|
@ -381,10 +381,9 @@ impl App {
|
|||
warn!("Failed to send response of CloseWebView: {error}");
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::FocusWebView(webview_id, response_sender) => {
|
||||
WebDriverCommandMsg::FocusWebView(webview_id) => {
|
||||
if let Some(webview) = running_state.webview_by_id(webview_id) {
|
||||
let focus_id = webview.focus_and_raise_to_top(true);
|
||||
running_state.set_pending_focus(focus_id, response_sender);
|
||||
webview.focus_and_raise_to_top(true);
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::FocusBrowsingContext(..) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue