[3] [[ワーカー]]は、[DFN[[F[[RUBYB[名前]@en[name]]][ワーカー名]]]]を持ちます。

* 仕様書

[REFS[
- [123] [CITE@en-GB-x-hixie[HTML Standard]]
<https://html.spec.whatwg.org/#concept-workerglobalscope-name>
-- [23] 旧 [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-11-04 19:30:07 +09:00]] 版) <https://html.spec.whatwg.org/#concept-sharedworkerglobalscope-name>
- [6] [CITE@en-GB-x-hixie[HTML Standard]]
<https://html.spec.whatwg.org/#dom-dedicatedworkerglobalscope-name>
- [35] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-11-04 19:30:07 +09:00]] 版) <https://html.spec.whatwg.org/#dom-sharedworkerglobalscope-name>
- [7] [CITE[HTML Standard]]
<https://html.spec.whatwg.org/#workeroptions>
]REFS]

* 名前

[25] [CODE(DOMi)@en[WorkerGlobalScope]] は、
[DFN[[F[[RUBYB[[[名前]]]@en[name]]]]]]を持ちます [SRC[>>123]]。

[FIG(switch)[
: [[専用ワーカー]] : 
[CODE(DOMi)@en[Worker][new Worker]] [[コンストラクター]]で[[専用ワーカー]]を作成した時に指定された名前を表します。
[[デバッグ]]用に使えます。
: [[共有ワーカー]] :
[CODE(DOMi)@en[[[SharedWorker]]]] [[構築子]]で[[共有ワーカー]]を作成した時に指定された名前を表します
[SRC[>>35]]。同じ [[Webサイト]]で複数の[[共有ワーカー]]を区別するために使います。
: [[サービスワーカー]] :
使用しません。
]FIG]

[4] [[共有ワーカー]]は、[[起源]]内で固有の[F[名前][ワーカー名]]を持ちます。
(但し終了中に作成した場合など、例外的に複数存在する瞬間もあります。)
それ以外の[[ワーカー]]は、同じ[F[名前][ワーカー名]]で重複する可能性があります。

* IDL属性

[59] [CODE(DOMi)@en[DedicatedWorkerGlobalScope]] [[インターフェイス]]と
[CODE(DOMi)@en[SharedWorkerGlobalScope]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[name][ワーカー名]]]] [[IDL属性]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>6, >>35]]。

[FIG(steps)[
= [5] [[文脈オブジェクト]]の[F[名前][ワーカー名]]を返します。
]FIG]

[12] この[[IDL属性]]は、 [CODE(xattr IDL)@en[Replaceable]] です [SRC[>>6, >>35]]。

* [CODE(DOMi)@en[WorkerOptions]] 辞書 [CODE(DOMa)@en[name][ワーカー名]] メンバー

[8] [CODE(DOMi)@en[WorkerOptions]] [[辞書]] 
[DFN[[CODE(DOMa)@en[name][ワーカー名]]]] [[メンバー][辞書メンバー]] [SRC[>>7]] は、
作成する[[ワーカー]]の[F[名前][ワーカー名]]を表します。
値は [CODE(IDL)@en[DOMString]] であり、[[既定値]]は[[空文字列]]です [SRC[>>7]]。

[9] [CODE(DOMi)@en[SharedWorker]] [[コンストラクター]]では、
[CODE(DOMi)@en[WorkerOptions]] のかわりに [CODE(DOMi)@en[DOMString]]
を指定することができます。 [CODE(DOMi)@en[DOMString]]
は、 [CODE(DOMi)@en[WorkerOptions]] の [CODE(DOMa)@en[name][ワーカー名]]
に指定されたと解釈されることになっています。

* 歴史

[1] [[共有ワーカー]]の歴史も参照。

[2] [CITE@en[Add a name to dedicated workers, for debugging]]
([[domenic]]著, [TIME[2017-05-12 12:43:56 +09:00]])
<https://github.com/whatwg/html/commit/3bb652169741d5dd94d7f1b390f6491e38d640cb>

[10] >>2 で[[専用ワーカー]]にも[F[名前][ワーカー名]]が導入されました。
更に、 [CODE(DOMi)@en[WorkerOptions]] に [CODE(DOMa)@en[name][ワーカー名]]
が追加され、 [[共有ワーカー]]でも [CODE(DOMi)@en[WorkerOptions]]
経由で[F[名前][ワーカー名]]を変更できるように統一されました。

[11] [CITE@en[Make self.name in workers '''['''Replaceable''']''']]
([[domenic]]著, [TIME[2017-06-28 05:52:39 +09:00]])
<https://github.com/whatwg/html/commit/fa37778b2608875b077a6d2cd43fe9e2929ce89f>

[13] [CITE@en[Add a name to dedicated workers, for debugging by domenic · Pull Request #2664 · whatwg/html]]
([TIME[2017-06-29 16:25:26 +09:00]])
<https://github.com/whatwg/html/pull/2664>

[14] [CITE@en[Make self.name in workers '''['''Replaceable''']''' by domenic · Pull Request #2783 · whatwg/html]]
([TIME[2017-06-29 16:25:46 +09:00]])
<https://github.com/whatwg/html/pull/2783>

[15] [CITE@en[1375457 - prettier.js website broken: TypeError: setting getter-only property "name"]]
([TIME[2017-06-29 16:31:27 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=1375457>