@@ -26079,6 +26079,19 @@ document.body.appendChild(wbr);</code></pre>
2607926079 <p>An element implementing the <code>HTMLHyperlinkElementUtils</code> mixin has an associated <dfn
2608026080 data-x="concept-hyperlink-url">url</dfn> (null or a <span>URL</span>). It is initially null.
2608126081
26082+ <div algorithm>
26083+ <p>An element implementing the <code>HTMLHyperlinkElementUtils</code> mixin has the following
26084+ <span>extract an origin</span> steps:</p>
26085+
26086+ <ol>
26087+ <li><p>If <span>this</span>'s <span data-x="concept-hyperlink-url">url</span> is null, then
26088+ return null.</p></li>
26089+
26090+ <li><p>Return <span>this</span>'s <span data-x="concept-hyperlink-url">url</span>'s
26091+ <span data-x="concept-url-origin">origin</span>.</p></li>
26092+ </ol>
26093+ </div>
26094+
2608226095 <div algorithm>
2608326096 <p>An element implementing the <code>HTMLHyperlinkElementUtils</code> mixin has an associated <dfn
2608426097 data-x="concept-hyperlink-url-set">set the url</dfn> algorithm, which runs these steps:</p>
@@ -92501,6 +92514,99 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
9250192514
9250292515 </div>
9250392516
92517+ <h5>The <code data-x="dom-Origin-interface">Origin</code> interface</h5>
92518+
92519+ <p>The <code data-x="dom-Origin-interface">Origin</code> interface represents an
92520+ <span>origin</span>, allowing robust <span>same origin</span> and <span>same site</span>
92521+ comparisons.</p>
92522+
92523+ <pre><code class="idl">[Exposed=*]
92524+ interface <dfn interface data-x="dom-Origin-interface">Origin</dfn> {
92525+ <span data-x="dom-Origin-constructor">constructor</span>();
92526+
92527+ static <span data-x="dom-Origin-interface">Origin</span> <span data-x="dom-Origin-from">from</span>(any <var ignore>value</var>);
92528+
92529+ readonly attribute boolean <span data-x="dom-Origin-opaque">opaque</span>;
92530+
92531+ boolean <span data-x="dom-Origin-isSameOrigin">isSameOrigin</span>(<span data-x="dom-Origin-interface">Origin</span> <var ignore>other</var>);
92532+ boolean <span data-x="dom-Origin-isSameSite">isSameSite</span>(<span data-x="dom-Origin-interface">Origin</span> <var ignore>other</var>);
92533+ };</code></pre>
92534+
92535+ <p><code data-x="dom-Origin-interface">Origin</code> objects have an associated <dfn for="Origin"
92536+ data-x="concept-Origin-origin">origin</dfn>, which holds an <span>origin</span>.</p>
92537+
92538+ <p><span data-x="platform object">Platform objects</span> have an <dfn for="platform object"
92539+ export>extract an origin</dfn> operation, which returns null unless otherwise specified.</p>
92540+
92541+ <div algorithm>
92542+ <p>Objects implementing the <code data-x="dom-Origin-interface">Origin</code> interface's
92543+ <span>extract an origin</span> steps are to return <span>this</span>'s <span
92544+ data-x="concept-Origin-origin">origin</span>.</p>
92545+ </div>
92546+
92547+ <div algorithm>
92548+ <p>The <dfn constructor for="Origin"><code
92549+ data-x="dom-Origin-constructor">new Origin()</code></dfn> constructor steps are to set
92550+ <span>this</span>'s <span data-x="concept-Origin-origin">origin</span> to a unique <span
92551+ data-x="concept-origin-opaque">opaque origin</span>.</p>
92552+ </div>
92553+
92554+ <div algorithm>
92555+ <p>The static <dfn method for="Origin"><code
92556+ data-x="dom-Origin-from">from(<var>value</var>)</code></dfn> method steps are:</p>
92557+
92558+ <ol>
92559+ <li>
92560+ <p>If <var>value</var> is a <span>platform object</span>:</p>
92561+ <ol>
92562+ <li><p>Let <var>origin</var> be the result of executing <var>value</var>'s <span>extract an
92563+ origin</span> operation.</p></li>
92564+
92565+ <li><p>If <var>origin</var> is not null, then return a new <code
92566+ data-x="dom-Origin-interface">Origin</code> object whose <span
92567+ data-x="concept-Origin-origin">origin</span> is <var>origin</var>.</p></li>
92568+ </ol>
92569+ </li>
92570+
92571+ <li>
92572+ <p>If <var>value</var> is a <span>string</span>:</p>
92573+ <ol>
92574+ <li><p>Let <var>parsedURL</var> be the result of <span data-x="basic url parser">basic URL
92575+ parsing</span> <var>value</var>.</p></li>
92576+
92577+ <li><p>If <var>parsedURL</var> is not failure, then return a new <code
92578+ data-x="dom-Origin-interface">Origin</code> object whose <span
92579+ data-x="concept-Origin-origin">origin</span> is set to <var>parsedURL</var>'s <span
92580+ data-x="concept-url-origin">origin</span>.</p></li>
92581+ </ol>
92582+ </li>
92583+
92584+ <li><p>Throw a <code>TypeError</code>.</p></li>
92585+ </ol>
92586+ </div>
92587+
92588+ <div algorithm>
92589+ <p>The <dfn attribute for="Origin"><code data-x="dom-Origin-opaque">opaque</code></dfn> getter
92590+ steps are to return true if <span>this</span>'s <span data-x="concept-Origin-origin">origin</span>
92591+ is an <span data-x="concept-origin-opaque">opaque origin</span>; otherwise false.</p>
92592+ </div>
92593+
92594+ <div algorithm>
92595+ <p>The <dfn method for="Origin"><code
92596+ data-x="dom-Origin-isSameOrigin">isSameOrigin(<var>other</var>)</code></dfn> method steps are to
92597+ return true if <span>this</span>'s <span data-x="concept-Origin-origin">origin</span> is
92598+ <span>same origin</span> with <var>other</var>'s <span
92599+ data-x="concept-Origin-origin">origin</span>; otherwise false.</p>
92600+ </div>
92601+
92602+ <div algorithm>
92603+ <p>The <dfn method for="Origin"><code
92604+ data-x="dom-Origin-isSameSite">isSameSite(<var>other</var>)</code></dfn> method steps are to
92605+ return true if <span>this</span>'s <span data-x="concept-Origin-origin">origin</span> is
92606+ <span>same site</span> with <var>other</var>'s <span data-x="concept-Origin-origin">origin</span>;
92607+ otherwise false.</p>
92608+ </div>
92609+
9250492610
9250592611 <h4><span id="origin-isolation"></span>Origin-keyed agent clusters</h4>
9250692612
@@ -123140,6 +123246,24 @@ document.body.appendChild(frame)</code></pre>
123140123246 capability</span>.</p>
123141123247 </div>
123142123248
123249+ <div algorithm>
123250+ <p>An element implementing the <code>WindowOrWorkerGlobalScope</code> mixin has the following
123251+ <span>extract an origin</span> steps:</p>
123252+
123253+ <ol>
123254+ <li><p>If <span>this</span>'s <span>relevant settings object</span>'s <span
123255+ data-x="concept-settings-object-origin">origin</span> is not <span>same origin-domain</span>
123256+ with the <span>entry settings object</span>'s <span
123257+ data-x="concept-settings-object-origin">origin</span>, then return null.</p></li>
123258+
123259+ <li><p>Return <span>this</span>'s return <span>this</span>'s <span>relevant settings
123260+ object</span>'s <span data-x="concept-settings-object-origin">origin</span>.</p></li>
123261+ </ol>
123262+
123263+ <p class="note">Since these objects are potentially accessible cross-origin (e.g., through
123264+ <code>WindowProxy</code>), we need a security check here before granting access to the origin.</p>
123265+ </div>
123266+
123143123267 </div>
123144123268
123145123269
@@ -127650,6 +127774,12 @@ typedef (<span>WindowProxy</span> or <span>MessagePort</span> or <span>ServiceWo
127650127774 <span data-x="concept-url-fragment">fragment</span>).</p>
127651127775 </div>
127652127776
127777+ <div algorithm>
127778+ <p>Objects implementing the <code>MessageEvent</code> interface's <span>extract an origin</span>
127779+ steps are to return <span>this</span>'s <span>relevant settings object</span>'s
127780+ <span data-x="concept-settings-object-origin">origin</span>.</p>
127781+ </div>
127782+
127653127783 <div algorithm>
127654127784 <p>The <dfn attribute for="MessageEvent"><code
127655127785 data-x="dom-MessageEvent-lastEventId">lastEventId</code></dfn> attribute must return the value it
0 commit comments