[1] [DFN[[RUBYB[ワーカー環境]@en[worker environment]]]]は、[[ワーカー]]で用いられる[[JavaScript大域環境]]です。 [[専用ワーカー環境]]と[[共有ワーカー環境]]の二種類があります。 * 仕様書 [REFS[ - [14] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-04-03 03:44:44 +09:00]] 版) ]REFS] * ワーカー環境と文書環境の違い [2] [[ワーカー環境]]と[[文書環境]]には、次のような違いがあります。 ;; [16] この違いは [[Web IDL]] [[拡張属性]] [CODE[[[Exposed]]]] によって仕様書上に示されています。 [FIG[ - [3] [[大域オブジェクト]]の違い。[[大域オブジェクト]]として使われる[[インターフェイス]]が違っており、 それぞれ自環境の[[インターフェイス]]のみが[[JavaScriptに晒されます]]。 -- [[文書環境]]では [CODE(DOMi)@en[[[Window]]]] -- [[ワーカー環境]]では [CODE(DOMi)@en[[[DedicatedWorkerGlobalScope]]]] または [CODE(DOMi)@en[[[SharedWorkerGlobalScope]]]] - [4] [[ワーカー環境]]では [[DOM]] [[API]] は[[JavaScriptに晒され]]ません。 -- -- [CODE(DOMi)@en[[[Node]]]], [CODE(DOMi)@en[[[Attr]]]], [CODE(DOMi)@en[[[NodeList]]]], [CODE(DOMi)@en[[[HTMLCollection]]]], ([CODE(DOMi)@en[[[NamedNodeMap]]]]), [CODE(DOMi)@en[[[Range]]]], [CODE(DOMi)@en[[[NodeIterator]]]], [CODE(DOMi)@en[[[TreeWalker]]]], [CODE(DOMi)@en[[[DOMImplementation]]]], [CODE(DOMi)@en[[[MutationObserver]]]], [CODE(DOMi)@en[[[MutationRecord]]]] とその子孫は含まれます。 -- [CODE(DOMi)@en[[[DOMParser]]]], [CODE(DOMi)@en[[[XMLSerializer]]]], [CODE(DOMi)@en[[[XPathEvaluator]]]], [CODE(DOMi)@en[[[XPathNSResolver]]]], [CODE(DOMi)@en[[[XPathExpression]]]], [CODE(DOMi)@en[[[XPathResult]]]], [CODE(DOMi)@en[[[XSLTProcessor]]]] も含まれそうです。 -- [CODE(DOMi)@en[[[Event]]]] とその子孫、 [CODE(DOMi)@en[[[EventTarget]]]] は晒されます [SRC[>>17]]。 - [5] [CODE(DOMi)@en[[[WorkerNavigator]]]] [[インターフェイス]]は[[ワーカー環境]]でのみ[[JavaScriptに晒されます]]。 -- -- [[文書環境]]でのみ [CODE(DOMi)@en[[[Navigator]]]] があります。 - [11] [CODE(DOMi)@en[[[WorkerLocation]]]] [[インターフェイス]]は[[ワーカー環境]]でのみ[[JavaScriptに晒されます]]。 -- -- [[文書環境]]でのみ [CODE(DOMi)@en[[[Location]]]] があります。 - [12] [CODE(DOMi)@en[[[XMLHttpRequest]]]] [[インターフェイス]]は[[文書環境]]と[[ワーカー環境]]で違います。 -- - [13] [CODE(DOMi)@en[[[FormData]]]] [[インターフェイス]]は[[文書環境]]と[[ワーカー環境]]で違います。 -- ]FIG] * 歴史 [7] [[ワーカー環境]]で[[JavaScriptに晒される]]ものについて、次のようにしなければ[['''ならない''']] [SRC[>>6]] と規定がありました。これは >>15 までに [CODE[[[Exposed]]]] に置き換えられました。 [FIG[ - [8] 原則として[[JavaScriptに晒し]]ません。 - [9] [[JavaScriptに晒す]]と規定されているものは晒します。 - [10] [[JavaScriptに晒す]]ものからアクセス可能な[[オブジェクト]]の[[インターフェイス]]や投げられる[[例外]]は [[JavaScriptに晒し]]ます。 ]FIG] [REFS[ - [15] [CITE@en[Web Applications 1.0 r8467 Remove the text made redundant by ''''''[''''''Exposed'''''']'''''']] ([TIME[2014-02-06 04:34:00 +09:00]] 版) - [6] [DEL[[CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-10-18 20:52:42 +09:00]] 版) ]] -- >>15 により削除されました ]REFS] [REFS[ - [17] [CITE[Expose events in workers · 0f69e71 · whatwg/dom]] ([TIME[2014-04-11 22:56:03 +09:00]] 版) ]REFS]