Closed Bug 1437994 (browsingcontext) Opened 6 years ago Closed 5 years ago

Implement Browsing Context

Categories

(Core :: DOM: Navigation, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
Fission Milestone Future

People

(Reporter: nika, Assigned: farre)

References

(Blocks 2 open bugs)

Details

Our plans for site isolation include the need to add out-of-process iframe support as well as the ability for every docshell to migrate between processes at runtime. This means that we will need the ability to access, traverse, and reference docshell trees which have docshells spread across multiple processes.

This bug is to track the implementation of this mechanism. I have thought of a few options for how we could do this, which we will need to investigate:

1. Create "real" nsDocShell objects in all processes forming a docshell tree, and set a flag on them to signify that they are out of process. This would allow us to transition a docshell into process without breaking references, but has the disadvantage of not using the type system to ensure we don't call methods or attempt to manipulate an out-of-process docshell.

2. Create "fake" nsIDocShellTreeItem objects, and replace them in the tree when they are moved into or out of process. This will mean that we will need to ensure references to docshells are not held between navigations, as those references could break.

3. Create a new tree which is synchronized across processes, and change nsIDocShellTreeItem operations to act on this tree. Only dangle nsDocShell objects off of the items in the tree which are in process, and generally prefer to hold references to the in-tree objects when references must be held across loads.
Priority: -- → P2
Depends on: 1445659
Depends on: 1445661
Depends on: 1443956
Summary: Mirror DocShell trees between processes → Implement Abstract Browsing Context Trees
Depends on: 1471598
Depends on: 1471601
Depends on: 1471869
Depends on: 1472108
Depends on: 1480084
Depends on: 1480113
Alias: browsingcontext
Depends on: 1480893
Depends on: 1481238
Depends on: 1480198
Depends on: 1467208
Depends on: 1467212
Depends on: 1486719
Depends on: 1490303
Depends on: 1496722
Depends on: 1498222
Depends on: 1502328
Depends on: 1502330
Depends on: 1504961
Depends on: 1509016
Depends on: 1509021
Depends on: 1509127
Summary: Implement Abstract Browsing Context Trees → Implement Browsing Context
Depends on: 1510260
Depends on: 1511353
Depends on: 1512510
Depends on: 1505838
Depends on: 1515646
Depends on: 1515904
Depends on: 1519910
No longer depends on: 1471601
No longer depends on: 1467212
No longer depends on: 1490303
Depends on: 1490303
Depends on: 1521149
Depends on: 1523636
Depends on: 1523707
Depends on: 1525903
Depends on: 1527321
Depends on: 1529684
Depends on: 1530550
Fission Milestone: --- → Future
Depends on: 1532661
No longer depends on: 1480893
No longer depends on: 1471869
No longer depends on: 1523707
No longer depends on: 1525903
Depends on: 1537910
No longer depends on: 1537910
No longer depends on: 1509016
No longer depends on: 1527321
No longer depends on: 1509021
No longer depends on: 1511353
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.