[1] [DFN[[RUBYB[ワーカー環境]@en[worker environment]]]]は、[[ワーカー]]で用いられる[[JavaScript大域環境]]です。 [[専用ワーカー環境]]と[[共有ワーカー環境]]の二種類があります。 * 仕様書 [REFS[ - [6] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-10-18 20:52:42 +09:00]] 版) ]REFS] * ワーカー環境で JavaScript に晒されるインターフェイス [7] [[ワーカー環境]]で[[JavaScriptに晒される]]ものについて、次のようにしなければ[['''なりません''']] [SRC[>>6]]。 [FIG[ - [8] 原則として[[JavaScriptに晒し]]ません。 - [9] [[JavaScriptに晒す]]と規定されているものは晒します。 - [10] [[JavaScriptに晒す]]ものからアクセス可能な[[オブジェクト]]の[[インターフェイス]]や投げられる[[例外]]は [[JavaScriptに晒し]]ます。 ]FIG] * ワーカー環境と文書環境の違い [2] [[ワーカー環境]]と[[文書環境]]には、次のような違いがあります。 [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[[[Event]]]], [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]]]] も含まれそうです。 - [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]