-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document cases where earlier navigations take priority #218
Comments
In chrome, we ignore renderer initiated navigations when there is an ongoing browser initiated request and the new navigation lacks a user gesture. Portal activation without a user gesture also cannot cancel a browser initiated request. |
What does "browser initiated" mean compared to "renderer initiated" with or without a user gesture? |
Browser initiated refers to things like entering something in the address bar, using the browsers back/forward buttons, bookmarks, etc. Essentially, methods of navigation that the user agent offers the user that aren't driven by the web content. |
Cheers. In terms of navigations driven by web content, is it always "last wins", regardless of whether there was a user gesture or not? |
Something I learned in a past life - there's some nuance in "browser initiated" that probably doesn't line up with intuition. For example, in Chrome, a history navigation is considered "browser initiated" even if it's initiated from script (e.g. I do recall seeing code in Chrome's navigation bits that gave allowed browser-initiated navigations to clobber non-browser-initiated ones but I'm not sure how much of this is standardized - @jakearchibald you mentioned the HTML spec saying this, can you link to it? I'm curious what the specs have to say here. Is there any reason to treat portal activation differently from a regular navigation in these cases? |
Even though session history navigations initiated by script are considered browser initiated, the requests are still subject to being ignored in chromium: https://source.chromium.org/chromium/chromium/src/+/master:content/browser/web_contents/web_contents_impl.cc;drc=3abb32da2944ffe178dd66f404e7e1bb88a58ed0;l=4951 But that's good to point out, since I would imagine this means that a page couldn't cancel its own call to |history.back()| with another navigation without a user gesture, though I haven't tested this. |
Right now it looks like the HTML spec say "last wins" in terms of navigation, but I think there are cases where we give priority to user-initiated navigations over js-initiated navigations.
We should document this and figure out where portal activation sits.
@jyasskin @kjmcnee do either of you have this in your heads already?
The text was updated successfully, but these errors were encountered: