@@ -96939,6 +96939,19 @@ interface <dfn>WorkerGlobalScope</dfn> : <span>EventTarget</span> {
96939
96939
data-dfn-for="WorkerGlobalScope" data-x="concept-WorkerGlobalScope-url">url</dfn> (null or a
96940
96940
<span>URL</span>). It is initially null.
96941
96941
96942
+ <p>A <code>WorkerGlobalScope</code> object has an associated <dfn data-export=""
96943
+ data-dfn-for="WorkerGlobalScope" data-x="concept-WorkerGlobalScope-name">name</dfn> (a string). It
96944
+ is set during creation.
96945
+
96946
+ <p class="note">The <span data-x="concept-WorkerGlobalScope-name">name</span> can have different
96947
+ semantics for each subclass of of <code>WorkerGlobalScope</code>. For
96948
+ <code>DedicatedWorkerGlobalScope</code> instances, it is simply a developer-supplied name, useful
96949
+ mostly for debugging purposes. For <code>SharedWorkerGlobalScope</code> instances, it allows
96950
+ obtaining a reference to a common shared worker via the <code
96951
+ data-x="dom-SharedWorker">SharedWorker()</code> constructor. For
96952
+ <code>ServiceWorkerGlobalScope</code> objects, it doesn't make sense (and as such isn't exposed
96953
+ through the JavaScript API at all).</p>
96954
+
96942
96955
<p>A <code>WorkerGlobalScope</code> object has an associated <dfn data-export=""
96943
96956
data-dfn-for="WorkerGlobalScope" data-x="concept-WorkerGlobalScope-https-state">HTTPS state</dfn>
96944
96957
(an <span>HTTPS state value</span>). It is initially "<code data-x="">none</code>".
@@ -97009,6 +97022,8 @@ interface <dfn>WorkerGlobalScope</dfn> : <span>EventTarget</span> {
97009
97022
97010
97023
<pre class="idl">[Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
97011
97024
interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97025
+ readonly attribute DOMString <span data-x="dom-DedicatedWorkerGlobalScope-name">name</span>;
97026
+
97012
97027
void <span data-x="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</span>(any message, optional sequence<<span data-x="idl-object">object</span>> transfer = []);
97013
97028
97014
97029
void <span data-x="dom-DedicatedWorkerGlobalScope-close">close</span>();
@@ -97026,6 +97041,10 @@ interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span>
97026
97041
<code>DedicatedWorkerGlobalScope</code> object.</p>
97027
97042
97028
97043
<dl class="domintro">
97044
+ <dt><var>dedicatedWorkerGlobal</var> . <code subdfn data-x="dom-DedicatedWorkerGlobalScope-name">name</code></dt>
97045
+ <dd>Returns <var>dedicatedWorkerGlobal</var>'s <span
97046
+ data-x="concept-WorkerGlobalScope-name">name</span>.</dd>
97047
+
97029
97048
<dt><var>dedicatedWorkerGlobal</var> . <code subdfn
97030
97049
data-x="dom-DedicatedWorkerGlobalScope-postMessage">postMessage</code>(<var>message</var> [,
97031
97050
<var>transfer</var> ])</dt>
@@ -97038,6 +97057,11 @@ interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span>
97038
97057
<dd>Aborts <var>dedicatedWorkerGlobal</var>.</dd>
97039
97058
</dl>
97040
97059
97060
+ <p>The <dfn><code data-x="dom-DedicatedWorkerGlobalScope-name">name</code></dfn> attribute must
97061
+ return the <code>DedicatedWorkerGlobalScope</code> object's <span
97062
+ data-x="concept-WorkerGlobalScope-name">name</span>. Its value represents the name given to the
97063
+ worker using the <code>Worker</code> constructor, used primarily for debugging purposes.</p>
97064
+
97041
97065
<p>The <dfn><code data-x="dom-DedicatedWorkerGlobalScope-postMessage">postMessage()</code></dfn>
97042
97066
method on <code>DedicatedWorkerGlobalScope</code> objects must act as if, when invoked, it
97043
97067
immediately invoked <span data-x="dom-MessagePort-postMessage">the method of the same name</span>
@@ -97096,13 +97120,11 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97096
97120
97097
97121
<p>A <code>SharedWorkerGlobalScope</code> object has an associated <dfn
97098
97122
data-dfn-for="SharedWorkerGlobalScope"
97099
- data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</dfn>, <dfn
97123
+ data-x="concept-SharedWorkerGlobalScope-constructor-origin">constructor origin</dfn>, and <dfn
97100
97124
data-dfn-for="SharedWorkerGlobalScope"
97101
- data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</dfn>, and <dfn
97102
- data-dfn-for="SharedWorkerGlobalScope"
97103
- data-x="concept-SharedWorkerGlobalScope-name">name</dfn>. They are initialized when the
97104
- <code>SharedWorkerGlobalScope</code> object is created, in the <span>run a worker</span>
97105
- algorithm.
97125
+ data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</dfn>. They are
97126
+ initialized when the <code>SharedWorkerGlobalScope</code> object is created, in the <span>run a
97127
+ worker</span> algorithm.
97106
97128
97107
97129
<p>Shared workers receive message ports through <code
97108
97130
data-x="event-WorkerGlobalScope-connect">connect</code> events on their <code>SharedWorkerGlobalScope</code> object for each
@@ -97111,7 +97133,7 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97111
97133
<dl class="domintro">
97112
97134
<dt><var>sharedWorkerGlobal</var> . <code subdfn data-x="dom-SharedWorkerGlobalScope-name">name</code></dt>
97113
97135
<dd>Returns <var>sharedWorkerGlobal</var>'s <span
97114
- data-x="concept-SharedWorkerGlobalScope -name">name</span>.</dd>
97136
+ data-x="concept-WorkerGlobalScope -name">name</span>.</dd>
97115
97137
97116
97138
<dt><var>sharedWorkerGlobal</var> . <code subdfn
97117
97139
data-x="dom-SharedWorkerGlobalScope-close">close</code>()</dt>
@@ -97122,7 +97144,7 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97122
97144
97123
97145
<p>The <dfn><code data-x="dom-SharedWorkerGlobalScope-name">name</code></dfn> attribute must
97124
97146
return the <code>SharedWorkerGlobalScope</code> object's <span
97125
- data-x="concept-SharedWorkerGlobalScope -name">name</span>. Its value represents the name that can
97147
+ data-x="concept-WorkerGlobalScope -name">name</span>. Its value represents the name that can
97126
97148
be used to obtain a reference to the worker using the <code>SharedWorker</code> constructor.</p>
97127
97149
97128
97150
<p>The <dfn><code data-x="dom-SharedWorkerGlobalScope-close">close()</code></dfn> method, when
@@ -97234,9 +97256,8 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97234
97256
<p>When a user agent is to <dfn data-export="">run a worker</dfn> for a script with
97235
97257
<code>Worker</code> or <code>SharedWorker</code> object <var>worker</var>, <span>URL</span>
97236
97258
<var>url</var>, <span>environment settings object</span> <var>outside settings</var>,
97237
- <code>MessagePort</code> <var>outside port</var>, a <code>WorkerOptions</code> dictionary
97238
- <var>options</var>, and an optional string <var>name</var>, it must run the following steps.
97239
- (<var>name</var> is always provided when <var>worker</var> is a <code>SharedWorker</code>.)</p>
97259
+ <code>MessagePort</code> <var>outside port</var>, and a <code>WorkerOptions</code> dictionary
97260
+ <var>options</var>, it must run the following steps.</p>
97240
97261
97241
97262
<ol>
97242
97263
@@ -97281,6 +97302,10 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97281
97302
context</var> and <var>outside settings</var>, and let <var>inside settings</var> be the
97282
97303
result.</p></li>
97283
97304
97305
+ <li><p>Set <var>worker global scope</var>'s <span
97306
+ data-x="concept-WorkerGlobalScope-name">name</span> to the value of <var>options</var>'s
97307
+ <code data-x="">name</code> member.</p></li>
97308
+
97284
97309
<li>
97285
97310
<p>If <var>is shared</var> is true, then:</p>
97286
97311
@@ -97293,9 +97318,6 @@ interface <dfn>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
97293
97318
<li><p>Set <var>worker global scope</var>'s <span
97294
97319
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> to
97295
97320
<var>url</var>.</p></li>
97296
-
97297
- <li><p>Set <var>worker global scope</var>'s <span
97298
- data-x="concept-SharedWorkerGlobalScope-name">name</span> to <var>name</var>.</p></li>
97299
97321
</ol>
97300
97322
</li>
97301
97323
@@ -97716,6 +97738,7 @@ interface <dfn>Worker</dfn> : <span>EventTarget</span> {
97716
97738
dictionary <dfn>WorkerOptions</dfn> {
97717
97739
<span>WorkerType</span> type = "classic";
97718
97740
<span>RequestCredentials</span> credentials = "omit"; // credentials is only used if type is "module"
97741
+ DOMString name = "";
97719
97742
};
97720
97743
97721
97744
enum <dfn>WorkerType</dfn> { "classic", "module" };
@@ -97726,10 +97749,12 @@ enum <dfn>WorkerType</dfn> { "classic", "module" };
97726
97749
<dt><var>worker</var> = new <code subdfn data-x="dom-Worker">Worker</code>(<var>scriptURL</var> [, <var>options</var> ])</dt>
97727
97750
<dd>Returns a new <code>Worker</code> object. <var>scriptURL</var> will be fetched and executed
97728
97751
in the background, creating a new global environment for which <var>worker</var> represents the
97729
- communication channel. <var>options</var> can be used to ensure this new global environment
97730
- supports JavaScript modules (specify <code data-x="">type: "module"</code>) and if that is
97731
- specified, can also be used to specify how <var>scriptURL</var> is fetched through the <code
97732
- data-x="">credentials</code> option.</dd>
97752
+ communication channel. <var>options</var> can be used to define the <span
97753
+ data-x="concept-WorkerGlobalScope-name">name</span> of that global environment via the <code
97754
+ data-x="">name</code> option, primarily for debugging purposes. It can also ensure this new
97755
+ global environment supports JavaScript modules (specify <code data-x="">type: "module"</code>),
97756
+ and if that is specified, can also be used to specify how <var>scriptURL</var> is fetched through
97757
+ the <code data-x="">credentials</code> option.
97733
97758
97734
97759
<dt><var>worker</var> . <code subdfn data-x="dom-Worker-terminate">terminate</code>()</dt>
97735
97760
<dd>Aborts <var>worker</var>'s associated global environment.</dd>
@@ -97832,21 +97857,28 @@ enum <dfn>WorkerType</dfn> { "classic", "module" };
97832
97857
97833
97858
<h5>Shared workers and the <code>SharedWorker</code> interface</h5>
97834
97859
97835
- <pre class="idl">[<span data-x="dom-SharedWorker">Constructor</span>(USVString scriptURL, optional DOMString name = "", optional <span>WorkerOptions</span> options), Exposed=(Window,Worker)]
97860
+ <pre class="idl">[<span data-x="dom-SharedWorker">Constructor</span>(USVString scriptURL, optional (DOMString or <span>WorkerOptions</span>) options),
97861
+ Exposed=(Window,Worker)]
97836
97862
interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97837
97863
readonly attribute <span>MessagePort</span> <span data-x="dom-SharedWorker-port">port</span>;
97838
97864
};
97839
97865
<span>SharedWorker</span> implements <span>AbstractWorker</span>;</pre>
97840
97866
97841
97867
<dl class="domintro">
97842
- <dt><var>sharedWorker</var> = new <code subdfn data-x="dom-SharedWorker">SharedWorker</code>(<var>scriptURL</var> [, <var>name</var> [, <var>options</var> ] ])</dt>
97868
+ <dt><var>sharedWorker</var> = new <code subdfn data-x="dom-SharedWorker">SharedWorker</code>(<var>scriptURL</var> [, <var>name</var> ])</dt>
97843
97869
<dd>Returns a new <code>SharedWorker</code> object. <var>scriptURL</var> will be fetched and
97844
97870
executed in the background, creating a new global environment for which <var>sharedWorker</var>
97845
97871
represents the communication channel. <var>name</var> can be used to define the <span
97846
- data-x="concept-SharedWorkerGlobalScope-name">name</span> of that global environment.
97847
- <var>options</var> can be used to ensure this new global environment
97848
- supports JavaScript modules (specify <code data-x="">type: "module"</code>) and if that is
97849
- specified, can also be used to specify how <var>scriptURL</var> is fetched through the <code
97872
+ data-x="concept-WorkerGlobalScope-name">name</span> of that global environment.</dd>
97873
+
97874
+ <dt><var>sharedWorker</var> = new <code data-x="dom-SharedWorker">SharedWorker</code>(<var>scriptURL</var> [, <var>options</var> ])</dt>
97875
+ <dd>Returns a new <code>SharedWorker</code> object. <var>scriptURL</var> will be fetched and
97876
+ executed in the background, creating a new global environment for which <var>sharedWorker</var>
97877
+ represents the communication channel. <var>options</var> can be used to define the <span
97878
+ data-x="concept-WorkerGlobalScope-name">name</span> of that global environment via the <code
97879
+ data-x="">name</code> option. It can also ensure this new global environment supports JavaScript
97880
+ modules (specify <code data-x="">type: "module"</code>), and if that is specified, can also be
97881
+ used to specify how <var>scriptURL</var> is fetched through the <code
97850
97882
data-x="">credentials</code> option.</dd>
97851
97883
97852
97884
<dt><var>sharedWorker</var> . <code subdfn data-x="dom-SharedWorker-port">port</code></dt>
@@ -97861,13 +97893,17 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97861
97893
communicating with the shared worker.</p>
97862
97894
97863
97895
<p>When the <dfn><code data-x="dom-SharedWorker">SharedWorker(<var>scriptURL</var>,
97864
- <var>name</var>, <var>options</var>)</code></dfn> constructor is invoked, the user agent must run
97865
- the following steps:</p>
97896
+ <var>optons</var>)</code></dfn> constructor is invoked:</p>
97866
97897
97867
97898
<ol>
97868
- <li><p>The user agent may throw a <span>"<code>SecurityError</code>"</span>
97869
- <code>DOMException</code> and abort these steps if the request violates a policy decision (e.g.
97870
- if the user agent is configured to not allow the page to start shared workers).</p></li>
97899
+ <li><p>Optionally, throw a <span>"<code>SecurityError</code>"</span> <code>DOMException</code>
97900
+ and abort these steps if the request violates a policy decision (e.g. if the user agent is
97901
+ configured to not allow the page to start shared workers).</p></li>
97902
+
97903
+ <li><p>If <var>options</var> is a <code data-x="idl-DOMString">DOMString</code>, set
97904
+ <var>options</var> to a new <code>WorkerOptions</code> dictionary whose <code
97905
+ data-x="">name</code> member is set to the value of <var>options</var> and whose other members
97906
+ are set to their default values.</p></li>
97871
97907
97872
97908
<li><p>Let <var>outside settings</var> be the <span>current settings object</span>.</p></li>
97873
97909
@@ -97912,8 +97948,9 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97912
97948
data-x="concept-settings-object-origin">origin</span>, <span
97913
97949
data-x="concept-SharedWorkerGlobalScope-constructor-url">constructor url</span> <span
97914
97950
data-x="concept-url-equals">equals</span> <var>urlRecord</var>, and <span
97915
- data-x="concept-SharedWorkerGlobalScope-name">name</span> is <var>name</var>, then set
97916
- <var>worker global scope</var> to that <code>SharedWorkerGlobalScope</code> object.</p>
97951
+ data-x="concept-WorkerGlobalScope-name">name</span> equals the value of <var>options</var>'s
97952
+ <code data-x="">name</code> member, then set <var>worker global scope</var> to that
97953
+ <code>SharedWorkerGlobalScope</code> object.</p>
97917
97954
97918
97955
<p class="note"><code data-x="data protocol">data:</code> URLs create a worker with an <span
97919
97956
data-x="concept-origin-opaque">opaque origin</span>. Both the <span
@@ -97981,8 +98018,7 @@ interface <dfn>SharedWorker</dfn> : <span>EventTarget</span> {
97981
98018
</li>
97982
98019
97983
98020
<li><p>Otherwise, <span>run a worker</span> given <var>worker</var>, <var>urlRecord</var>,
97984
- <var>outside settings</var>, <var>outside port</var>, <var>options</var>, and
97985
- <var>name</var>.</p></li>
98021
+ <var>outside settings</var>, <var>outside port</var>, and <var>options</var>.</p></li>
97986
98022
</ol>
97987
98023
</li>
97988
98024
0 commit comments