diff --git a/source b/source index 2ea03adf1cb..29e4d1c559c 100644 --- a/source +++ b/source @@ -83348,7 +83348,9 @@ interface BarProp { data-x="dom-document-domain">document.domain setter has been used.

Because of these security pitfalls, this feature is in the process of being removed from the - web platform. (This is a long process that takes many years.)

+ web platform. It is no longer available by default, because by default + documents are placed in an origin-keyed agent cluster, which + disables the document.domain setter.

Instead, use postMessage() or MessageChannel objects to communicate across origins in a safe manner.

@@ -83561,28 +83563,31 @@ interface BarProp { -

A Document delivered over a secure context can request that it be - placed in an origin-keyed agent - cluster, by using the `Origin-Agent-Cluster` HTTP - response header. This header is a structured header +

By default, a Document is placed in an + origin-keyed agent + cluster. The Origin-Agent-Cluster` + HTTP response header can be used to instead request placement in a + site-keyed agent + cluster. This header is a structured header whose value must be a boolean.

Per the processing model in the create and initialize a new Document object, valuesValues that are not the structured header boolean - true value (i.e., `?1`) will be ignored.

+ false value (i.e., `?0`) will be ignored.

The consequences of using this header are that the resulting Document's agent cluster key is its origin, instead of the corresponding site. In terms of observable effects, this means that attempting - to relax the same-origin restriction using - document.domain will instead do nothing, and it will not - be possible to send WebAssembly.Module objects to cross-origin Documents - (even if they are same site). Behind the scenes, this isolation can allow user agents - to allocate implementation-specific resources corresponding to agent - clusters, such as processes or threads, more efficiently.

+ data-x="obtain a site">site, instead of the origin. In terms of observable effects, this means that + relaxing the same-origin restriction using + document.domain will work, while in + the default case it will do nothing. Likewise, it will be possible to send + WebAssembly.Module objects to cross-origin Documents + (if they are same site). Behind the scenes, this choice may + prevent user agents from allocating implementation-specific resources corresponding to + agent clusters more efficiently, such as processes or threads.

Note that within a browsing context group, the `Origin-Agent-Cluster` header can never cause same-origin Document objects to end up in different BarProp {

Similarly, Documents whose agent cluster's cross-origin isolation mode is not - "none" are automatically origin-keyed. The - `Origin-Agent-Cluster` header might be useful as an additional hint to - implementations about resource allocation, since the `Cross-Origin-Opener-Policy` and - `Cross-Origin-Embedder-Policy` headers used to achieve cross-origin isolation are - more about ensuring that everything in the same address space opts in to being there. But adding - it would have no additional observable effects on author code.

+ "none" are automatically origin-keyed.

@@ -88623,9 +88623,9 @@ interface Location { // but see also item" from response's header list.

-
  • Let requestsOAC be true if oacHeader is not +

  • Let requestsOAC be false if oacHeader is not null and oacHeader[0] is the boolean true; otherwise false.

  • + data-x="http-structured-header-boolean">boolean false; otherwise true.

  • If navigationParams's reserved environment is a @@ -90609,7 +90609,8 @@ interface BeforeUnloadEvent : Event {

    If the encompassing agent cluster's is origin-keyed is true, then all the Window objects will be same origin, can reach each other - directly, and document.domain will no-op.

    + directly, and document.domain will no-op. + This is the default case.

    Two Window objects that are same origin can be in different similar-origin window agents, for @@ -90704,10 +90705,11 @@ interface BeforeUnloadEvent : Event {

    The following defines the allocation of the agent clusters of similar-origin window agents.

    +

    An agent cluster key is a site or tuple origin. Without web developer action to achieve origin-keyed agent clusters, it will be a - site.

    + data-x="concept-origin-tuple">tuple origin. By default these will be + origin-keyed agent clusters, but + with developer action they may also be site-keyed.

    An equivalent formulation is that an agent cluster key can be a scheme-and-host or an origin.

    @@ -127809,6 +127811,7 @@ INSERT INTERFACES HERE Daniel Steinberg, Daniel Tan, Daniel Trebbien, + Daniel Vogelheim, Danny Sullivan, Daphne Preston-Kendal, Darien Maillet Valentine,