-
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 reasons why portal activation can fail #185
Comments
@domenic three of the seven possible reasons are currently expressed in the draft |
Is this consistent with other forms of navigation? I thought in-process navigations were cancelled if a new navigation happens, but I'm sure it's more complicated than that.
Do developers have a way to detect when the fetch is far enough along? |
In chromium at least, renderer initiated navigations without a user gesture are not allowed to cancel a browser initiated navigation. The idea is to prevent a page from trapping a user who is trying to use the back button by navigating repeatedly. We have the same behaviour for portals: a portal activation without a user gesture cannot cancel a browser initiated navigation. |
Ultimately there's a point at which the browser has decided to go ahead with the navigation. In Chromium, at least, this is triggered by the beginning of the response body. At this point we have changed, or are about to change upon receiving a rendered frame, the page that the user is looking at. Activation cannot proceed at that point. Navigations are cancelled by new navigations, unless they have reached this point.
They have a way to detect later events, like load. I don't know whether we can reasonably expose this information. This is necessary because the entire load could end up being blocked and then we have nothing to show the user. This could have already happened, or we could be sitting waiting on a request which will ultimately result in a redirect to an invalid URL, a response with a CSP that prevents loading, or something similar. |
We should probably spec this if it isn't already (and I don't recall seeing it). |
I'm unsure about this, but I don't want to derail this issue. Filed #191. |
Currently the following cases exist in the Chromium implementation. Those marked with an asterisk (*) are already expressed in the draft:
Synchronously:
Asynchronously:
The text was updated successfully, but these errors were encountered: