mirror of
https://github.com/servo/servo.git
synced 2025-09-13 08:28:19 +01:00
Webdriver GoBack and GoForward commands wait for navigation complete (#37950)
After sending `GoBack` or `GoForward` command, webdriver wait for the navigation complete. It can be achieved by waiting for `WebViewDelegate::notify_history_changed` Testing: `tests/wpt/meta/webdriver/tests/classic/back/back.py` `tests/wpt/meta/webdriver/tests/classic/forward/forward.py` --------- Signed-off-by: batu_hoang <longvatrong111@gmail.com> Signed-off-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: batu_hoang <hoang.binh.trong@huawei.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
c817d7b9ce
commit
8e2d2bde6f
16 changed files with 114 additions and 40 deletions
|
@ -462,24 +462,34 @@ impl App {
|
|||
},
|
||||
WebDriverCommandMsg::LoadUrl(webview_id, url, load_status_sender) => {
|
||||
if let Some(webview) = running_state.webview_by_id(webview_id) {
|
||||
webview.load(url.into_url());
|
||||
running_state.set_load_status_sender(webview_id, load_status_sender);
|
||||
webview.load(url.into_url());
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::Refresh(webview_id, load_status_sender) => {
|
||||
if let Some(webview) = running_state.webview_by_id(webview_id) {
|
||||
webview.reload();
|
||||
running_state.set_load_status_sender(webview_id, load_status_sender);
|
||||
webview.reload();
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::GoBack(webview_id) => {
|
||||
WebDriverCommandMsg::GoBack(webview_id, load_status_sender) => {
|
||||
if let Some(webview) = running_state.webview_by_id(webview_id) {
|
||||
webview.go_back(1);
|
||||
let traversal_id = webview.go_back(1);
|
||||
running_state.set_pending_traversal(
|
||||
webview_id,
|
||||
traversal_id,
|
||||
load_status_sender,
|
||||
);
|
||||
}
|
||||
},
|
||||
WebDriverCommandMsg::GoForward(webview_id) => {
|
||||
WebDriverCommandMsg::GoForward(webview_id, load_status_sender) => {
|
||||
if let Some(webview) = running_state.webview_by_id(webview_id) {
|
||||
webview.go_forward(1);
|
||||
let traversal_id = webview.go_forward(1);
|
||||
running_state.set_pending_traversal(
|
||||
webview_id,
|
||||
traversal_id,
|
||||
load_status_sender,
|
||||
);
|
||||
}
|
||||
},
|
||||
// Key events don't need hit test so can be forwarded to constellation for now
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue