mirror of
https://github.com/servo/servo.git
synced 2025-08-09 07:25:35 +01:00
webdriver: Keep constellation alive and Open new top-level browsing context with new session request when none is open (#37410)
Keep Constellation alive even when all browsing context closed in WebDriver mode. In this case, when creating a new session, we would open a new top-level browsing context. Fixes: #37408 Testing: `./mach test-wpt -r .\tests\wpt\tests\webdriver\tests\classic\close_window\close.py --product servodriver` --------- Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com> Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
This commit is contained in:
parent
0e18057863
commit
8b3e7b1c6a
8 changed files with 50 additions and 41 deletions
|
@ -369,8 +369,9 @@ impl App {
|
|||
if let Err(error) = response_sender.send(new_webview.id()) {
|
||||
warn!("Failed to send response of NewWebview: {error}");
|
||||
}
|
||||
|
||||
running_state.set_load_status_sender(new_webview.id(), load_status_sender);
|
||||
if let Some(load_status_sender) = load_status_sender {
|
||||
running_state.set_load_status_sender(new_webview.id(), load_status_sender);
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::CloseWebView(webview_id) => {
|
||||
running_state.close_webview(webview_id);
|
||||
|
@ -446,8 +447,10 @@ impl App {
|
|||
warn!("Failed to send response of GetViewportSize: {error}");
|
||||
}
|
||||
},
|
||||
// This is only received when start new session.
|
||||
WebDriverCommandMsg::GetFocusedWebView(sender) => {
|
||||
let focused_webview = running_state.focused_webview();
|
||||
|
||||
if let Err(error) = sender.send(focused_webview.map(|w| w.id())) {
|
||||
warn!("Failed to send response of GetFocusedWebView: {error}");
|
||||
};
|
||||
|
|
|
@ -272,7 +272,13 @@ impl RunningAppState {
|
|||
Some(last_created_webview) => {
|
||||
last_created_webview.focus();
|
||||
},
|
||||
None => self.servo.start_shutting_down(),
|
||||
None if self.servoshell_preferences.webdriver_port.is_none() => {
|
||||
self.servo.start_shutting_down()
|
||||
},
|
||||
None => {
|
||||
// For WebDriver, don't shut down when last webview closed
|
||||
// https://github.com/servo/servo/issues/37408
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue