Reusing browsing context groups across navigations and traversals #7068
Labels
topic: cross-origin-embedder-policy
Issues and ideas around the new "require CORP for subresource requests and frames and etc" proposal
topic: cross-origin-opener-policy
Issues and ideas around the new "inverse of rel=noopener" header
topic: history
topic: navigation
In this post I refer to isolated browsing context groups, meaning groups that have a cross-origin isolation mode that is not "
none
".A top-level traversable is a browser tab/window. A top level traversable changes its session when navigated outside of web contents, eg manual location bar entry (discussed in #6356 (comment)).
I'm trying to figure out how browsing context groups are intended to be used across top level navigations and traversals as part of #6315.
My naive model is to reuse top-level browsing context groups as much as possible, so:
…perhaps allowing browsing contexts to be GC'd if all their associated documents are discarded, and groups to be discarded when they're empty.
However, I think we might intend on using more contexts that, but I'm not sure when/where.
In case it helps, here are some specific questions, although a general rule would be better:
If I navigate from:
//origin1/a
(isolated).//origin1/b
(isolated).By "isolated" I mean the document requires an isolated browsing context group. Also, assume all navigations are performed in web content, so there's no session change.
Question 1: Do 1 and 2 have the same browsing context? Pretty sure the answer is 'yes', but it's worth checking 😄 . Also, I'm assuming that a top-level cannot change browsing context without also changing browsing context group, and that a browsing context can only exist in one group.
Question 2: If both of those history entries' documents are discarded, and brought back to life via traversal, and both still require isolation, do they still share a browsing context? Hopefully this doesn't depend on the order they're visited, or whether a different history entry is visited in between.
Question 3: If yes, would it be the same browsing context as they used previously?
If I navigate from:
//origin1/a
(not-isolated).//origin1/b
(isolated).//origin1/c
(not-isolated).//origin1/d
(isolated).Question 4: Do 1 and 3 use the same bc?
Question 5: Do 2 and 4 use the same bc?
If I navigate from:
//origin1/a
(isolated).//origin2/a
(isolated).//origin1/b
(isolated).//origin2/b
(isolated).Question 6: Do 1 and 3 use the same bc?
If I navigate from:
//origin1/a
(isolated).//origin1/b
(isolated).Question 7: If I hit reload, and the page requires isolation, do 1 and 2 use the same bc?
Question 8: If I hit reload, and the page does not require isolation, then I hit reload again and the page requires isolation, do 1 and 2 use the same bc?
If I navigate from:
//origin1/a
(isolated)//origin1/b
but it causes an error page due to network failure.Question 9: Does the error page use the same bc as 1?
Question 10: If I hit reload and 2 successfully loads, and requires isolation, do 1 and 2 use the same bc?
The text was updated successfully, but these errors were encountered: