@@ -96549,7 +96549,9 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
96549
96549
96550
96550
<p>A <code>SharedWorkerGlobalScope</code> object has an associated <dfn
96551
96551
data-dfn-for="SharedWorkerGlobalScope"
96552
- data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</dfn> and <dfn
96552
+ data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</dfn>, <dfn
96553
+ data-dfn-for="SharedWorkerGlobalScope"
96554
+ data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</dfn>, and <dfn
96553
96555
data-dfn-for="SharedWorkerGlobalScope"
96554
96556
data-x="concept-SharedWorkerGlobalScope-name">name</dfn>. They are initialized when the
96555
96557
<code>SharedWorkerGlobalScope</code> object is created, in the <span>run a worker</span>
@@ -96762,6 +96764,11 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
96762
96764
<p>If <var>is shared</var> is true, then:</p>
96763
96765
96764
96766
<ol>
96767
+ <li><p>Set <var>worker global scope</var>'s <span
96768
+ data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</span> to
96769
+ <var>outside settings</var>'s <span
96770
+ data-x="concept-settings-object-origin">origin</span>.</p></li>
96771
+
96765
96772
<li><p>Set <var>worker global scope</var>'s <span
96766
96773
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> to
96767
96774
<var>url</var>.</p></li>
@@ -97142,7 +97149,7 @@ interface <dfn>AbstractWorker</dfn> {
97142
97149
<dt>The <span>API URL character encoding</span></dt>
97143
97150
<dd>
97144
97151
97145
- <p>Return UTF-8.</p>
97152
+ <p>Return <span> UTF-8</span> .</p>
97146
97153
97147
97154
</dd>
97148
97155
@@ -97157,7 +97164,10 @@ interface <dfn>AbstractWorker</dfn> {
97157
97164
<dt>The <span data-x="concept-settings-object-origin">origin</span></dt>
97158
97165
<dd>
97159
97166
97160
- <p>Return <var>inherited origin</var>.</p>
97167
+ <p>Return a unique <span data-x="concept-origin-opaque">opaque origin</span> if <var>worker
97168
+ global scope</var>'s <span data-x="concept-WorkerGlobalScope-url">url</span>'s <span
97169
+ data-x="concept-url-scheme">scheme</span> is "<code data-x="">data</code>", and <var>inherited
97170
+ origin</var> otherwise.</p>
97161
97171
97162
97172
</dd>
97163
97173
@@ -97298,8 +97308,10 @@ enum <dfn>WorkerType</dfn> { "classic", "module" };
97298
97308
<li>
97299
97309
<p>Let <var>worker URL</var> be the <span>resulting URL record</span>.</p>
97300
97310
97301
- <p class="note">Any <span data-x="same origin">same-origin</span> URL will do, including <code
97302
- data-x="blob protocol">blob:</code> URLs.</p>
97311
+ <p class="note">Any <span data-x="same origin">same-origin</span> URL (including <code
97312
+ data-x="blob protocol">blob:</code> URLs) can be used. <code data-x="data protocol">data:</code>
97313
+ URLs can also be used, but they create a worker with an <span
97314
+ data-x="concept-origin-opaque">opaque origin</span>.</p>
97303
97315
</li>
97304
97316
97305
97317
<li><p>Let <var>worker</var> be a new <code>Worker</code> object.</p></li>
@@ -97373,8 +97385,10 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97373
97385
<li>
97374
97386
<p>Otherwise, let <var>urlRecord</var> be the <span>resulting URL record</span>.</p>
97375
97387
97376
- <p class="note">Any <span data-x="same origin">same-origin</span> URL will do, including <code
97377
- data-x="blob protocol">blob:</code> URLs.</p>
97388
+ <p class="note">Any <span data-x="same origin">same-origin</span> URL (including <code
97389
+ data-x="blob protocol">blob:</code> URLs) can be used. <code data-x="data protocol">data:</code>
97390
+ URLs can also be used, but they create a worker with an <span
97391
+ data-x="concept-origin-opaque">opaque origin</span>.</p>
97378
97392
</li>
97379
97393
97380
97394
<li><p>Let <var>worker</var> be a new <code>SharedWorker</code> object.</p></li>
@@ -97395,15 +97409,25 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97395
97409
<ol>
97396
97410
<li><p>Let <var>worker global scope</var> be null.</p></li>
97397
97411
97398
- <li><p>If there exists a <code>SharedWorkerGlobalScope</code> object whose <span
97399
- data-x="dom-WorkerGlobalScope-closing">closing</span> flag is false, whose <span
97400
- data-x="concept-SharedWorkerGlobalScope-name">name</span> is exactly equal to <var>name</var>,
97401
- whose <span data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span>
97402
- <span data-x="concept-url-equals">equals</span> <var>urlRecord</var>, and whose <span>relevant
97403
- settings object</span>'s <span data-x="concept-settings-object-origin">origin</span> is
97404
- <span>same origin</span> with <var>outside settings</var>'s <span
97405
- data-x="concept-settings-object-origin">origin</span>, then set <var>worker global scope</var>
97406
- to that <code>SharedWorkerGlobalScope</code> object.</p></li>
97412
+ <li>
97413
+ <p>If there exists a <code>SharedWorkerGlobalScope</code> object whose <span
97414
+ data-x="dom-WorkerGlobalScope-closing">closing</span> flag is false, <span
97415
+ data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</span> is
97416
+ <span>same origin</span> with <var>outside settings</var>'s <span
97417
+ data-x="concept-settings-object-origin">origin</span>, <span
97418
+ data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> <span
97419
+ data-x="concept-url-equals">equals</span> <var>urlRecord</var>, and <span
97420
+ data-x="concept-SharedWorkerGlobalScope-name">name</span> is <var>name</var>, then set
97421
+ <var>worker global scope</var> to that <code>SharedWorkerGlobalScope</code> object.</p>
97422
+
97423
+ <p class="note"><code data-x="data protocol">data:</code> URLs create a worker with an <span
97424
+ data-x="concept-origin-opaque">opaque origin</span>. Both the <span
97425
+ data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</span> and
97426
+ <span data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> are
97427
+ compared so the same <code data-x="data protocol">data:</code> URL can be used within an
97428
+ <span>origin</span> to get to the same <code>SharedWorkerGlobalScope</code> object, but cannot
97429
+ be used to bypass the <span>same origin</span> restriction.</p>
97430
+ </li>
97407
97431
97408
97432
<li>
97409
97433
<p>If <var>worker global scope</var> is not null, but the user agent has been
0 commit comments