Skip to content

Commit 9ab2891

Browse files
committed
Fix regression in setting up SharedWorkerGlobalScope
cf0355d regressed setting up a SharedWorkerGlobalScope by removing the steps that set its constructor url and name. This was noticed in #1782 (comment). This also changes the constructor url from a string to a URL record, for consistency with other URLs stored on objects throughout the spec.
1 parent 6408a8f commit 9ab2891

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

source

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96556,7 +96556,9 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9655696556
data-dfn-for="SharedWorkerGlobalScope"
9655796557
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</dfn> and <dfn
9655896558
data-dfn-for="SharedWorkerGlobalScope"
96559-
data-x="concept-SharedWorkerGlobalScope-name">name</dfn>.
96559+
data-x="concept-SharedWorkerGlobalScope-name">name</dfn>. They are initialized when the
96560+
<code>SharedWorkerGlobalScope</code> object is created, in the <span>run a worker</span>
96561+
algorithm.
9656096562

9656196563
<p>Shared workers receive message ports through <code
9656296564
data-x="event-WorkerGlobalScope-connect">connect</code> events on their <code>SharedWorkerGlobalScope</code> object for each
@@ -96712,8 +96714,9 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9671296714
<p>When a user agent is to <dfn data-export="">run a worker</dfn> for a script with
9671396715
<code>Worker</code> or <code>SharedWorker</code> object <var>worker</var>, <span>URL</span>
9671496716
<var>url</var>, <span>environment settings object</span> <var>outside settings</var>,
96715-
<code>MessagePort</code> <var>outside port</var>, and a <code>WorkerOptions</code> dictionary
96716-
<var>options</var>, it must run the following steps:</p>
96717+
<code>MessagePort</code> <var>outside port</var>, a <code>WorkerOptions</code> dictionary
96718+
<var>options</var>, and an optional string <var>name</var>, it must run the following steps.
96719+
(<var>name</var> is always be provided when <var>worker</var> is a <code>SharedWorker</code>.)</p>
9671796720

9671896721
<ol>
9671996722

@@ -96760,6 +96763,19 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
9676096763
context</var> and <var>outside settings</var>, and let <var>inside settings</var> be the
9676196764
result.</p></li>
9676296765

96766+
<li>
96767+
<p>If <var>is shared</var> is true, then:</p>
96768+
96769+
<ol>
96770+
<li><p>Set <var>worker global scope</var>'s <span
96771+
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> to
96772+
<var>url</var>.</p></li>
96773+
96774+
<li><p>Set <var>worker global scope</var>'s <span
96775+
data-x="concept-SharedWorkerGlobalScope-name">name</span> to <var>name</var>.</p></li>
96776+
</ol>
96777+
</li>
96778+
9676396779
<li><p>Let <var>destination</var> be "<code data-x="">sharedworker</code>" if <var>is
9676496780
shared</var> is true, and "<code data-x="">worker</code>" otherwise.</p></li>
9676596781

@@ -97360,8 +97376,7 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
9736097376
and abort these steps.</p></li>
9736197377

9736297378
<li>
97363-
<p>Let <var>urlString</var> be the <span>resulting URL string</span> and <var>urlRecord</var> be
97364-
the <span>resulting URL record</span>.</p>
97379+
<p>Otherwise, let <var>urlRecord</var> be the <span>resulting URL record</span>.</p>
9736597380

9736697381
<p class="note">Any <span data-x="same origin">same-origin</span> URL will do, including <code
9736797382
data-x="blob protocol">blob:</code> URLs.</p>
@@ -97388,12 +97403,12 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
9738897403
<li><p>If there exists a <code>SharedWorkerGlobalScope</code> object whose <span
9738997404
data-x="dom-WorkerGlobalScope-closing">closing</span> flag is false, whose <span
9739097405
data-x="concept-SharedWorkerGlobalScope-name">name</span> is exactly equal to <var>name</var>,
97391-
whose <span data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> is
97392-
equal to <var>urlString</var>, and whose <span>relevant settings object</span>'s
97393-
<span data-x="concept-settings-object-origin">origin</span> is <span>same origin</span> with
97394-
<var>outside settings</var>'s <span data-x="concept-settings-object-origin">origin</span>, then
97395-
set <var>worker global scope</var> to that <code>SharedWorkerGlobalScope</code>
97396-
object.</p></li>
97406+
whose <span data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span>
97407+
<span data-x="concept-url-equals">equals</span> <var>urlRecord</var>, and whose <span>relevant
97408+
settings object</span>'s <span data-x="concept-settings-object-origin">origin</span> is
97409+
<span>same origin</span> with <var>outside settings</var>'s <span
97410+
data-x="concept-settings-object-origin">origin</span>, then set <var>worker global scope</var>
97411+
to that <code>SharedWorkerGlobalScope</code> object.</p></li>
9739797412

9739897413
<li>
9739997414
<p>If <var>worker global scope</var> is not null, but the user agent has been
@@ -97454,7 +97469,8 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
9745497469
</li>
9745597470

9745697471
<li><p>Otherwise, <span>run a worker</span> given <var>worker</var>, <var>urlRecord</var>,
97457-
<var>outside settings</var>, <var>outside port</var>, and <var>options</var>.</p></li>
97472+
<var>outside settings</var>, <var>outside port</var>, <var>options</var>, and
97473+
<var>name</var>.</p></li>
9745897474
</ol>
9745997475
</li>
9746097476

0 commit comments

Comments
 (0)