diff --git a/source b/source index dc2ce71f574..37a70f76379 100644 --- a/source +++ b/source @@ -10014,6 +10014,8 @@ o.myself = o; URL in their user interface. This is the primary mechanism by which a user can tell if a site is attempting to impersonate another.
+ +The Document
object's origin is defined in DOM. It is initially set when the
@@ -10199,7 +10201,8 @@ partial interface Document {
On getting, if the document is a cookie-averse Document
object, then the
user agent must return the empty string. Otherwise, if the Document
's origin is an opaque
+ data-x="concept-document-policy-container">policy container's origin is an opaque
origin, the user agent must throw a "SecurityError
"
DOMException
. Otherwise, the user agent must return the cookie-string
for the document's URL for a "non-HTTP" API, decoded
@@ -10207,7 +10210,8 @@ partial interface Document {
On setting, if the document is a cookie-averse Document
object, then
the user agent must do nothing. Otherwise, if the Document
's origin is an opaque
+ data-x="concept-document-policy-container">policy container's origin is an opaque
origin, the user agent must throw a "SecurityError
"
DOMException
. Otherwise, the user agent must act as it would when receiving a set-cookie-string for the document's
@@ -15054,7 +15058,8 @@ interface HTMLLinkElement : HTMLElement {
Let interface origin be the origin of the Document
in which the origin of the Document
's policy container in which the download or navigate action resulting in the
download was initiated, if any.
Let key be a tuple consisting of urlString, the img
element's crossorigin
attribute's mode, and, if that
mode is not No CORS, the node
- document's origin.
If the list of available images contains an entry for key, @@ -30489,7 +30497,8 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...crossorigin content attribute.
⌛ Let origin be the img
element's node
- document's origin.
⌛ Let client be the img
element's node
document's relevant settings object.
If the result of running is feature enabled in document
for origin on feature, document, and document's origin is "Enabled
", then return
+ data-x="concept-document-policy-container">policy container origin is "Enabled
", then return
true.
Return false.
If this's relevant settings object's origin is not same origin with
+ data-x="concept-settings-object-policy-container">policy container's origin is not same origin with
this's relevant settings object's top-level origin, and
this's type
attribute is not in the File Upload state or HTMLDialogElement : HTMLElement {
document.
If control's node document's origin is not the same - as the origin of topDocument, then + data-x="concept-document-policy-container">policy container's origin is not the same + as the origin of topDocument's + policy container, then return.
Empty topDocument's @@ -75880,8 +75893,10 @@ END:VCARD data-x="nav-window">active window of each of document's descendant navigables, filtered to include only those navigables whose active document's origin is same origin with - document's origin.
For each window in windows, set
window's last activation timestamp to the current high resolution
@@ -77556,8 +77571,10 @@ partial interface For each ancestorNavigable of
target's ancestor navigables: if ancestorNavigable's active document's origin is not same origin with
- target's origin, then return.
Let topDocument be target's node navigable's top-level traversable's active
@@ -81285,7 +81302,8 @@ dictionary DragEventInit : MouseEventInit {
Let effectiveDomain be this's origin's policy container's origin's effective domain.
If effectiveDomain is null, then return the empty string.
SecurityError
" DOMException
.
Let effectiveDomain be this's origin's policy container's origin's effective domain.
If effectiveDomain is null, then throw a @@ -81318,7 +81337,8 @@ dictionary DragEventInit : MouseEventInit {
If the surrounding agent's agent cluster's is origin-keyed is true, then return.
Set this's origin's Set this's policy
+ container's origin's domain to the result of parsing the given value.
The consequences of using this header are that the resulting
Document
's agent cluster key is its origin, instead of the policy container's 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
@@ -82080,23 +82101,27 @@ dictionary DragEventInit : MouseEventInit {
data-x="bc-tlbc">top-level browsing context's active document.
Let accessorInclusiveAncestorOrigins be the list obtained by taking the origin of the active - document of each of accessor's active document's inclusive + data-x="policy-container-origin">origin of the active + document's policy container + of each of accessor's active document's inclusive ancestor navigables.
Let accessedTopDocument be accessed's top-level browsing context's active document.
Let accessedInclusiveAncestorOrigins be the list obtained by taking the origin of the active - document of each of accessed's active document's inclusive + data-x="policy-container-origin">origin of the active + document's policy container + of each of accessed's active document's inclusive ancestor navigables.
If any of accessorInclusiveAncestorOrigins are not same origin with - accessorTopDocument's origin, or if + accessorTopDocument's policy + container's origin, or if any of accessedInclusiveAncestorOrigins are not same origin with - accessedTopDocument's origin, then + accessedTopDocument's policy + container's origin, then return.
This avoids leaking information about cross-origin iframes to a top level frame
@@ -82135,8 +82160,10 @@ dictionary DragEventInit : MouseEventInit {
data-x="browsing-context-initial-url">initial URL, accessed's top-level browsing context's initial URL, accessor's active
- document's origin, accessed's
- active document's origin,
+ document's policy container's
+ origin, accessed's
+ active document's policy
+ container's origin,
accessor's top-level browsing context's opener origin at creation, accessed's top-level browsing context's DragEventInit : MouseEventInit {
An origin,
+ which is an origin. It is initially an opaque origin. A CSP list,
which is a CSP list. It is initially empty. Let clone be a new policy container. Set clone's origin to
+ policyContainer's origin. For each policy in
policyContainer's CSP list, append a copy of policy into clone's DragEventInit : MouseEventInit {
Let result be a new policy container. Set result's origin to
+ response's URL's
+ origin. Set result's CSP list to the
result of parsing a response's Content Security Policies
given response. If responsePolicyContainer is not null, then return
responsePolicyContainer. Return a new policy container. Return a new policy container with its
+ origin set to responseURL's
+ origin. To initialize a worker global scope's policy
@@ -83745,9 +83784,11 @@ dictionary DragEventInit : MouseEventInit {
Return true if the current settings object's origin is same origin-domain with
+ data-x="concept-settings-object-policy-container">policy container
+
's origin is same origin-domain with
O's relevant settings object's origin, and false otherwise.
This abstract operation does not return a Completion Record.
@@ -84620,9 +84661,11 @@ dictionary WindowPostMessageOptions : StructuredSeri data-x="nav-target">target name.If navigable's active document's origin is same origin with + data-x="concept-document-policy-container">policy container's origin is same origin with window's relevant settings object's origin, then policy container's origin, then append name to names.
If container is null, then return null.
If container's node document's origin is not same origin-domain with the + data-x="concept-document-policy-container">policy container
Return container.
Document
.
- Return the origin of window's
- associated Document
.
Return the policy container of @@ -85610,7 +85649,8 @@ interface Location { // but see also Append the serialization of current's origin to output.
+ data-x="concept-document-policy-container">policy container's origin to output. @@ -85645,9 +85685,11 @@ interface Location { // but see also origin is not same origin-domain with + policy container's origin is not same origin-domain with the entry settings object's origin, then throw a + data-x="concept-settings-object-policy-container">policy container's origin, then throw a "SecurityError
" DOMException
.
Return this's url, Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Return the serialization of
@@ -85691,9 +85735,11 @@ interface Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Return this's url's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let url be this's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
If this's url's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
If this's url's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Return the result of URL path serializing this
@@ -85901,9 +85963,11 @@ interface Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
If this's url's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with
+ policy container's origin is not same origin-domain with
the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
If this's url's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Let copyURL be a copy of this's Location { // but see also origin is not same origin-domain with the
+ data-x="concept-document-policy-container">policy container's origin is not same origin-domain with the
entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Parse url relative to the entry @@ -86098,9 +86172,11 @@ interface Location { // but see also origin is not +
If document's policy
+ container's origin is not
same origin-domain with the entry settings object's origin, then throw a
+ data-x="concept-settings-object-policy-container">policy container's origin, then throw a
"SecurityError
" DOMException
.
Reload document's node navigable.
SecurityError
" DOMException
.
Otherwise, return this's History {
Note how only the URL of the Let document be container's nested navigable's active document. If document's origin and
+ If document's policy
+ container's origin and
container's node document's origin are not same origin-domain, then
+ data-x="concept-document-policy-container">policy containerDocument
- matters, and not its origin. They can mismatch in
+ matters, and not its policy container's
+ origin. They can mismatch in
cases like about:blank
Document
s with inherited origins, in sandboxed
iframe
s, or when the document.domain
setter has been used.
Return document.
same-origin
" or "same-origin-plus-COEP
", and
- currentDocument's origin is not
+ currentDocument's policy
+ container's origin is not
same origin with currentDocument's relevant settings
object's top-level origin, then:
@@ -88073,7 +88155,8 @@ interface BeforeUnloadEvent : Event {
Set creatorOrigin to creator's origin.
Set browsingContext's creator base URL to an algorithm which returns creator's base URL.
quirks
"If creator's origin is +
If creator's policy + container's origin is same origin with creator's relevant settings object's top-level origin, then set document's cross-origin opener policy to creator's BeforeUnloadEvent : Event {
Set document's policy + container's origin to origin. +
Assert: document's URL and document's relevant settings object's creation URL are @@ -88255,7 +88340,8 @@ interface BeforeUnloadEvent : Event {
Set browsingContext's opener origin at creation to opener's active document's - origin.
Return browsingContext and document.
The cases that return sourceOrigin or containerOrigin
result in two Document
s that end up with the same underlying origin, meaning that policy container origin, meaning that
document.domain
affects both.
If A's active document's origin is same origin with B's - active document's origin, then return + data-x="concept-document-policy-container">policy container's origin is same origin with B's + active document's policy + container's origin, then return true.
If A's top-level browsing context is @@ -88377,7 +88466,8 @@ interface BeforeUnloadEvent : Event {
If there exists an ancestor browsing context of B whose active document has the same origin as the active document of + data-x="concept-document-policy-container">policy container origin as the active document of A, then return true.
This includes the case where A is an ancestor browsing @@ -88829,7 +88919,8 @@ interface BeforeUnloadEvent : Event { null, initially null.
This is the origin that we set "about:
"-schemed
- Document
s' origin to. We store it
+ Document
s' policy
+ container's origin to. We store it
here because it is also used when restoring these Document
s during traversal,
since they are reconstructed locally without visiting the network. It is also used to compare
the origin before and after the session history entry is response that ultimately was navigated to
(potentially a network error)
Document
Document
Let initiatorOriginSnapshot be sourceDocument's origin.
If sourceDocument's node navigable is not allowed by @@ -89773,7 +89862,8 @@ location.href = '#foo'; data-x="document-state-origin">origin to navigable's parent's active document's origin.
Let historyEntry be a new session history entry, with its URL set to url and its finalSandboxFlags, documentState's initiator origin, and null.
Set policyContainer's origin + to responseOrigin.
Let coop be a new cross-origin opener policy.
historyEntry's document's origin is not navigable's policy container's origin is not navigable's active document's origin
then set historyEntry's document state's @@ -90020,7 +90112,8 @@ location.href = '#foo';
If initiatorOrigin is not same origin-domain with targetNavigable's active document's origin, then return.
Let request be a new request whose
Set entry's document state's origin to document's origin.
Set policyContainer's origin + to responseOrigin.
Return a new navigation params, with
@@ -91220,9 +91317,6 @@ location.href = '#foo';Set resultPolicyContainer's origin to responseOrigin
Return a new navigation params, with
@@ -91808,9 +91908,6 @@ location.href = '#foo';Document
's ancestor navigables all have active documents whose origins are the same origin as the element's
- node document's origin. If an element
+ data-x="concept-document-policy-container">policy containers' origins are the same origin as the element's
+ node document's policy
+ container's origin. If an element
has a browsing context scope origin, then its value is the origin of the element's node document.
+ data-x="policy-container-origin">origin of the element's node document's
+ policy container.
This definition is broken and needs investigation to see what it was intended to express: see issue #4703.
@@ -92200,7 +92300,8 @@ location.href = '#foo';If targetEntry's document's origin is not oldOrigin, then set + data-x="concept-document-policy-container">policy container's origin is not oldOrigin, then set targetEntry's serialized state to StructuredSerializeForStorage(null).
@@ -92220,7 +92321,8 @@ location.href = '#foo'; context whose disowned is false; andtargetEntry's document's origin is not oldOrigin
then set targetEntry's document
@@ -93149,7 +93251,8 @@ location.href = '#foo';
data-x="navigation-params-navigable">navigable's active browsing
context. In such a case, the created Window
, Document
, and
agent will not end up being used; because the created Document
's
- origin is policy container's origin is opaque, we will end up creating a new agent
and Window
later in this algorithm to
go along with the new Document
.
Let permissionsPolicy be the result of creating a permissions policy from a response given browsingContext, navigationParams's origin, and navigationParams's policy container's origin, and navigationParams's response.
document.domain
. Note
that this means that Permissions Policy checks are less permissive compared to doing a
@@ -93191,9 +93296,11 @@ location.href = '#foo';
If browsingContext's active document's is initial
about:blank
is true, and browsingContext's active
- document's origin is same
+ document's policy container's
+ origin is same
origin-domain with navigationParams's origin, then set window to
+ data-x="navigation-params-policy-container">policy container's origin, then set window to
browsingContext's active window.
This means that both the initial
@@ -93220,7 +93327,8 @@ location.href = '#foo';
Let agent be the result of obtaining a similar-origin window agent
- given navigationParams's origin,
+ given navigationParams's policy
+ container's origin,
browsingContext's group, and
requestsOAC. Let topLevelCreationURL be creationURL. Let topLevelOrigin be navigationParams's origin.
If navigable's container is not null, @@ -93286,9 +93395,6 @@ location.href = '#foo';
Because we ensure the resulting Document
's origin is policy container's origin is opaque, and the resulting Document
cannot run
script with access to the DOM, the existence and properties of this Document
are not
observable to web developer code. This means that most of the above values, e.g., the
@@ -94002,8 +94106,10 @@ new PaymentRequest(…); // Allowed to use
If newDocument is given, newDocument's was created via cross-origin redirects is false, and newDocument's origin is the same as - oldDocument's origin, then set + data-x="concept-document-policy-container">policy container's origin is the same as + oldDocument's policy + container's origin, then set newDocument's previous document unload timing to unloadTimingInfo.
While containerDocument is not null:
If containerDocument's origin - is not same origin with destinationOrigin, then return - false.
If containerDocument's policy container's origin is not same origin with + destinationOrigin, then return false.
Set containerDocument to containerDocument's container document.
A for now implementation-defined value, null, or an origin. For a "top-level" potential execution environment it is null (i.e., when there is no response yet); otherwise it is the "top-level" environment's origin. For a dedicated worker or worklet it is + data-x="concept-settings-object-policy-container">policy container's origin. For a dedicated worker or worklet it is the top-level origin of its creator. For a shared or service worker it is an implementation-defined value.
@@ -94936,13 +95044,6 @@ new PaymentRequest(…); // Allowed to use object to parse URLs. -An origin used in security checks.
-The origin
getter steps are to return this's
relevant settings object's origin, policy container's origin, serialized.
The
Let entryDocument be the entry global object's associated If document's origin is not
+ If document's policy
+ container's origin is not
same origin to entryDocument's origin, then throw a
+ data-x="concept-document-policy-container">policy container's origin, then throw a
"Document
.SecurityError
" DOMException
.
If window's relevant settings object's origin and window's relevant + data-x="concept-settings-object-policy-container">policy container's origin and window's relevant settings object's top-level origin are not same origin-domain, then return true.
If the resulting URL record's scheme
is not an HTTP(S) scheme or the resulting URL record's origin is not same origin with
- environment's origin, then throw
+ environment's policy
+ container's origin, then throw
a "SecurityError
" DOMException
.
The origin
attribute must return the value it was
initialized to. It represents, in server-sent events and cross-document
- messaging, the origin of the document that
+ messaging
If targetOrigin is a single U+002F SOLIDUS character (/), then set targetOrigin to incumbentSettings's origin.
+ data-x="concept-settings-object-policy-container">policy container's origin.Otherwise, if targetOrigin is not a single U+002A ASTERISK character (*), @@ -105533,12 +105641,14 @@ function receiver(e) {
If the targetOrigin argument is not a single literal U+002A ASTERISK character
(*) and targetWindow's associated
- Document
's origin is not
+ Document
's policy
+ container's origin is not
same origin with targetOrigin, then return.
Let origin be the serialization of incumbentSettings's origin.
Let source be the WindowProxy
object corresponding to
incumbentSettings's global
@@ -106286,7 +106396,8 @@ interface BroadcastChannel : EventTarget {
any exceptions.
Let sourceOrigin be this's relevant settings object's - origin.
Let sourceStorageKey be the result of running obtain a storage key for
non-storage purposes with this's relevant settings
@@ -107246,6 +107357,12 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope
SharedWorkerGlobalScope
object created in the previous step.
Set worker global scope's + policy container's + origin to outside settings's + policy container's + origin.
Set up a worker environment settings object with realm execution context, outside settings, and unsafeWorkerCreationTime, and let inside settings be the result.
Set worker global scope's constructor origin to outside settings's origin.
Set worker global scope's constructor url to
@@ -107614,7 +107732,8 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope
Let inherited origin be outside settings's origin.
's origin.
Let realm be the value of execution context's Realm component.
Return a unique opaque origin if worker
- global scope's url's scheme is "data
", and inherited
- origin otherwise.
Return worker global scope's SharedWorkerGlobalScope : WorkerGlobalScope
+ Assert that settings object's policy container's origin is an opaque
+ origin. If worker global scope's url's scheme is not " Set settings object's id to a new
unique opaque string, creation URL to
worker global scope's url, top-level creation URL to null,
@@ -108812,8 +108935,6 @@ interface WorkletGlobalScope {};
objectdata
", then set
+ settings object's policy
+ container's origin to inherited
+ origin.
Let origin be a unique opaque - origin.
Let inheritedAPIBaseURL be outsideSettings's API base URL.
Set inheritedPolicyContainer's origin to a unique opaque origin.
Let realm be the value of executionContext's Realm component.
Return origin.
-Return inheritedPolicyContainer.
@@ -109517,7 +109637,8 @@ interface Storage { session storage area.Throws a "SecurityError
" DOMException
if the
- Document
's origin is an Document's policy
+ container's origin is an opaque origin or if the request violates a policy decision
(e.g., if the user agent is configured to not allow the page to persist data).
Throws a "SecurityError
" DOMException
if the
- Document
's origin is an Document's policy
+ container's origin is an opaque origin or if the request violates a policy decision
(e.g., if the user agent is configured to not allow the page to persist data).
Let parentDocument be d's container document.
If parentDocument's origin is +
If parentDocument's policy + container's origin is same origin with d's origin and parentDocument's policy container's origin and parentDocument's character encoding is not UTF-16BE/LE, then return parentDocument's character encoding, with the