w3c / webdriver-bidi

Bidirectional WebDriver protocol for browser automation
https://w3c.github.io/webdriver-bidi/
378 stars 42 forks source link

Should the "browsingContext.navigate" command fail when interrupted by a new navigation? #763

Open lutien opened 3 months ago

lutien commented 3 months ago

As far as we understood the html (see https://html.spec.whatwg.org/#beginning-navigation, step 18.1) and WebDriver BiDi spec (see https://w3c.github.io/webdriver-bidi/#await-a-navigation, step 6) the browsingContext.navigate command should fail when interrupted by a new navigation. But it seems like it's causing confusion among users with the pages which trigger a new navigation within the page while this page is still loading (e.g. https://mozilla.org/, https://x.com/). So maybe we should rethink this?

I've also noticed that Chrome actually doesn't throw in these cases. So maybe @sadym-chromium, you could add some details if it was intentional and if you just don't throw when a navigation is interrupted at all or only in specific scenarios?

OrKoN commented 3 months ago

https://chromium.googlesource.com/chromium/src/+/master/content/public/common/content_features.cc#791 this feature flag sounds like it might be related. I wonder if results would be different with --disable-features=QueueNavigationsWhileWaitingForCommit (cc @sadym-chromium)

UPD: the above flag is probably not related to this behavior.