1466113, 1466126, 1516775, 1517424, 1527332, 1534214, 1363200, 1363206, 1363214, 1461938, 1463163, 1464134, 1464374, 1464772, 1465002, 1465037, 1465163, 1465472, 1465700, 1465728, 1466083, 1466112, 1466118, 1466121, 1466128, 1466133, 1466458, 1466501, 1466503, 1467124, 1467142, 1468536, 1469006, 1469082, 1471496, 1472130, 1512260, 1512410, 1514050, 1514210, 1515582, 1518077, 1518753, 1519414, 1523843, 1525629, 1525673, 1526424, 1530608
Currently a compartment contains exactly one realm (standard-ese for a global and all objects and code associated with it). An object in one realm cannot have a direct reference to an object in another realm. References across realm boundaries are represented as cross-compartment wrappers (CCWs). The cross-compartment wrapper overhead is sometimes bad, so we're planning to merge compartments that are in the same tab group and are same-origin. Objects in a page will tend to be same-compartment with those in child iframes. The new nesting will be runtimes > zone groups > zones > compartments > realms. In the new order, the main responsibility of compartments will be security. Security wrappers will continue to exist. Since only same-origin compartments are being merged, the only CCWs removed will be the transparent wrappers we currently insert at the boundary between same-origin compartments. This will mean changing the implementation and some Web-observable behavior of Window and Location objects and (especially) document.domain. Many things in various specs require there to be a "current global", so we'll continue to have a cx->global() that's non-null whenever JS could run. JSAutoCompartment will be changed to require a global, not just a JSCompartment*.
Summary: [meta] Support multiple globals per compartment → [meta] Support multiple globals per compartment (same-compartment realms)
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
You need to log in before you can comment on or make changes to this bug.