WorkerGlobalScope
=================

**`WorkerGlobalScope`** はウェブワーカー API のインターフェイスで、あらゆるワーカーのスコープを表します。ワーカーには閲覧コンテキストがありません。このスコープには、通常 `Window` オブジェクトによって伝えられる情報が含まれます。この場合では、イベントハンドラーやコンソール、関連する `WorkerNavigator` オブジェクトのことです。ぞれぞれの `WorkerGlobalScope` は独自のイベントループを持ちます。

このインターフェイスは通常、 それぞれのワーカーの種類に合わせて特化されます。 `DedicatedWorkerGlobalScope` は専用ワーカーため、 `SharedWorkerGlobalScope` は共有ワーカーのため、 `ServiceWorkerGlobalScope` はサービスワーカーのためのものです。 `self` プロパティはそれぞれのコンテキストに特化したスコープを返します。

EventTarget

WorkerGlobalScopeインスタンスプロパティ
-----------

*このインターフェイスには、 `EventTarget` インターフェイスから継承したプロパティがあります。*

### 標準プロパティ

`WorkerGlobalScope.navigator` 読取専用 

ワーカーに関連した `WorkerNavigator` を返します。これは特化された navigator オブジェクトであり、ほぼ閲覧スコープの `Navigator` のサブセットですが、ワーカーに適合したものです。

`WorkerGlobalScope.self` 読取専用 

`WorkerGlobalScope` 自身の参照を返します。ほとんどの場合、 `DedicatedWorkerGlobalScope`, `SharedWorkerGlobalScope`, `ServiceWorkerGlobalScope` のような特化されたスコープです。

`WorkerGlobalScope.location` 読取専用 

ワーカーに関連した `WorkerLocation` を返します。これは特化された location オブジェクトであり、ほぼ閲覧スコープのの `Location` のサブセットですが、ワーカーに適合したものです。

`WorkerGlobalScope.fonts` 読取専用 

このワーカーに関連付けられた `FontFaceSet` を返します。

### 非標準プロパティ

`WorkerGlobalScope.performance` (en-US) 読取専用  
Non-standard

ワーカーに関連した `Performance` を返す。これは、通常の performance オブジェクトですが、ワーカーで利用可能なプロパティやメソッドのみを持つサブセットであることが異なります。

`WorkerGlobalScope.console` 読取専用  
Non-standard

ワーカーに関連付けられた `console` オブジェクトを返します。

### 他の場所で実装されているインスタンスプロパティ

`caches` 読取専用 

現在のコンテキストに関連付けられた `CacheStorage` オブジェクトを返します。このオブジェクトは、オフラインで使用するための資産の保存や、リクエストに対するカスタムレスポンスの生成といった機能を実現します。

`indexedDB` 読取専用 

アプリケーションが索引付きデータベースの機能に非同期でアクセスするための機構を提供し、 `IDBFactory` オブジェクトを返します。

`isSecureContext` 読取専用 

現在のコンテキストが安全か (`true`) そうでないか (`false`) を示す論理値を返します。

`origin` 読取専用 

グローバルオブジェクトのオリジンを文字列としてシリアライズしたものを返します。

`scheduler` (en-US) 読取専用 

 現在のコンテキストに関連付けられた `Scheduler` (en-US) オブジェクトを返します。
 これは優先度付きタスクスケジューリング API (en-US) を使用する入口です。


### イベント

`error`

エラーが発生したときに発行されます。

`offline`

ブラウザーがネットワークへのアクセスを失ったときに発行され、 `navigator.onLine` の値が `false` に切り替わります。

`online`

ブラウザーがネットワークへアクセスできるようになったときに発行され、 `navigator.onLine` の値が `true` に切り替わります。

`languagechange`

ユーザーの優先言語が変更された際に、グローバル/ワーカースコープで発行されます。

`rejectionhandled` 
Non-standard

`Promise` の拒否イベントが処理された際に発行されます。

`unhandledrejection` 
Non-standard

`Promise` の拒否イベントが処理されなかったときに発行されます。

インスタンスメソッド
----------

*このインターフェイスは、`EventTarget` インターフェイスから継承したメソッドがあります。*

### 標準メソッド

`WorkerGlobalScope.importScripts()`

ワーカーののスコープに 1 つ以上のスクリプトをインポートします。カンマ区切りで任意の数を指定できます。例：`importScripts('foo.js', 'bar.js');`

### 非標準メソッド

`WorkerGlobalScope.dump()` 
非推奨

Non-standard

標準出力、たとえば端末にメッセージを書き込むことができます。これは Firefox の `window.dump` ですが、ワーカーのためのものです。

### 他で実装されているインスタンスメソッド

`atob()`

base-64 エンコーディングを使用してエンコードされた文字データをデコードする。

`btoa()`

バイナリーデータ文字列から base-64 エンコードされた ASCII 文字列を生成する。

`clearInterval()`

`setInterval()` を使用して設定された繰り返し処理をキャンセルする。

`clearTimeout()`

`setTimeout()` を使用して設定された繰り返し処理をキャンセルする。

`createImageBitmap()`

さまざまな画像ソースを受け入れ、プロミス (`Promise`) を返します。これは `ImageBitmap` に解決されます。オプションとして、ソースを *(sx, sy)* を原点とする幅 sw, 高さ sh のピクセル矩形に切り詰めます。

`fetch()`

リソースのネットワークからの取得プロセスを開始します。

`setInterval()`

指定したミリ秒周期で実行されるように関数をスケジュールします。

`setTimeout()`

指定された時間内に実行されるように関数をスケジューリングします。

`reportError()`

処理されない例外をエミュレートして、スクリプトのエラーを報告します。

例
-

コード内で `WorkerGlobalScope` に直接アクセスすることはありません。しかし、プロパティやメソッドが `DedicatedWorkerGlobalScope` や `SharedWorkerGlobalScope` のような特化されたグローバルスコープに継承されています。たとえば、ワーカーがほかのスクリプトをインポートした場合、ワーカースコープの `navigator` オブジェクトの内容を以下の 2 行で表示することができます。


```js
importScripts("foo.js");
console.log(navigator);
```


**メモ:** ワーカースクリプトのグローバルスコープは、実行しているワーカーのグローバルスコープ（`DedicatedWorkerGlobalScope` やその他）と、 `WorkerGlobalScope` からメソッドやプロパティなどを継承しているすべてのワーカーのグローバルスコープで有効であるため、上記のように親オブジェクトを指定しなくとも実行できます。

仕様書
---

| Specification |
| --- |
| HTML Standard # the-workerglobalscope-common-interface |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* その他のグローバルオブジェクトインターフェイス: `Window`、 `DedicatedWorkerGlobalScope`、 `SharedWorkerGlobalScope`、 `ServiceWorkerGlobalScope`
* その他のワーカー関連インターフェイス: `Worker`、`WorkerLocation`、 `WorkerGlobalScope`、 `ServiceWorkerGlobalScope`
* ウェブワーカーの使用