/[suikacvs]/markup/html/html5/spec-ja/workers-non-normative.ja.html.u8
Suika

Contents of /markup/html/html5/spec-ja/workers-non-normative.ja.html.u8

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.16 - (hide annotations) (download)
Sat Jul 19 09:12:07 2008 UTC (18 years ago) by wakaba
Branch: MAIN
Changes since 1.15: +261 -96 lines
*** empty log message ***

1 wakaba 1.1
2     <html lang=en-US-x-hixie>
3     <head>
4     <title>Web Workers</title>
5     <link href="http://www.whatwg.org/style/specification" rel=stylesheet>
6     <!-- Japanese-translation-only style rules -->
7     <style>
8 wakaba 1.14 em, i {
9     font-style: normal;
10 wakaba 1.1 text-decoration: underline;
11     }
12 wakaba 1.14
13     .note, .warning {
14     font-style: normal;
15     }
16     p.note:before {
17     content: '注意: ';
18     }
19     p.warning:before {
20     content: '\26A0 警告! ';
21     }
22    
23 wakaba 1.1 ins.ja-note {
24     background-color: #EEFFFF;
25     color: black;
26     }
27 wakaba 1.16 span.ja-translation {
28     border-style: none !important;
29     }
30 wakaba 1.1 </style>
31     <link href="http://www.whatwg.org/images/icon" rel=icon>
32    
33 wakaba 1.16 <style>
34     p > span:not([title=""]):not([class="big-issue"]), li > span:not([title=""]):not([class="big-issue"]) { border-bottom: solid #99CC99; }
35     </style>
36    
37 wakaba 1.1 <body class=draft>
38     <div class=head>
39     <p><span class=ja-translation lang=ja><a class=logo href="http://www.whatwg.org/" rel=home><img lang=en alt=WHATWG
40     src="http://www.whatwg.org/images/logo"></a></span></p>
41    
42     <h1 id=web-workers>Web Workers</h1>
43    
44     <h2 class="no-num no-toc" id=draft><span class=ja-translation lang=ja>勧告案<ins class=ja-note>の非公式和訳</ins> &mdash;
45 wakaba 1.13 <ins class=ja-note>(原文出版日)</ins> 2008年7月18日</span></h2>
46 wakaba 1.1
47     <p><span class=ja-translation lang=ja>みなさんにも作業にご参加いただけます。 <a
48     href="http://www.whatwg.org/mailing-list">作業部会の議論用メイリング・リストに参加してください。</a></span></p>
49    
50     <p><span class=ja-translation lang=ja><strong>Web デザイナー!</strong> みなさんのための <a
51     href="http://blog.whatwg.org/faq/" lang=en>FAQ</a>、<a
52     href="http://forums.whatwg.org/">掲示板</a>、<a
53     href="http://www.whatwg.org/mailing-list#help">ヘルプ用メイリング・リスト</a>があります!
54    
55     </span><p>
56    
57     <!-- Japanese-translation-only notes -->
58 wakaba 1.3 <ins class=ja-note style="display: block" lang=ja>
59 wakaba 1.1 <p>この文書は、 WHATWG HTML5 仕様書の日本語訳です。
60     HTML5 の正式な仕様書は英語版だけであり、
61     この日本語訳はあくまで参考としてご利用ください。
62    
63 wakaba 1.3 <p lang=en>This document is a Japanese translation of
64 wakaba 1.1 the WHATWG HTML5 specification. Note that the only normative specification
65     for the HTML5 is the original English version and this Japanese
66     translation is non‐normative.
67 wakaba 1.3
68     <p>日本語訳は <a href="edit/" rel=edit>Web 界面</a>を使って編集できます。
69     編集結果はおよそ3時間おきに反映されます。
70     また、原文の変更には毎日自動的に追随しています。
71    
72 wakaba 1.8 <p lang=en>The Japanese text can be edited using the <a href="edit/" rel=edit>Web
73 wakaba 1.3 interface</a>. Any modifications will be reflected to this translation
74     in about three hours. Note that any changes to the original specification
75     will automatically be incorporated to this translation every day.
76 wakaba 1.1 </ins>
77    
78     <p><span><!-- dummy --></span></p>
79    
80     <dl>
81     <dt><span class=ja-translation lang=ja><ins class=ja-note>原文の</ins>この版</span><dd><a
82 wakaba 1.13 href="http://www.whatwg.org/specs/web-workers/current-work/">http://whatwg.org/ww</a>
83 wakaba 1.1
84     <dt><span class=ja-translation lang=ja><ins class=ja-note>原文の</ins>改版履歴:</span><dd><span class=ja-translation lang=ja><span lang=en>Twitter</span> メッセージ (編集上の変更以外): <a
85     href="http://twitter.com/WHATWG">http://twitter.com/WHATWG</a></span><dd>Commit-Watchers mailing list: <a
86     href="http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org">http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org</a>
87    
88     <dd><span class=ja-translation lang=ja>対話的 <span lang=en>Web</span> 界面: <a href="http://html5.org/tools/web-workers-tracker">http://html5.org/tools/web-workers-tracker</a></span><dd><span class=ja-translation lang=ja><span lang=en>Subversion</span> 界面: <a href="http://svn.whatwg.org/webworkers/">http://svn.whatwg.org/webworkers/</a></span><dt><span class=ja-translation lang=ja>問題:</span><dd><span class=ja-translation lang=ja>フィードバックの送信先: <a
89     href="http://www.whatwg.org/mailing-list">[email protected]</a></span><dd><span class=ja-translation lang=ja>フィードバックの閲覧・投票: <a
90     href="http://www.whatwg.org/issues/">http://www.whatwg.org/issues/</a></span><dt><span class=ja-translation lang=ja>編集者:</span><dd>Ian Hickson, Google, [email protected]
91     </dl>
92    
93     <p class=copyright>&copy; Copyright 2004-2008 Apple Computer, Inc.,
94     Mozilla Foundation, and Opera Software ASA.</p>
95    
96     <p class=copyright>You are granted a license to use, reproduce and create
97     derivative works of this document.</p>
98     </div>
99    
100     <hr>
101    
102     <h2 class="no-num no-toc" id=abstract><span class=ja-translation lang=ja>概要</span></h2>
103    
104 wakaba 1.14 <p><span class=ja-translation lang=ja>この仕様書は、 Web アプリケーションで、主たる頁とは並列に、
105     背景労働者スクリプトを走らせるための API を定義します。
106     これにより、メッセージ・パッシングによるスレッド的操作を協調機構として利用できるようになります。</span><h2 class="no-num no-toc" id=status><span class=ja-translation lang=ja>この文書の状態</span></h2>
107 wakaba 1.1
108     <p><span class=ja-translation lang=ja><strong>この文書は作業中です!</strong>
109     この文書は、コメントへの対応や通常の開発の過程として、
110     毎時毎分とは言い過ぎですが毎日のペースで変更されています。
111     コメントは非常に歓迎していますので、
112     <a href="mailto:[email protected]">[email protected]</a>
113     へお送りください。よろしくお願いします。</span><p><span class=ja-translation lang=ja>現在の焦点は、第1案の開発です。</span><p><span class=ja-translation lang=ja>実装者は、この仕様書が安定していないことに注意するべきです。
114     <strong>実装者は議論に参加しておかないと、
115     仕様がその実装とは非互換に変更されてしまうかもしれません。</strong>
116     この仕様書がいずれ実装呼び掛けの段階に達するのよりも前にこの仕様を実装したい販売者は、
117 wakaba 1.7 <a href="http://www.whatwg.org/mailing-list">WHATWG メイリング・リスト</a>に参加し、
118 wakaba 1.1 議論に加わるべきです。</span><p><span class=ja-translation lang=ja>この仕様書は <a
119     href="http://www.w3.org/html/wg">W3C HTML WG</a>
120     によっても出版されています。2つの仕様書の目次以降は同一です。</span><h2 class="no-num no-toc" id=contents><span class=ja-translation lang=ja>目次
121     </span></h2>
122     <!--begin-toc-->
123    
124     <ul class=toc>
125     <li><a href="#introduction"><span class=secno>1. </span>Introduction</a>
126     <ul class=toc>
127 wakaba 1.9 <li><a href="#tutorial"><span class=secno>1.1 </span>Tutorial</a>
128 wakaba 1.1
129 wakaba 1.16 <li><a href="#conformance"><span class=secno>1.2 </span>Conformance
130 wakaba 1.1 requirements</a>
131     <ul class=toc>
132 wakaba 1.16 <li><a href="#dependencies"><span class=secno>1.2.1
133 wakaba 1.1 </span>Dependencies</a>
134     </ul>
135    
136 wakaba 1.16 <li><a href="#terminology"><span class=secno>1.3 </span>Terminology</a>
137 wakaba 1.9 </ul>
138    
139 wakaba 1.13 <li><a href="#infrastructure"><span class=secno>2.
140     </span>Infrastructure</a>
141 wakaba 1.9 <ul class=toc>
142     <li><a href="#the-windowworker"><span class=secno>2.1 </span>The
143     <code>WindowWorker</code> interface</a>
144    
145 wakaba 1.16 <li><a href="#base-urls"><span class=secno>2.2 </span>Base URLs and
146     origins of workers</a>
147    
148     <li><a href="#the-queue"><span class=secno>2.3 </span>The queue of
149 wakaba 1.9 events</a>
150    
151 wakaba 1.16 <li><a href="#the-workers"><span class=secno>2.4 </span>The worker's
152 wakaba 1.11 ports</a>
153    
154 wakaba 1.16 <li><a href="#processing"><span class=secno>2.5 </span>Processing
155 wakaba 1.9 model</a>
156 wakaba 1.13
157 wakaba 1.16 <li><a href="#creating"><span class=secno>2.6 </span>Creating
158 wakaba 1.13 workers</a>
159 wakaba 1.9 </ul>
160    
161 wakaba 1.13 <li><a href="#apis-available"><span class=secno>3. </span>APIs available
162     to workers</a>
163 wakaba 1.1
164     <li class=no-num><a href="#references">References</a>
165    
166     <li class=no-num><a href="#acknowledgements">Acknowledgements</a>
167     </ul>
168     <!--end-toc-->
169    
170     <hr>
171    
172 wakaba 1.3 <h2 id=introduction><span class=ja-translation lang=ja><span class=secno>1. </span>はじめに</span></h2>
173 wakaba 1.1
174 wakaba 1.12 <h3 id=tutorial><span class=ja-translation lang=ja><span class=secno>1.1 </span>解説</span></h3>
175 wakaba 1.1
176 wakaba 1.9 <p><span class=ja-translation lang=ja><em>この節は規定の一部ではありません。</em></span><p class=big-issue>This section is missing.
177    
178 wakaba 1.16 <h3 id=conformance><span class=ja-translation lang=ja><span class=secno>1.2 </span>適合性要件</span></h3>
179 wakaba 1.1
180     <p><span class=ja-translation lang=ja>この仕様書のすべての図、例、注意書きは、
181     規定の一部ではないと明記された節すべてと同様に、
182     規定の一部ではありません。
183     この仕様書のそれ以外のすべては規定の一部です。</span><p><span class=ja-translation lang=ja>この文書の規定の部分にあるキーワード「<em class=rfc2119 title="MUST">しなければなりません</em>」、
184     「<em class=rfc2119 title="MUST NOT">してはなりません</em>」、
185     「<em class=rfc2119 title="REQUIRED">必須です</em>」、「<em class=rfc2119 title="SHOULD">するべきです</em>」、
186     「<em class=rfc2119 title="SHOULD NOT">するべきではありません</em>」、
187     「<em class=rfc2119 title="RECOMMENDED">推奨します</em>」、「<em class=rfc2119 title="MAY">して構いません</em>」、
188     「<em class=rfc2119 title="OPTIONAL">任意です</em>」は、 RFC 2119 で説明されているように解釈します。
189     可読性の観点から、この仕様書<ins class=ja-note>の原文</ins>では、
190     これらの語<ins class=ja-note>の原語</ins>はすべて大文字では表記しません。
191     <a href="#refsRFC2119">[RFC2119]</a></span></p>
192     <!-- XXX but they should be
193     marked up -->
194    
195     <p><span class=ja-translation lang=ja>算法の一部として<ins class=ja-note>動作の指示の形で (原文では</ins>命令形で<ins class=ja-note>) </ins>記述された要件
196     (例えば「先頭の間隔文字をすべて除去します」や「偽を返し、これらの段階を停止します」)
197     は、算法の紹介で使われたキーワード (<em class=rfc2119 title="MUST">しなければなりません</em>、
198     <em class=rfc2119 title="SHOULD">するべきです</em>、<em class=rfc2119 title="MAY">して構いません</em>など) の意味により解釈します。</span><p><span class=ja-translation lang=ja>いくつかの適合性要件は属性やメソッドやオブジェクトの要件として説明されています。
199     そのような要件は、利用者エージェントに関する要件として解釈します。</span><p><span class=ja-translation lang=ja>算法や特定の段階として説明されている適合性要件は、
200     最終的な結果が等価である限り、任意の方法で実装して<em class=rfc2119 title="MAY">構いません</em>。
201     (特に、この仕様書で定義されている算法は追うのを簡単にしており、
202     高性能であることを目指してはいません。)</span><p><span class=ja-translation lang=ja>この仕様書で定義される適合性の級は、利用者エージェントのみです。</span><p><span class=ja-translation lang=ja>利用者エージェントは、サービス拒否攻撃を防ぐため、
203     記憶容量を使い尽くすことを防ぐため、
204     あるいは環境特有の制限に対応するためなどの目的で、
205 wakaba 1.16 別段の制約のない入力に対して実装特有の制限を設けて<em class=rfc2119 title="MAY">構いません</em>。</span><h4 id=dependencies><span class=ja-translation lang=ja><span class=secno>1.2.1 </span>依存性</span></h4>
206 wakaba 1.1
207     <p><span class=ja-translation lang=ja>この仕様書は他のいくつかの下位仕様書に依存しています。</span><dl>
208     <dt>HTML5
209    
210     <dd>
211     <p><span class=ja-translation lang=ja>HTML5 の多くの基礎的な概念をこの仕様書で使用します。
212     <a href="#refsHTML5">[HTML5]</a></span></p>
213    
214     <dt>ECMAScript
215    
216     <dd>
217     <p><span class=ja-translation lang=ja>この仕様書はスクリプト言語として JavaScript
218     を使うことを想定しています。 <a href="#refsJS">[JS]</a></span></p>
219    
220     <dt>WebIDL
221    
222     <dd>
223 wakaba 1.5 <p><span class=ja-translation lang=ja>この仕様書の IDL ブロックは WebIDL 仕様書における意味を用います。 <a href="#refsWebIDL">[WebIDL]</a></span></p>
224 wakaba 1.1 </dl>
225    
226 wakaba 1.16 <h3 id=terminology><span class=ja-translation lang=ja><span class=secno>1.3 </span>用語</span></h3>
227 wakaba 1.1
228     <p><span class=ja-translation lang=ja>簡単のため、<em>示す</em>、<em>表示する</em>、
229     <em>可視</em>などの用語を文書が利用者に対してレンダリングされる方法に言及する時に使うことがあります。
230     これらの語は視覚媒体を暗示することを意図していません。
231 wakaba 1.10 これらの語は他の媒体にも等価な方法で適用されると考えなければ<em class=rfc2119 title="MUST">なりません</em>。</span><p><span class=ja-translation lang=ja>「<code title="">Foo</code> オブジェクト」という構文 (<code title="">Foo</code>
232     は実際には界面) を時々使いますが、より正確な「界面 <code title="">Foo</code>
233     を実装しているオブジェクト」の代わりに用いています。</span><p><span class=ja-translation lang=ja>DOM という語は、 Web アプリケーションでスクリプトに利用可能とされている API
234 wakaba 1.1 の集合を指して用い、必ずしも DOM 中核仕様書で定義されている実際の
235     <code>Document</code> オブジェクトその他の <code>Node</code>
236     オブジェクトの存在を暗示してはいません。<a
237     href="#refsDOM3CORE">[DOM3CORE]</a></span><p><span class=ja-translation lang=ja>DOM 属性は、その値が (例えば著者のスクリプトにより) 取り出される時<em>取得される</em>といい、
238     新しい値がその属性に割り当てられる時<em>設定される</em>といいます。</span><p><span class=ja-translation lang=ja>DOM オブジェクトが<dfn id=live>生きている</dfn>という場合、
239     そのオブジェクトを返す属性は常に同じオブジェクトを返さなければ<em class=rfc2119 title="MUST">ならない</em>
240     (毎回新しいオブジェクトを返すのではなく) 上に、
241     そのオブジェクトの属性やメソッドがそのオブジェクトの裏にある実際のデータのスナップ写真ではなく、
242 wakaba 1.10 データそのものに対して操作されなければ<em class=rfc2119 title="MUST">ならない</em>ことを意味します。
243 wakaba 1.14 </span><h2 id=infrastructure><span class=ja-translation lang=ja><span class=secno>2. </span>基盤</span></h2>
244 wakaba 1.9
245 wakaba 1.10 <h3 id=the-windowworker><span class=ja-translation lang=ja><span class=secno>2.1 </span><code><a href="#windowworker">WindowWorker</a></code> 界面</span></h3>
246 wakaba 1.9
247     <pre
248     class=idl>[NoInterfaceObject] interface <dfn id=windowworker>WindowWorker</dfn> {
249 wakaba 1.13 readonly attribute DOMString <a href="#url" title=dom-WindowWorker-URL>URL</a>;
250     readonly attribute DOMString <a href="#name" title=dom-WindowWorker-name>name</a>;
251     readonly attribute boolean <a href="#closing" title=dom-WindowWorker-closing>closing</a>;
252 wakaba 1.16 boolean <a href="#import" title=dom-WindowWorker-import>import</a>(in DOMString url);
253 wakaba 1.13 void <a href="#close" title=dom-WindowWorker-close>close</a>();
254 wakaba 1.11
255     // event handler attributes
256 wakaba 1.16 attribute <span>EventListener</span> <a href="#onconnect" title=handler-WindowWorker-onconnect>onconnect</a>;
257 wakaba 1.13 attribute <span>EventListener</span> <a href="#onunload" title=handler-WindowWorker-onunload>onunload</a>;
258 wakaba 1.9 };</pre>
259    
260 wakaba 1.14 <p><span class=ja-translation lang=ja><dfn id=url title=dom-WindowWorker-URL><code>URL</code></dfn>
261     属性は、 <code><a
262     href="#windowworker">WindowWorker</a></code>
263     オブジェクトが「<a
264     href="#run-a">労働者を走らせる</a>」算法で作成された時に割り当てられた値を返さなければ<em class=rfc2119 title="MUST">なりません</em>。
265     その値は、労働者を初期化するために使用されたスクリプトの絶対 URL を表します。</span><p><span class=ja-translation lang=ja><dfn id=name title=dom-windowworker-name><code>name</code></dfn>
266     属性は、<code><a
267     href="#windowworker">WindowWorker</a></code> オブジェクトが「<a
268     href="#run-a">労働者を走らせる</a>」算法で作成された時に割り当てられた値を返さなければ<em class=rfc2119 title="MUST">なりません</em>。この値が空文字列でなければ、
269     その値は、 <code
270 wakaba 1.13 title=dom-WindowWorkerCreators-createNamedWorker><a
271 wakaba 1.14 href="#createnamedworker">createNamedWorker()</a></code>
272     メソッドを使って労働者への参照を得るために使うことができる名前を表します。</span><p>The <dfn id=closing
273 wakaba 1.13 title=dom-WindowWorker-closing><code>closing</code></dfn> attribute must
274 wakaba 1.16 return false until it is set to true by one of the algorithms in the
275     processing model section below.
276 wakaba 1.9
277 wakaba 1.12 <p><span class=ja-translation lang=ja>次に示すのは、 <code><a
278     href="#windowworker">WindowWorker</a></code>
279     界面を実装するオブジェクトが対応しなければ<em class=rfc2119 title="MUST">ならない</em>事象取扱器 DOM 属性です。</span><dl>
280 wakaba 1.16 <dt><dfn id=onconnect
281     title=handler-WindowWorker-onconnect><code>onconnect</code></dfn>
282 wakaba 1.11
283     <dd>
284 wakaba 1.16 <p><span class=ja-translation lang=ja><code title=event-WindowWorker-connect>connect</code> 事象が当該 <code><a href="#windowworker">WindowWorker</a></code> オブジェクトを対象としているか、泡立って当該オブジェクトを通過する時に、
285 wakaba 1.12 呼び出されなければなりません。</span><dt><dfn id=onunload
286 wakaba 1.13 title=handler-WindowWorker-onunload><code>onunload</code></dfn>
287 wakaba 1.11
288     <dd>
289 wakaba 1.12 <p><span class=ja-translation lang=ja><code title=event-unload>unload</code> 事象が当該 <code><a href="#windowworker">WindowWorker</a></code> オブジェクトを対象としているか、泡立って当該オブジェクトを通過する時に、
290     呼び出されなければなりません。</span></dl>
291 wakaba 1.11
292 wakaba 1.16 <h3 id=base-urls><span class=secno>2.2 </span>Base URLs and origins of
293     workers</h3>
294    
295     <p>The <span>base URL</span> of a <span>URL</span> passed to an API in a
296     worker is the <span>absolute URL</span> given by the value of the <code
297     title=dom-WindowWorker-URL><a href="#url">URL</a></code> attribute of the
298     worker's <code><a href="#windowworker">WindowWorker</a></code> object.
299    
300     <p>The <span>origin</span> and <span>effective script origin</span> of
301     scripts running in workers are both the <span>origin</span> of the
302     <span>absolute URL</span> given by the value of the <code
303     title=dom-WindowWorker-URL><a href="#url">URL</a></code> attribute of the
304     worker's <code><a href="#windowworker">WindowWorker</a></code> object.
305    
306     <h3 id=the-queue><span class=ja-translation lang=ja><span class=secno>2.3 </span>事象の待ち行列</span></h3>
307 wakaba 1.9
308 wakaba 1.10 <p><span class=ja-translation lang=ja>各 <code><a href="#windowworker">WindowWorker</a></code> オブジェクトは、
309 wakaba 1.12 <dfn id=queue>事象の待ち行列</dfn> (はじめは空) と関連付けられています。</span><p><span class=ja-translation lang=ja>待ち行列中の事象は、 DOM 事象か小休止呼び戻しのいずれかです。</span><p><span class=ja-translation lang=ja>労働者中で呼び出しまたは発送されるすべての非同期の呼び戻しと事象は、
310     作業者の待ち行列に追加されなければなりません。
311     ただし、実際の呼び戻しの呼び出しや事象の発送は、後述の「<a
312 wakaba 1.14 href="#run-a">労働者を走らせる</a>」処理モデルに従い処理されます。</span><p><span class=ja-translation lang=ja>一旦 <code><a href="#windowworker">WindowWorker</a></code> の <code
313     title=dom-windowworker-closing><a href="#closing">closing</a></code>
314     属性が真に設定されると、待ち行列は、以後追加されるべきものがあっても、
315     すべて捨てなければ<em class=rfc2119 title="MUST">なりません</em>。実効的には、一旦 <code
316     title=dom-windowworker-closing><a href="#closing">closing</a></code>
317     属性が真となると、タイマーが発火を停止したり、
318 wakaba 1.16 すべての未決の非同期処理に関する通知は捨てられたりするようになるなどします。</span><h3 id=the-workers><span class=ja-translation lang=ja><span class=secno>2.4 </span>労働者のポート</span></h3>
319 wakaba 1.11
320 wakaba 1.14 <p><span class=ja-translation lang=ja>労働者は、メッセージ通信路とその <code>MessagePort</code>
321 wakaba 1.12 オブジェクトを通じて、他の労働者や閲覧文脈と通信します。</span><p><span class=ja-translation lang=ja>各 <code><a href="#windowworker">WindowWorker</a></code> <var
322     title="">worker</var> は、<dfn id=the-workers0>労働者のポート</dfn>の並びを持ちます。
323     これは、他のポートと絡められており、かつ <code title=dom-MessagePort-ownerWindow>ownerWindow</code>
324     が <var
325     title="">worker</var> であるポートを1つ (だけ) 持つような <code>MessagePort</code>
326     オブジェクトすべてを含むものです。この並びは<a href="#queue">事象の待ち行列</a>中で未決の事象中にある
327 wakaba 1.16 <code>MessagePort</code> オブジェクトすべてを含みます。</span><hr>
328    
329     <p>A worker is said to be a <dfn id=front-line>front-line worker</dfn> if
330     at least one of the <a href="#the-workers0">the worker's ports</a> has an
331     entangled <code>MessagePort</code> whose <code
332     title=dom-MessagePort-ownerWindow>ownerWindow</code> is a
333     <code>WindowBrowsingContext</code> object.
334    
335     <p>A worker is said to be a <dfn id=needed>needed worker</dfn> if either:
336    
337     <ul>
338     <li>it is a <a href="#front-line">front-line worker</a>, or
339    
340     <li>at least one of the <a href="#the-workers0">the worker's ports</a> has
341     an entangled <code>MessagePort</code> whose <code
342     title=dom-MessagePort-ownerWindow>ownerWindow</code> is a <code><a
343     href="#windowworker">WindowWorker</a></code> object that is itself a <a
344     href="#needed">needed worker</a>.
345     </ul>
346    
347     <hr>
348    
349     <p>A worker is said to be an <dfn id=active>active front-line worker</dfn>
350     if at least one of the <a href="#the-workers0">the worker's ports</a> has
351     both an <code title=dom-MessagePort-active>active</code> attribute whose
352     value is true and an entangled <code>MessagePort</code> whose <code
353     title=dom-MessagePort-ownerWindow>ownerWindow</code> is a
354     <code>WindowBrowsingContext</code> object.
355    
356     <p>A worker is said to be an <dfn id=active0>active needed worker</dfn> if
357     either:
358    
359     <ul>
360     <li>it is an <a href="#active">active front-line worker</a>, or
361    
362     <li>at least one of the <a href="#the-workers0">the worker's ports</a> has
363     an entangled <code>MessagePort</code> whose <code
364     title=dom-MessagePort-ownerWindow>ownerWindow</code> is a <code><a
365     href="#windowworker">WindowWorker</a></code> object that is itself an <a
366     href="#active0">active needed worker</a>.
367     </ul>
368    
369     <h3 id=processing><span class=ja-translation lang=ja><span class=secno>2.5 </span>処理モデル</span></h3>
370 wakaba 1.12
371     <p><span class=ja-translation lang=ja>利用者エージェントが、<span>URL</span> <var
372     title="">url</var>、閲覧文脈 <var title="">owner browsing
373     context</var>、<code>Document</code> <var title="">owner
374     document</var> のスクリプトに対する、 <var
375 wakaba 1.14 title="">name</var> と名付けられた<dfn id=run-a>労働者を走らせる</dfn>、
376 wakaba 1.12 という時には、利用者エージェントは、次の段階を、完全に分離された並列実行環境で実行しなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ol>
377     <li>
378     <p><span class=ja-translation lang=ja><var title="">url</var> で識別される資源を取って来ようと試みます。</span></p>
379    
380 wakaba 1.14 <p><span class=ja-translation lang=ja>この試みが失敗した場合、これらの段階を停止し、この段階を呼び出した算法が定義する<a
381     href="#worker" title="worker creation failed">誤り取扱段階</a>を呼び出します。</span></p>
382 wakaba 1.12
383     <p><span class=ja-translation lang=ja>この試みが成功した場合、 <var title="">script</var>
384     を得られた資源とします。</span></p>
385    
386     <p class=note><span class=ja-translation lang=ja><code>script</code> 要素と同様に、スクリプトの MIME 型は無視します。
387     <code>script</code> 要素とは異なり、
388     型を上書きする方法はありません。スクリプトは常に JavaScript
389     と仮定します。</span></p>
390 wakaba 1.11 <!-- XXX people will complain about
391     this. I guess we might want to examine the MIME type... -->
392    
393    
394     <li>
395 wakaba 1.16 <p>Create a new <code><a href="#windowworker">WindowWorker</a></code>
396     object, <var title="">worker</var>.</p>
397 wakaba 1.9
398     <li>
399 wakaba 1.16 <p>Set the <code title=dom-WindowWorker-URL><a href="#url">URL</a></code>
400     attribute of <var title="">worker</var> to the value of <var
401     title="">url</var>.</p>
402 wakaba 1.13
403     <li>
404 wakaba 1.16 <p>Set the <code title=dom-WindowWorker-name><a
405     href="#name">name</a></code> attribute of <var title="">worker</var> to
406     the value of <var title="">name</var>.</p>
407 wakaba 1.9
408     <li>
409 wakaba 1.16 <p>Let <var title="">script</var>'s <span>script execution context</span>
410     (and thus also <span>global object</span>) be <var
411     title="">worker</var>.</p>
412 wakaba 1.9
413     <li>
414 wakaba 1.12 <p><span class=ja-translation lang=ja><var title="">script</var> のスクリプト閲覧文脈を <var title="">owner browsing context</var>
415     とします。</span></p>
416 wakaba 1.9
417     <li>
418 wakaba 1.12 <p><span class=ja-translation lang=ja><var title="">script</var> のスクリプト文書文脈を <var title="">owner document</var>
419     とします。</span></p>
420 wakaba 1.9
421     <li>
422 wakaba 1.16 <p>Invoke the <a href="#success" title="worker creation
423     succeeded">success steps</a> defined by the algorithm that called this
424     one.</p>
425    
426     <p class=note>This will usually add an event to the <a
427     href="#queue">queue of events</a>. If it does, that event will have a
428     <code>MessagePort</code> and thus the list of <a
429     href="#the-workers0">the worker's ports</a> will not be empty. If it
430     doesn't, then the next step will set the <var title="">worker</var>
431     object's <code title=dom-WindowWorker-closing><a
432     href="#closing">closing</a></code> attribute to true.</p>
433    
434     <li>
435     <p>Start monitoring <var title="">worker</var>, such that as soon as the
436     worker stops being a <a href="#needed">needed worker</a>, the <var
437     title="">worker</var> object's <code title=dom-WindowWorker-closing><a
438     href="#closing">closing</a></code> attribute is set to true.</p>
439 wakaba 1.13
440     <li>
441 wakaba 1.16 <p>Start monitoring <var title="">worker</var>, such that whenever the
442     <var title="">worker</var> object's <code
443 wakaba 1.13 title=dom-WindowWorker-closing><a href="#closing">closing</a></code>
444 wakaba 1.16 attribute is false and the worker is not an <a href="#active0">active
445     needed worker</a>, the user agent suspends execution of script in that
446     worker until such time as either the <code
447 wakaba 1.13 title=dom-WindowWorker-closing><a href="#closing">closing</a></code>
448 wakaba 1.16 attribute switches to true or the worker becomes an <a
449     href="#active0">active needed worker</a>.</p>
450 wakaba 1.11
451     <li>
452 wakaba 1.14 <p><span class=ja-translation lang=ja><var title="">script</var> を、返るか、例外の捕獲に失敗するか、後述の「<a href="#kill-a">労働者を殺す</a>」算法により早々に停止させられるかのいずれかまで走らせます。</span></p>
453 wakaba 1.11
454 wakaba 1.14 <p class=note><span class=ja-translation lang=ja>スクリプトが「<a href="#kill-a">労働者を殺す</a>」算法で停止させられる場合には、
455     その同じ算法が、次の段階で、<a href="#queue">事象の待ち行列</a>には唯一
456     <code title=message-unload>unload</code> 事象だけが含まれるようにします。
457     しかし、この事象が無視された場合には、これは、ポートがごみ収集される際に真となります。</span></p>
458 wakaba 1.9
459     <li>
460 wakaba 1.16 <p><i>Event loop</i>: Wait until either there is an event in the <a
461     href="#queue">queue of events</a> associated with <var
462     title="">worker</var> or the <var title="">worker</var> object's <code
463 wakaba 1.13 title=dom-WindowWorker-closing><a href="#closing">closing</a></code>
464 wakaba 1.16 attribute is set to true.</p>
465 wakaba 1.9
466     <li>
467 wakaba 1.14 <p><span class=ja-translation lang=ja><a href="#queue">事象の待ち行列</a>中で最古の事象か呼び戻しがあれば、
468     これを発送します。この事象の取扱いや呼び戻しの実行は、後述の「<a href="#kill-a">労働者を殺す</a>」
469     算法により、早々に停止させられるかもしれません。</span></p>
470 wakaba 1.9
471     <li>
472 wakaba 1.16 <p>If there are any more events in the <a href="#queue">queue of
473     events</a> or if the <var title="">worker</var> object's <code
474 wakaba 1.13 title=dom-WindowWorker-closing><a href="#closing">closing</a></code>
475 wakaba 1.16 attribute is set to false, then jump back to the step above labeled
476     <i>event loop</i>.</p>
477 wakaba 1.9
478     <li>
479 wakaba 1.14 <p class=big-issue><span class=ja-translation lang=ja>タイマー、休憩、 XMLHttpRequest、データベース取引、その他を殺さなければ<em class=rfc2119 title="MUST">なりません</em>。
480     ポートを非活性化し、ほどかなければ<em class=rfc2119 title="MUST">なりません</em> (unload を送りません)。</span></p>
481 wakaba 1.9 </ol>
482    
483     <hr>
484    
485 wakaba 1.14 <p><span class=ja-translation lang=ja>利用者エージェントが<dfn id=kill-a>労働者を殺す</dfn>という時には、
486     利用者エージェントは、次の段階を労働者の主たるループ (先に定義した「<a
487     href="#run-a">労働者を走らせる</a>」処理モデル) と並列に走らせなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ol>
488     <li>
489     <p><span class=ja-translation lang=ja>事象名が <code
490     title=event-unload>unload</code> であり、
491     泡立たず、取消可能ではない
492     <code>Event</code> オブジェクトを作成し、労働者の <code><a
493     href="#windowworker">WindowWorker</a></code>
494     オブジェクトの<a
495     href="#queue">事象の待ち行列</a>に追加し、 <code><a
496     href="#windowworker">WindowWorker</a></code>
497     オブジェクト自体を対象とします。</span><li>
498     <p><span class=ja-translation lang=ja>労働者の <code><a href="#windowworker">WindowWorker</a></code>
499     オブジェクトの
500     <code title=dom-WindowWorker-closing><a
501     href="#closing">closing</a></code>
502     属性を真に設定します。</span><li>
503     <p><span class=ja-translation lang=ja>利用者エージェント定義の時間、待ちます。先に定義した「<a href="#run-a">労働者を走らせる</a>」
504     処理モデルが <code title=event-unload>unload</code>
505     事象に登録された事象聴取器を即座に走らせ始める場合には、この時間は零である<em class=rfc2119 title="SHOULD NOT">べきではありません</em>。
506     というのは、予期せず停止させる時に浄化するために <code
507     title=event-unload>unload</code> 事象を使えるようにするのが目的だからです。</span><li>
508     <p><span class=ja-translation lang=ja><a href="#queue">事象の待ち行列</a>中にこの算法が追加した
509     <code title=event-unload>unload</code>
510     事象以外の事象が存在する場合には、それらを発送せずに捨てます。</span><li>
511     <p><span class=ja-translation lang=ja>この算法が追加した <code title=event-unload>unload</code>
512     事象がまだ発送されていなければ、現在労働者中で走っているスクリプトを停止します。</span><li>
513     <p><span class=ja-translation lang=ja>利用者エージェント定義の時間、待ちます。</span><li>
514     <p><span class=ja-translation lang=ja>現在労働者中で走っているスクリプト (スクリプトが走っているとすると、
515     これは <code
516     title=event-unload>unload</code>
517     事象の取扱器です。) を停止します。</span></ol>
518 wakaba 1.9
519 wakaba 1.16 <p>User agents may invoke the "<a href="#kill-a">kill a worker</a>"
520     processing model on a worker at any time, e.g. in response to user
521     requests, in response to CPU quota management, or when a worker stops
522     being a <a href="#needed">needed worker</a> if the worker continues
523     executing even after its <code title=dom-WindowWorker-closing><a
524     href="#closing">closing</a></code> attribute was set to true.
525    
526     <hr>
527    
528     <p>When a script invokes the <dfn id=import
529     title=dom-WindowWorker-import><code>import(<var
530     title="">url</var>)</code></dfn> method on a <code><a
531     href="#windowworker">WindowWorker</a></code> object, the user agent must
532     run the following steps:
533    
534     <ol>
535     <li>
536     <p><span title="resolve a url">Resolve</span> the <var title="">url</var>
537     argument.
538    
539     <li>
540     <p><span class=ja-translation lang=ja>これが失敗した場合、 <code>SYNTAX_ERR</code>
541     例外を投げます。</span><li>
542     <p><span class=ja-translation lang=ja>得られた絶対 URL の起源がメソッドを呼び出したスクリプトの起源と<span title="same origin">同じ</span>でない場合、
543     保安性例外を投げます。</span><li>
544     <p>Attempt to <span>fetch</span><!-- XXX --> the resource identified by
545     the resulting <span>absolute URL</span>.</p>
546    
547     <p>If the attempt fails, return false and abort these steps.</p>
548    
549     <p><span class=ja-translation lang=ja>この試みが成功した場合、 <var title="">script</var>
550     を得られた資源とします。</span></p>
551    
552     <p class=note>As with the initial script, the script here is always
553     assumed to be JavaScript, regardless of the MIME type.</p>
554     <!-- XXX -->
555    
556     <li>
557     <p>Let <var title="">script</var>'s <span>script execution
558     context</span>, <span>script browsing context</span>, and <span>script
559     document context</span> be the same as for the script that was executed
560     by the <a href="#run-a">run a worker</a> processing model for this
561     worker.</p>
562    
563     <li>
564     <p><span class=ja-translation lang=ja><var title="">script</var> を、返るか、例外の捕獲に失敗するか、後述の「<a href="#kill-a">労働者を殺す</a>」算法により早々に停止させられるかのいずれかまで走らせます。</span></p>
565    
566     <p>If an exception was raised or if the script was prematurely aborted,
567     then abort these steps, letting the exception or aborting continue to be
568     processed by the script that called the <code
569     title=dom-WindowWorker-import><a href="#import">import()</a></code>
570     method.</p>
571    
572     <p>Otherwise, return true.</p>
573     </ol>
574    
575 wakaba 1.11 <hr>
576    
577 wakaba 1.14 <p><span class=ja-translation lang=ja>スクリプトが <code><a href="#windowworker">WindowWorker</a></code>
578     オブジェクトで <dfn id=close
579     title=dom-WindowWorker-close><code>close()</code></dfn>
580 wakaba 1.15 メソッドを呼び出した場合、利用者エージェントは、次の段階を走らせなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ol>
581 wakaba 1.11 <li>
582 wakaba 1.15 <p><span class=ja-translation lang=ja>事象名が <code
583     title=event-unload>unload</code> であり、
584     泡立たず、取消可能ではない
585     <code>Event</code> オブジェクトを作成し、 <code><a
586     href="#windowworker">WindowWorker</a></code>
587     オブジェクトの<a
588     href="#queue">事象の待ち行列</a>に追加し、 <code><a
589     href="#windowworker">WindowWorker</a></code>
590     オブジェクト自体を対象とします。</span><li>
591 wakaba 1.14 <p><span class=ja-translation lang=ja>労働者の <code><a href="#windowworker">WindowWorker</a></code>
592     オブジェクトの
593     <code title=dom-WindowWorker-closing><a
594     href="#closing">closing</a></code>
595     属性を真に設定します。</span><li>
596 wakaba 1.15 <p><span class=ja-translation lang=ja>他のポートと絡められており、かつ <code
597     title=dom-MessagePort-ownerWindow>ownerWindow</code>
598     がメソッドの呼び出された <code><a
599     href="#windowworker">WindowWorker</a></code> オブジェクトであるポートを1つ
600     (だけ) 持つような <code>MessagePort</code> について、それぞれ次の部分段階を走らせます。</span></p>
601 wakaba 1.11
602     <ol>
603     <li>
604 wakaba 1.15 <p><span class=ja-translation lang=ja>2つのポートをほどきます。</span><li>
605     <p><span class=ja-translation lang=ja>両ポートの <code title=dom-MessagePort-active>active</code>
606     属性を偽に設定します。</span><li>
607     <p><span class=ja-translation lang=ja>次の利用可能な機会、何らかのスクリプトが実行し終えた後に、
608     他方のポート (<code title=dom-MessagePort-ownerWindow>ownerWindow</code>
609     が <code title=dom-WindowWorker-close><a
610     href="#close">close()</a></code>
611     メソッドが呼ばれた <code><a href="#windowworker">WindowWorker</a></code>
612     オブジェクトではない方) で <code title=event-unload>unload</code>
613     と呼ばれる単純事象を発火します。</span></ol>
614 wakaba 1.11 </ol>
615    
616 wakaba 1.16 <h3 id=creating><span class=ja-translation lang=ja><span class=secno>2.6 </span>労働者の作成</span></h3>
617 wakaba 1.9
618     <pre
619     class=idl>[NoInterfaceObject] interface <dfn id=windowworkercreators>WindowWorkerCreators</dfn> {
620 wakaba 1.13 <span>MessagePort</span> <a href="#createworker" title=dom-WindowWorkerCreators-createWorker>createWorker</a>(in DOMString scriptURL);
621     <span>MessagePort</span> <a href="#createnamedworker" title=dom-WindowWorkerCreators-createNamedWorker>createNamedWorker</a>(in DOMString name, in DOMString scriptURL);
622 wakaba 1.9 };</pre>
623    
624 wakaba 1.15 <p><span class=ja-translation lang=ja><code>Window</code> 界面を実装するオブジェクトは、 <code><a href="#windowworkercreators">WindowWorkerCreators</a></code> 界面も実装しなければ<em class=rfc2119 title="MUST">なりません</em>。</span><hr>
625 wakaba 1.13
626 wakaba 1.15 <p><span class=ja-translation lang=ja>利用者エージェントは、 <dfn id=createworker title=dom-WindowWorkerCreators-createWorker><code>createWorker(<var title="">scriptURL</var>)</code></dfn> メソッドが呼び出された時、
627     次の段階を走らせなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ol>
628 wakaba 1.13 <li>
629 wakaba 1.15 <p><span class=ja-translation lang=ja><var
630     title="">scriptURL</var> 引数を<span title="resolve a url">解決</span>します。</span><li>
631     <p><span class=ja-translation lang=ja>これが失敗した場合、 <code>SYNTAX_ERR</code>
632     例外を投げます。</span><li>
633     <p><span class=ja-translation lang=ja>得られた絶対 URL の起源がメソッドを呼び出したスクリプトの起源と<span title="same origin">同じ</span>でない場合、
634     保安性例外を投げます。</span><li>
635     <p><span class=ja-translation lang=ja>得られた絶対 URL から、名前が空文字列である<a href="#create">労働者を作成</a>します。</span><li>
636     <p><span class=ja-translation lang=ja><a
637     href="#create">労働者を作成</a>する算法が返した
638     <code>MessagePort</code> オブジェクトを返します。</span></ol>
639 wakaba 1.11
640     <hr>
641    
642 wakaba 1.15 <p><span class=ja-translation lang=ja>利用者エージェントは、 <dfn id=createnamedworker title=dom-WindowWorkerCreators-createNamedWorker><code>createNamedWorker(<var title="">name</var>, <var title="">scriptURL</var>)</code></dfn> メソッドが呼び出された時、
643     次の段階を走らせなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ol>
644 wakaba 1.13 <li>
645 wakaba 1.15 <p><span class=ja-translation lang=ja><var
646     title="">scriptURL</var> 引数を<span title="resolve a url">解決</span>します。</span><li>
647     <p><span class=ja-translation lang=ja>これが失敗した場合、 <code>SYNTAX_ERR</code>
648     例外を投げます。</span><li>
649     <p><span class=ja-translation lang=ja>得られた絶対 URL の起源がメソッドを呼び出したスクリプトの起源と<span title="same origin">同じ</span>でない場合、
650     保安性例外を投げます。</span><li>
651     <p><span class=ja-translation lang=ja><var title="">name</var> 引数が空文字列の場合、得られた絶対 URL から、
652     名前が空文字列である<a
653     href="#create">労働者を作成</a>し、<a
654     href="#create">労働者を作成</a>する算法が返した <code>MessagePort</code>
655     オブジェクトを返します。そして、これらの段階を停止します。</span><li>
656     <p><span class=ja-translation lang=ja><code title=dom-WindowWorker-closing><a
657     href="#closing">closing</a></code> 属性が偽で、 <code
658     title=dom-WindowWorker-name><a href="#name">name</a></code>
659     属性が <var title="">name</var> 引数と全く等しく、 <code
660     title=dom-WindowWorker-URL><a href="#url">URL</a></code>
661     属性が得られた絶対 URL と同じ起源を持つ労働者が存在する場合、
662     次の部分段階を走らせます。</span></p>
663 wakaba 1.13
664     <ol>
665     <li>
666 wakaba 1.15 <p><span class=ja-translation lang=ja>当該労働者の <code title=dom-WindowWorker-URL><a
667     href="#url">URL</a></code>
668     属性が得られた絶対 URL と全く等しくはない場合、 <code>URL_MISMATCH_ERR</code>
669     例外を投げ、これらの段階を停止します。 <span
670     class=big-issue>code 19</span></span><li>
671     <p><span class=ja-translation lang=ja>メソッドを呼び出したスクリプトのスクリプト実行文脈が所有する新しい <code>MessagePort</code>
672     オブジェクトを作成します。</span><li>
673     <p><span class=ja-translation lang=ja>そのポートを返します。</span><li>
674 wakaba 1.16 <p>Asynchronously, <a href="#connect" title="connect to a
675     worker">connect</a> to this preexisting worker, with the newly created
676     port.
677     </ol>
678 wakaba 1.15
679     <p><span class=ja-translation lang=ja>そうでない場合、得られた絶対 URL から、名前が <var
680     title="">name</var> 引数の値である<a href="#create">労働者を作成</a>し、
681     <a href="#create">労働者を作成</a>する算法が返した <code>MessagePort</code>
682     オブジェクトを返します。</span></p>
683 wakaba 1.11 </ol>
684    
685     <hr>
686    
687 wakaba 1.15 <p><span class=ja-translation lang=ja>メソッド呼び出しの文脈において、 URL <var title="">url</var> から名前 <var
688     title="">name</var> の<dfn id=create>労働者を作成</dfn>する段階は、次の通りです。</span><ol>
689     <li>
690     <p><span class=ja-translation lang=ja>メソッドを呼び出したスクリプトのスクリプト実行文脈が所有する新しい <code>MessagePort</code>
691     オブジェクトを作成します。</span><li>
692     <p><span class=ja-translation lang=ja>そのポートを返します。</span><li>
693     <p><span class=ja-translation lang=ja>並列実行文脈において (つまり、別のスレッドやプロセスや同様の構造において)、 <var title="">owner browsing
694     context</var> をメソッドを呼び出したスクリプトのスクリプト閲覧文脈、 <var title="">owner
695     document</var> をメソッドを呼び出したスクリプトのスクリプト文書文脈として、
696     URL
697     <var
698     title="">url</var> のスクリプトのための <var
699     title="">name</var> という名前の<a href="#run-a">労働者を走らせます</a>。</span></p>
700    
701 wakaba 1.16 <p>If that algorithm invokes the steps for <dfn id=success title="worker
702     creation succeeded">success steps</dfn>, then <a href="#connect"
703     title="connect to a worker">connect</a> to this new worker, with the
704     newly created port.</p>
705 wakaba 1.15
706     <p><span class=ja-translation lang=ja>そうでない場合、<dfn id=worker>労働者作成が失敗</dfn>した場合、次の利用可能な機会、
707     何らかのスクリプトが実行し終えた後に、新しく作成されたポートで
708     <code title=event-error>error</code>
709     と呼ばれる単純事象を発火します。</span></p>
710 wakaba 1.11 </ol>
711    
712     <hr>
713    
714 wakaba 1.16 <p>The steps to <dfn id=connect>connect to a worker</dfn> given a
715     <code>MessagePort</code> object <var title="">port</var> are as follows:
716    
717     <ol>
718 wakaba 1.13 <li>
719 wakaba 1.15 <p><span class=ja-translation lang=ja><var title="">port</var> がごみ収集されている場合、あるいは <var
720     title="">port</var> の <code
721     title=dom-MessagePort-ownerWindow>ownerWindow</code> の活性文書が既に
722     <var title="">port</var> が作成された時と同じ <code>Document</code>
723     オブジェクトでない場合には、何もしません。これらの段階を停止します。
724     労働者が丁度作成されたばかりの場合には、これはすぐに殺されることになります。</span></p>
725 wakaba 1.13
726     <li>
727 wakaba 1.15 <p><span class=ja-translation lang=ja>労働者の <code><a href="#windowworker">WindowWorker</a></code>
728     が所有する新しい <code>MessagePort</code> object</span>
729     オブジェクトを作成します。</span><li>
730     <p><span class=ja-translation lang=ja>この新しく作成されたポートとこれらの段階に渡されたポート <var
731     title="">port</var> を絡めます。</span><li>
732     <p><span class=ja-translation lang=ja>両ポートの
733     <code title=dom-MessagePort-active>active</code>
734     属性を真に設定します。</span><li>
735     <p><span class=ja-translation lang=ja>次の利用可能な機会、何らかのスクリプトが実行し終えた後に、
736     <var title="">port</var> において <code title=event-load>load</code>
737     と呼ばれる単純事象を発火します。</span><li>
738 wakaba 1.16 <p>Create an event that uses the <code>MessageEvent</code> interface,
739     with the name <code title=event-connect>connect</code>, which does not
740     bubble, is cancelable, has no default action, has a <code
741     title=dom-MessageEvent-data>data</code> attribute whose value is the
742     empty string and has a <code
743     title=dom-MessageEvent-messagePort>messagePort</code> attribute whose
744     value is the newly created port, and add it to the worker's <code><a
745     href="#windowworker">WindowWorker</a></code> object's <a
746     href="#queue">queue of events</a>, targetted at the <code><a
747     href="#windowworker">WindowWorker</a></code> object itself.
748     </ol>
749 wakaba 1.15
750     <h2 id=apis-available><span class=ja-translation lang=ja><span class=secno>3. </span>労働者が利用可能な API</span></h2>
751    
752 wakaba 1.16 <p>There must be no interface objects and constructors available in the
753     global scope of scripts whose <span>script execution context</span> is a
754     <code><a href="#windowworker">WindowWorker</a></code> object except for
755     the following:
756    
757     <ul>
758     <li>
759     <p><code>XMLHttpRequest</code> and all interface objects and constructors
760     defined by the XMLHttpRequest specifications, except that the
761     <span>document response entity body</span> must always be null. <a
762     href="#refsXHR">[XHR]</a>
763    
764     <li>
765     <p>The <code>WebSocket</code> interface object and constructor.
766    
767     <li>
768     <p>The <code>MessageChannel</code> interface object and constructor.
769     </ul>
770    
771     <hr>
772    
773 wakaba 1.15 <p><span class=ja-translation lang=ja><code><a
774     href="#windowworker">WindowWorker</a></code> 事象を実装するオブジェクトは、
775     次の界面も実装しなければ<em class=rfc2119 title="MUST">なりません</em>。</span><ul>
776 wakaba 1.13 <li>
777 wakaba 1.15 <p><span class=ja-translation lang=ja><code>Window</code> 界面と、この界面を実装するオブジェクトが実装することを<em class=rfc2119 title="REQUIRED">要求</em>されている界面。
778     これには、次の界面が含まれます。</span></p>
779 wakaba 1.13
780     <ul>
781 wakaba 1.15 <li><span class=ja-translation lang=ja><code>WindowTimers</code> 界面</span><li><span class=ja-translation lang=ja><code><a href="#windowworkercreators">WindowWorkerCreators</a></code> 界面</span></ul>
782 wakaba 1.13
783 wakaba 1.15 <li><span class=ja-translation lang=ja><code>EventTarget</code> 界面。
784     </span></ul>
785 wakaba 1.9
786 wakaba 1.16 <div class=note>
787     <p>The following APIs are available in workers due to their being defined
788     on the <code>Window</code> object or one of the interfaces that are
789     required to be implemented by objects implementing that interface:</p>
790    
791     <ul>
792     <li>The <code title=dom-showNotification>showNotification()</code> APIs.
793    
794     <li>The <code title=dom-localStorage>localStorage</code> object and
795     related name/value pair storage APIs.
796    
797     <li>The <code title=dom-openDatabase>openDatabase()</code> method and the
798     related SQL database API.
799     </ul>
800     </div>
801    
802     <p class=big-issue>Need to define a sync database API.
803    
804     <p class=big-issue>May need to define a browser sniffing API (like
805     window.navigator).</p>
806     <!-- XXX ApplicationCache -->
807     <!-- XXX a way to set cookies on the URL for the script -->
808     <!-- XXX debugging: void log(in DOMString s); // log to console -->
809     <!-- XXX debugging: onerror -->
810    
811     <hr>
812    
813     <p>The DOM APIs (<code>Node</code> objects, <code>Document</code> objects,
814     etc) are not available to workers in this version of this specification.
815    
816 wakaba 1.9 <h2 class=no-num id=references><span class=ja-translation lang=ja>参考文献</span></h2>
817 wakaba 1.1
818     <p class=big-issue><span class=ja-translation lang=ja>この章は将来の仕様案で執筆します。</span><h2 class=no-num id=acknowledgements><span class=ja-translation lang=ja>謝辞</span></h2>
819     <!-- ACKS -->
820    
821 wakaba 1.16 <p><span class=ja-translation lang=ja>Maciej Stachowiak, Mike Smith,, Philip Taylor の有用かつ重要なコメントに感謝します。</span><p><span class=ja-translation lang=ja>Gears チームの方々にも非常に感謝します。
822 wakaba 1.14 Gears チームの方々はこの技術を開拓し、その経験はこの仕様書にも多大な影響を与えています。
823     </span>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24