[13] [DFN[[CODE(JS)@en[navigator.serviceWorker]]]] は、
[CODE(DOMi)@en[ServiceWorkerContainer]] [[オブジェクト]]を返します。
[CODE(DOMi)@en[ServiceWorkerContainer]] は、
[[サービスワーカー登録]]を登録、登録解除、更新したり、
[[サービスワーカー登録]]や関係する[[サービスワーカー]]の状態を得たりすることができる[[オブジェクト]]です
[SRC[>>8]]。

* 仕様書

[REFS[
- [2] [CITE@en[Service Workers Nightly]] ([TIME[2017-03-02 15:00:14 +09:00]]) <https://w3c.github.io/ServiceWorker/#navigator-serviceworker>
- [8] [CITE@en[Service Workers Nightly]] ([TIME[2017-03-02 15:00:14 +09:00]]) <https://w3c.github.io/ServiceWorker/#serviceworkercontainer-interface>
]REFS]

* [CODE(JS)@en[navigator.serviceWorker]] 属性

[3] [CODE(DOMi)@en[Navigator]] [[インターフェイス]]と
[CODE(DOMi)@en[WorkerNavigator]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[serviceWorker]]]]
[[IDL属性]]の[[取得器]]は、次のようにしなければ[MUST[なりません]] [SRC[>>2]]。

[FIG(steps)[
= [6] [[文脈オブジェクト]]の[F[[CODE(DOMi)@en[ServiceWorkerContainer]]]]を返します。
]FIG]

[5] この [[IDL属性]]は [CODE(IDL xattr)@en[SameObject]] です [SRC[>>2]]。

[4] この[[IDL属性]]は [CODE(IDL xattr)@en[SecureContext]] です [SRC[>>2]]。
[[HTTPS]] でのみ利用可能です。

-*-*-

[7] [CODE(DOMa)@en[navigator]] [[オブジェクト]]は、
[DFN[[F[[CODE(DOMi)@en[ServiceWorkerContainer]]]]]] を持ちます。
[CODE(DOMa)@en[navigator]] [[オブジェクト]]の作成時に設定されます。

* [CODE(DOMi)@en[ServiceWorkerContainer]] インターフェイス

[9] [CODE(DOMi)@en[ServiceWorkerContainer]] [[インターフェイス]]は、
[CODE(DOMi)@en[EventTarget]] [[インターフェイス]]を[[継承]]しています [SRC[>>8]]。

[10] [CODE(DOMi)@en[ServiceWorkerContainer]] [[インターフェイス]]は、
[[文書環境]]と[[ワーカー環境]]に[[晒され]]ています。 [SRC[>>8]]

[11] [CODE(DOMi)@en[ServiceWorkerContainer]] [[インターフェイス]]は
[CODE(IDL xattr)@en[SecureContext]] です。 [SRC[>>8]] つまり [[HTTPS]] でのみ利用可能です。

[FIG(list short)[ [12] [[メンバー][インターフェイスメンバー]]
- [CODE(DOMi)@en[EventListener]] [[メンバー][インターフェイスメンバー]]
- [CODE(DOMa)@en[controller]]
- [CODE(DOMa)@en[ready]]
- [CODE(DOMm)@en[register]]
- [CODE(DOMm)@en[getRegistration]]
- [CODE(DOMm)@en[getRegistrations]]
- [CODE(DOMm)@en[startMessages]]
- [CODE(DOMa)@en[oncontrollerchange]]
- [CODE(DOMa)@en[onmessage]]
]FIG]

[14] 次の状態を持ちます。

[FIG(list members)[
: [F[サービスワーカークライアント]] :
: [F[準備完了約束]] :
: [F[クライアントメッセージキュー]] :
]FIG]

* 歴史

[1] [CITE@en[Add ServiceWorkerContainer target to MessageEvent]]
([[jungkees]]著, [TIME[2016-11-15 09:03:31 +09:00]])
<https://github.com/whatwg/html/commit/6531e0982385de7f21b9a585dd53ad3bfc731043>