Skip to content

Commit 5aa1a59

Browse files
authored
Compare against storage key when creating a shared worker
This is technically not a normative change right now, but it will be when whatwg/storage#144 lands.
1 parent c3d7391 commit 5aa1a59

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

source

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105160,23 +105160,51 @@ interface <dfn interface>SharedWorker</dfn> : <span>EventTarget</span> {
105160105160
<li><p>Let <var>callerIsSecureContext</var> be true if <var>outside settings</var> is a
105161105161
<span>secure context</span>; otherwise, false.</p></li>
105162105162

105163+
<li><p>Let <var>outside storage key</var> be the result of running <span>obtain a storage key
105164+
for non-storage purposes</span> given <var>outside settings</var>.</p></li>
105165+
105163105166
<li>
105164105167
<p><span>Enqueue the following steps</span> to the <span>shared worker manager</span>:</p>
105165105168

105166105169
<ol>
105167105170
<li><p>Let <var>worker global scope</var> be null.</p></li>
105168105171

105169105172
<li>
105170-
<p>If there exists a <code>SharedWorkerGlobalScope</code> object whose <span
105171-
data-x="dom-WorkerGlobalScope-closing">closing</span> flag is false, <span
105172-
data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</span> is
105173-
<span>same origin</span> with <var>outside settings</var>'s <span
105174-
data-x="concept-settings-object-origin">origin</span>, <span
105175-
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> <span
105176-
data-x="concept-url-equals">equals</span> <var>urlRecord</var>, and <span
105177-
data-x="concept-WorkerGlobalScope-name">name</span> equals the value of <var>options</var>'s
105178-
<code data-x="">name</code> member, then set <var>worker global scope</var> to that
105179-
<code>SharedWorkerGlobalScope</code> object.</p>
105173+
<p><span data-x="list iterate">For each</span> <var>scope</var> in the list of all
105174+
<code>SharedWorkerGlobalScope</code> objects:</p>
105175+
105176+
<ol>
105177+
<li><p>Let <var>worker storage key</var> be the result of running <span>obtain a storage
105178+
key for non-storage purposes</span> given <var>scope</var>'s <span>relevant settings
105179+
object</span>.</p></li>
105180+
105181+
<li>
105182+
<p>If all of the following conditions are true:</p>
105183+
105184+
<ul class="brief">
105185+
<li><var>worker storage key</var> <span data-x="storage key equal">equals</span>
105186+
<var>outside storage key</var>;</li>
105187+
105188+
<li><var>scope</var>'s <span data-x="dom-WorkerGlobalScope-closing">closing</span> flag
105189+
is false;</li>
105190+
105191+
<li><var>scope</var>'s <span data-x="concept-SharedWorkerGlobalScope-constructor-url">
105192+
constructor url</span> <span data-x="concept-url-equals">equals</span>
105193+
<var>urlRecord</var>; and</li>
105194+
105195+
<li><var>scope</var>'s <span data-x="concept-WorkerGlobalScope-name">name</span> equals
105196+
the value of <var>option</var>'s <code data-x="">name</code> member</li>
105197+
</ul>
105198+
105199+
<p>then:</p>
105200+
105201+
<ol>
105202+
<li><p>Set <var>worker global scope</var> to <var>scope</var>.</p></li>
105203+
105204+
<li><p><span>Break</span>.</p></li>
105205+
</ol>
105206+
</li>
105207+
</ol>
105180105208

105181105209
<p class="note"><code data-x="data protocol">data:</code> URLs create a worker with an <span
105182105210
data-x="concept-origin-opaque">opaque origin</span>. Both the <span

0 commit comments

Comments
 (0)