aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/serviceworkerglobalscope
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/api/serviceworkerglobalscope
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/ja/web/api/serviceworkerglobalscope')
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/activate_event/index.html89
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/caches/index.html59
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/clients/index.html109
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/index.html153
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/install_event/index.html96
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/message_event/index.html100
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/notificationclick_event/index.html112
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onactivate/index.html121
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onfetch/index.html86
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/oninstall/index.html127
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onmessage/index.html61
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onnotificationclick/index.html122
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onnotificationclose/index.html60
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onpush/index.html84
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/onpushsubscriptionchange/index.html64
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/push_event/index.html93
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/pushsubscriptionchange_event/index.html116
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/registration/index.html108
-rw-r--r--files/ja/web/api/serviceworkerglobalscope/skipwaiting/index.html122
19 files changed, 1882 insertions, 0 deletions
diff --git a/files/ja/web/api/serviceworkerglobalscope/activate_event/index.html b/files/ja/web/api/serviceworkerglobalscope/activate_event/index.html
new file mode 100644
index 0000000000..da64121d50
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/activate_event/index.html
@@ -0,0 +1,89 @@
+---
+title: 'ServiceWorkerGlobalScope: activate イベント'
+slug: Web/API/ServiceWorkerGlobalScope/activate_event
+tags:
+ - API
+ - Reference
+ - Service Workers
+ - ServiceWorkerGlobalScope
+ - activate
+ - events
+translation_of: Web/API/ServiceWorkerGlobalScope/activate_event
+---
+<p>{{DefaultAPISidebar("Service Workers API")}}</p>
+
+<p><span class="seoSummary">{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>activate</code></strong> イベントは、{{domxref("ServiceWorkerRegistration")}} が新しいアクティブワーカー({{domxref("ServiceWorkerRegistration.active")}} worker)を取得すると発生します。</span></p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("ExtendableEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td>{{domxref("ServiceWorkerGlobalScope.onactivate")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>次のスニペットは、<code>activate</code> イベントハンドラーを使用してキャッシュをアップグレードする方法を示しています。</p>
+
+<pre class="brush: js">globalScope.addEventListener('activate', function(event) {
+ var cacheWhitelist = ['v2'];
+
+ event.waitUntil(
+ caches.forEach(function(cache, cacheName) {
+ if (cacheWhitelist.indexOf(cacheName) == -1) {
+ return caches.delete(cacheName);
+ }
+ })
+ );
+});</pre>
+
+<p>次のように {{domxref("ServiceWorkerGlobalScope.onactivate")}} プロパティを使用してイベントハンドラーを設定することもできます。</p>
+
+<pre class="brush: js">globalScope.onactivate = function(event) {
+ ...
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-activate-event', 'activate')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.activate_event")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><code><a href="/ja/docs/Web/API/ServiceWorkerGlobalScope/install">install</a></code> イベント</li>
+ <li>{{domxref("ServiceWorkerGlobalScope")}}</li>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API">Service Worker API</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/caches/index.html b/files/ja/web/api/serviceworkerglobalscope/caches/index.html
new file mode 100644
index 0000000000..5d670ef2ec
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/caches/index.html
@@ -0,0 +1,59 @@
+---
+title: ServiceWorkerGlobalScope.caches
+slug: Web/API/ServiceWorkerGlobalScope/caches
+tags:
+ - API
+ - Property
+ - Reference
+ - Service Workers
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+translation_of: Web/API/ServiceWorkerGlobalScope/caches
+---
+<p>{{APIRef("Service Workers API")}}</p>
+
+<p><span class="seoSummary">{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>caches</code></strong> 読み取り専用プロパティは、サービスワーカーに関連する {{domxref("CacheStorage")}} オブジェクトを返します。</span></p>
+
+<h2 id="構文">構文</h2>
+
+<pre class="syntaxbox">var <em>myCacheStorage</em> = self.caches;
+</pre>
+
+<h3 id="値">値</h3>
+
+<p>{{domxref("CacheStorage")}} オブジェクト。</p>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#global-caches', 'ServiceWorkerGlobalScope.caches')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザーの互換性">ブラウザーの互換性</h2>
+
+<div>
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.caches")}}</p>
+</div>
+
+<h2 id="関連情報">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API/Using_Service_Workers">Service worker の使用</a></li>
+ <li><a href="https://github.com/mdn/sw-test">サービスワーカーの基本的なコード例</a>(英語)</li>
+ <li><a href="https://jakearchibald.github.io/isserviceworkerready/">ServiceWorker の準備はできていますか?</a>(英語)</li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="/ja/docs/Web/API/Web_Workers_API/Using_web_workers">Web worker の使用</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/clients/index.html b/files/ja/web/api/serviceworkerglobalscope/clients/index.html
new file mode 100644
index 0000000000..26b0fd7a92
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/clients/index.html
@@ -0,0 +1,109 @@
+---
+title: ServiceWorkerGlobalScope.clients
+slug: Web/API/ServiceWorkerGlobalScope/clients
+tags:
+ - API
+ - Clients
+ - Property
+ - Reference
+ - Service Worker
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+translation_of: Web/API/ServiceWorkerGlobalScope/clients
+---
+<p>{{SeeCompatTable}}{{APIRef("Service Workers API")}}</p>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <strong><code>clients</code></strong> 読み取り専用プロパティは、service worker に関連する <a href="https://developer.mozilla.org/ja/docs/Web/API/Clients" title="The ServiceWorkerClients interface of the ServiceWorker API represents a container for a list of ServiceWorkerClient objects."><code>Clients</code></a> オブジェクトを返します。</p>
+
+<h2 id="Syntax" name="Syntax" style="line-height: 30px; font-size: 2.14285714285714rem;">構文</h2>
+
+<pre class="syntaxbox" style="font-size: 14px;">swClients = self.clients
+</pre>
+
+<h3 id="値">値</h3>
+
+<p>指定した worker に関連した {{domxref("Clients")}} オブジェクト。</p>
+
+<h2 id="仕様" style="line-height: 30px; font-size: 2.14285714285714rem;">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">仕様</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">ステータス</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">コメント</span></font></th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-clients', 'ServiceWorkerRegistration.clients')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義。<br>
+  </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service worker(と <a href="/ja/docs/Web/API/Push_API">Push</a>)は <a href="https://www.mozilla.org/en-US/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Using Service Workers</a></li>
+ <li><a href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="/ja/docs/Web/Guide/Performance/Using_web_workers">Using web workers</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/index.html b/files/ja/web/api/serviceworkerglobalscope/index.html
new file mode 100644
index 0000000000..1f484c3e08
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/index.html
@@ -0,0 +1,153 @@
+---
+title: ServiceWorkerGlobalScope
+slug: Web/API/ServiceWorkerGlobalScope
+tags:
+ - API
+ - Draft
+ - Interface
+ - NeedsTranslation
+ - Offline
+ - Reference
+ - Service Workers
+ - ServiceWorkerGlobalScope
+ - TopicStub
+ - Workers
+ - インターフェイス
+translation_of: Web/API/ServiceWorkerGlobalScope
+---
+<div>{{APIRef("Service Workers API")}}</div>
+
+<p><code>ServiceWorkerGlobalScope</code> は <a href="/ja/docs/Web/API/ServiceWorker_API">ServiceWorker API</a> のインターフェイスで、サービスワーカーのグローバル実行コンテキストを表します。</p>
+
+<p>開発者は ServiceWorker の状態が停止/再起動サイクルをまたいで続かないことを心にとめておいてください。このため各イベントハンドラーは、むき出しの、デフォルトのグローバル状態で実行されることを想定すべきです。</p>
+
+<p>いったん正しく登録されたら、サービスワーカーはメモリーとプロセッサーの力を温存するため、アイドル時であれば停止させることができます。アクティブなサービスワーカーはイベント、例えば {{domxref("ServiceWorkerGlobalScope.onfetch")}} や {{domxref("ServiceWorkerGlobalScope.onmessage")}} に応じて自動的に再起動します。</p>
+
+<p>加えて、同期リクエストはサービスワーカーでは許可されていません— 非同期リクエスト、つまり{{domxref("GlobalFetch.fetch", "fetch()")}} メソッド経由で初期化されたものが使われます。</p>
+
+<p>このインターフェイスは {{domxref("WorkerGlobalScope")}} インターフェイスと、その親の {{domxref("EventTarget")}} を継承し、このため {{domxref("WindowTimers")}}, {{domxref("WindowBase64")}}, {{domxref("WindowEventHandlers")}} のプロパティを実装しています。</p>
+
+<p>{{InheritanceDiagram(700, 85, 20)}}</p>
+
+<h2 id="Properties" name="Properties">プロパティ</h2>
+
+<dl>
+ <dt>{{domxref("ServiceWorkerGlobalScope.clients")}} {{readonlyinline}}</dt>
+ <dd>サービスワーカーに関連する {{domxref("Clients")}} オブジェクトを含む。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope.registration")}} {{readonlyinline}}</dt>
+ <dd>サービスワーカーの登録を表す {{domxref("ServiceWorkerRegistration")}} オブジェクトを含む。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope.caches")}} {{readonlyinline}}</dt>
+ <dd>サービスワーカーに関連する {{domxref("CacheStorage")}} オブジェクトを含む。</dd>
+</dl>
+
+<h2 id="Event" name="Event">イベント</h2>
+
+<dl>
+ <dt>{{domxref("ServiceWorkerGlobalScope/activate_event", "activate")}}</dt>
+ <dd>{{domxref("ServiceWorkerRegistration")}} が新しい {{domxref("ServiceWorkerRegistration.active")}} ワーカーを得た時に発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onactivate")}} プロパティからも利用できます。</dd>
+ <dt><code>fetch</code></dt>
+ <dd>{{domxref("GlobalFetch.fetch", "fetch()")}} が呼び出されたときに発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onfetch")}} プロパティからも利用できます。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope/install_event", "install")}}</dt>
+ <dd>{{domxref("ServiceWorkerRegistration")}} が新しい {{domxref("ServiceWorkerRegistration.installing")}} ワーカーを得た時に発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.oninstall")}} プロパティからも利用できます。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope/message_event", "message")}}</dt>
+ <dd>メッセージを受信したときに発生します。制御中のページは {{domxref("MessagePort.postMessage()")}} メソッドを使用してサービスワーカーにメッセージを送信することができます。サービスワーカーは任意で <a href="https://html.spec.whatwg.org/multipage/comms.html#messageport"><code>event.data.port</code></a> で公開されている {{domxref("MessagePort")}} を通じて、対応する制御中のページに返信することができます。<br>
+ {{domxref("ServiceWorkerGlobalScope.onmessage")}} プロパティからも利用できます。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope/notificationclick_event", "notificationclick")}}</dt>
+ <dd>表示された通知をユーザーがクリックしたときに発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onnotificationclick")}} プロパティからも利用できます。</dd>
+ <dt><code>notificationclose</code></dt>
+ <dd>表示された通知をユーザーが閉じたときに発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onnotificationclose")}} プロパティからも利用できます。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope/push_event", "push")}}</dt>
+ <dd>サーバーのプッシュ通知が届いたときに発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onpush")}} プロパティからも利用できます。</dd>
+ <dt>{{domxref("ServiceWorkerGlobalScope/pushsubscriptionchange_event", "pushsubscriptionchange")}}</dt>
+ <dd>プッシュ通知への加入が無効化されたとき、または無効化されようとするとき (例えば、プッシュ通知の有効期限が設定されたとき) に発生します。<br>
+ {{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange")}} プロパティからも利用できます。</dd>
+ <dt><code>sync</code></dt>
+ <dd>サービスワーカーのクライアントページから {{domxref("SyncManager.register")}} への呼び出しが行われたときに発生します。ネットワークが有効であるか、すぐに利用可能になるのであれば、直ちに同期が試みられます。<br>
+ {{domxref("ServiceWorkerGlobalScope.onsync")}} プロパティからも利用できます。</dd>
+</dl>
+
+<h2 id="Methods" name="Methods">メソッド</h2>
+
+<dl>
+ <dt>{{domxref("ServiceWorkerGlobalScope.skipWaiting()")}}</dt>
+ <dd>現在のサービスワーカーの登録を、待ち状態からクライアントが使っている時のアクティブ状態に進めます。</dd>
+</dl>
+
+<p><code>ServiceWorkerGlobalScope</code> は {{domxref("WorkerGlobalScope")}} を実装します — これは {{domxref("GlobalFetch")}} を実装します。このため利用できる次のプロパティも持っています:</p>
+
+<dl>
+ <dt>{{domxref("GlobalFetch.fetch()")}}</dt>
+ <dd>リソース取得(fetch)のプロセスを開始します。これはリクエストのレスポンスを表す {{domxref("Response")}} オブジェクトを解決するpromiseを返します。このアルゴリズムは service worker コンテキストに渡されるfetch処理のエントリーポイントです。</dd>
+</dl>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>このコードスニペットは、<a href="https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/prefetch/service-worker.js">service worker prefetch sample</a>(<a href="https://googlechrome.github.io/samples/service-worker/prefetch/">prefetch example live</a> を参照してください)からのものです。{{domxref("ServiceWorkerGlobalScope.onfetch")}} イベントハンドラーは <code>fetch</code> イベントを監視します。イベントが発火した時、コードは {{domxref("Cache")}} オブジェクト内で、最初にマッチングしたリクエストに対して解決するプロミスを返します。もし、何もマッチしなかった場合は、コードはネットワークからのレスポンスをフェッチします。</p>
+
+<p>さらに、このコードは {{domxref("GlobalFetch.fetch", "fetch()")}} 演算から投げられた例外をハンドリングします。 HTTP のエラーレスポンス (たとえば、404) は、例外を引き起こさないことにご注意ください。適切なエラーコードセットを持った通常のレスポンスオブジェクトを返します。</p>
+
+<pre class="brush: js">self.addEventListener('fetch', function(event) {
+ console.log('Handling fetch event for', event.request.url);
+
+ event.respondWith(
+ caches.match(event.request).then(function(response) {
+ if (response) {
+ console.log('Found response in cache:', response);
+
+ return response;
+ }
+ console.log('No response found in cache. About to fetch from network...');
+
+ return fetch(event.request).then(function(response) {
+ console.log('Response from network is:', response);
+
+ return response;
+ }, function(error) {
+ console.error('Fetching failed:', error);
+
+ throw error;
+ });
+ })
+ );
+});</pre>
+
+<h2 id="Specifications" name="Specifications">仕様書</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様書</th>
+ <th scope="col">状態</th>
+ <th scope="col">備考</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Service Workers', '#serviceworkerglobalscope-interface', 'ServiceWorkerGlobalScope')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初回定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">サービスワーカーの使用</a></li>
+ <li><a class="external external-icon" href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a class="external external-icon" href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="/ja/docs/Web/Guide/Performance/Using_web_workers">ウェブワーカーの使用</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/install_event/index.html b/files/ja/web/api/serviceworkerglobalscope/install_event/index.html
new file mode 100644
index 0000000000..6a7c58292b
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/install_event/index.html
@@ -0,0 +1,96 @@
+---
+title: 'ServiceWorkerGlobalScope: install event'
+slug: Web/API/ServiceWorkerGlobalScope/install_event
+tags:
+ - API
+ - Reference
+ - Service Worker
+ - ServiceWorkerGlobalScope
+ - events
+ - install
+translation_of: Web/API/ServiceWorkerGlobalScope/install_event
+---
+<p>{{DefaultAPISidebar("Service Workers API")}}</p>
+
+<p><span class="seoSummary">{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>install</code></strong> イベントは、{{domxref("ServiceWorkerRegistration")}} が新しいインストール中のワーカー({{domxref("ServiceWorkerRegistration.installing")}} worker)を取得すると発生します。</span></p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("ExtendableEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td>{{domxref("ServiceWorkerGlobalScope.oninstall")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>次のスニペットは、<code>install</code> イベントハンドラーを使用してキャッシュに多数のレスポンスを設定する方法を示しています。 サービスワーカーはこれを使用して、資産をオフラインで提供できます。</p>
+
+<pre class="brush: js">this.addEventListener('install', function(event) {
+ event.waitUntil(
+ caches.open('v1').then(function(cache) {
+ return cache.add(
+ '/sw-test/',
+ '/sw-test/index.html',
+ '/sw-test/style.css',
+ '/sw-test/app.js',
+ '/sw-test/image-list.js',
+ '/sw-test/star-wars-logo.jpg',
+ '/sw-test/gallery/',
+ '/sw-test/gallery/bountyHunters.jpg',
+ '/sw-test/gallery/myLittleVader.jpg',
+ '/sw-test/gallery/snowTroopers.jpg'
+ );
+ })
+ );
+});</pre>
+
+<p>次のように {{domxref("ServiceWorkerGlobalScope.oninstall")}} プロパティを使用してイベントハンドラーを設定することもできます。</p>
+
+<pre class="brush: js">globalScope.oninstall = function(event) {
+ ...
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-install-event', 'install')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.install_event")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><code><a href="/ja/docs/Web/API/ServiceWorkerGlobalScope/activate">activate</a></code> イベント</li>
+ <li>{{domxref("ServiceWorkerGlobalScope")}}</li>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API">Service Worker API</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/message_event/index.html b/files/ja/web/api/serviceworkerglobalscope/message_event/index.html
new file mode 100644
index 0000000000..2f1aa73fc8
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/message_event/index.html
@@ -0,0 +1,100 @@
+---
+title: 'ServiceWorkerGlobalScope: message event'
+slug: Web/API/ServiceWorkerGlobalScope/message_event
+tags:
+ - Event
+ - Reference
+ - Service worker API
+ - ServiceWorkerGlobalScope
+ - message
+translation_of: Web/API/ServiceWorkerGlobalScope/message_event
+---
+<div>{{APIRef}}</div>
+
+<div>
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>message</code></strong> イベントは、着信メッセージを受信したときに発生します。 制御されたページは、{{domxref("ServiceWorker.postMessage()")}} メソッドを使用して、サービスワーカーにメッセージを送信できます。<br>
+ サービスワーカーは、任意で、制御されたページに対応する {{domxref("Client.postMessage()")}} を介して返信することができます。</p>
+</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("ExtendableMessageEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td><code><a href="/ja/docs/Web/API/ServiceWorkerGlobalScope/onmessage">onmessage</a></code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>以下の例では、ページが {{domxref("ServiceWorkerRegistration.active")}} を介して {{domxref("ServiceWorker")}} オブジェクトへのハンドルを取得し、その <code>postMessage()</code> 関数を呼び出します。</p>
+
+<pre class="brush: js">// 制御されているページ内
+if (navigator.serviceWorker) {
+
+ navigator.serviceWorker.register('service-worker.js');
+
+ navigator.serviceWorker.addEventListener('message', event =&gt; {
+ // event は MessageEvent オブジェクトです
+ console.log(`The service worker sent me a message: ${event.data}`);
+ });
+
+ navigator.serviceWorker.ready.then( registration =&gt; {
+ registration.active.postMessage("Hi service worker");
+ });
+
+}</pre>
+
+<p>次のように、サービスワーカーは、<code>message</code> イベントをリッスンしてメッセージを受信できます。</p>
+
+<pre class="brush: js">// サービスワーカー内
+addEventListener('message', event =&gt; {
+ // event は ExtendableMessageEvent オブジェクトです
+ console.log(`The client sent me a message: ${event.data}`);
+
+ event.source.postMessage("Hi client");
+});</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#eventdef-serviceworkerglobalscope-message', 'message')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div>
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.message_event")}}</p>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API/Using_Service_Workers">Service worker の使用</a></li>
+ <li><a class="external external-icon" href="https://github.com/mdn/sw-test">サービスワーカーの基本的なコード例</a>(英語)</li>
+ <li><a class="external external-icon" href="https://jakearchibald.github.io/isserviceworkerready/">ServiceWorker の準備はできていますか?</a>(英語)</li>
+ <li><a href="/ja/docs/Web/API/Web_Workers_API/Using_web_workers">Web worker の使用</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/notificationclick_event/index.html b/files/ja/web/api/serviceworkerglobalscope/notificationclick_event/index.html
new file mode 100644
index 0000000000..6f08188b64
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/notificationclick_event/index.html
@@ -0,0 +1,112 @@
+---
+title: 'ServiceWorkerGlobalScope: notificationclick イベント'
+slug: Web/API/ServiceWorkerGlobalScope/notificationclick_event
+tags:
+ - Event
+ - Notifications
+ - Service Worker
+ - ServiceWorkerGloablScope
+ - events
+ - notificationclick
+ - イベント
+translation_of: Web/API/ServiceWorkerGlobalScope/notificationclick_event
+---
+<div>{{APIRef}}</div>
+
+<p><strong><code>notificationclick</code></strong> イベントは、 {{domxref("ServiceWorkerRegistration.showNotification()")}} によって生み出されたシステム通知がクリックされたことを示すために発生します。</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("NotificationEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td>{{domxref("ServiceWorkerGlobalScope.onpush", "onpush")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p><code>notificationclick</code> イベントは {{domxref("EventTarget/addEventListener", "addEventListener")}} メソッド内で使用することができます。</p>
+
+<pre class="brush: js">self.addEventListener('notificationclick', function(event) {
+ console.log('On notification click: ', event.notification.tag);
+ event.notification.close();
+
+ // This looks to see if the current is already open and
+ // focuses if it is
+ event.waitUntil(clients.matchAll({
+ type: "window"
+ }).then(function(clientList) {
+ for (var i = 0; i &lt; clientList.length; i++) {
+ var client = clientList[i];
+ if (client.url == '/' &amp;&amp; 'focus' in client)
+ return client.focus();
+ }
+ if (clients.openWindow)
+ return clients.openWindow('/');
+ }));
+});
+</pre>
+
+<p>または、 {{domxref("ServiceWorkerGlobalScope/onnotificationclick", "onnotificationclick")}} イベントハンドラープロパティを使用してください。</p>
+
+<pre class="brush: js">self.onnotificationclick = function(event) {
+ console.log('On notification click: ', event.notification.tag);
+ event.notification.close();
+
+ // This looks to see if the current is already open and
+ // focuses if it is
+ event.waitUntil(clients.matchAll({
+ type: "window"
+ }).then(function(clientList) {
+ for (var i = 0; i &lt; clientList.length; i++) {
+ var client = clientList[i];
+ if (client.url == '/' &amp;&amp; 'focus' in client)
+ return client.focus();
+ }
+ if (clients.openWindow)
+ return clients.openWindow('/');
+ }));
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様書</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様書</th>
+ <th scope="col">状態</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Push API', '#extensions-to-the-serviceworkerglobalscope-interface', 'push')}}</td>
+ <td>{{Spec2('Push API')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.push_event")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API">Service Worker API</a></li>
+ <li><a href="/ja/docs/Web/API/Notifications_API">Notifications API</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onactivate/index.html b/files/ja/web/api/serviceworkerglobalscope/onactivate/index.html
new file mode 100644
index 0000000000..e6aac404d9
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onactivate/index.html
@@ -0,0 +1,121 @@
+---
+title: ServiceWorkerGlobalScope.onactivate
+slug: Web/API/ServiceWorkerGlobalScope/onactivate
+tags:
+ - API
+ - Property
+ - Reference
+ - Service
+ - ServiceWorker
+ - ServiceWorkerGlovalScope
+ - Worker
+ - onactivate
+translation_of: Web/API/ServiceWorkerGlobalScope/onactivate
+---
+<div>{{SeeCompatTable}}{{APIRef("Service Workers API")}}</div>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <strong>onactivate</strong> プロパティは、(Service Worker がアクティブになったときの){{Event("activate")}} イベントが発生したとき常に発火されるイベントハンドラーです。これは、Service Worker に制御されたページがリフレッシュされるインストール後に発生します。</p>
+
+<h2 id="構文">構文</h2>
+
+<pre class="brush: js">ServiceWorkerGlobalScope.onactivate = function(event) { ... };
+ServiceWorkerGlobalScope.addEventListener('activate', function(event) { ... });</pre>
+
+<h2 id="例">例</h2>
+
+<p>次のスニペットは、<a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers#Updating_your_service_worker">Using Service Workers</a> のものです; 詳細はそちらを見てください。</p>
+
+<pre class="brush: js">then.addEventListener('activate', function(event) {
+ var cacheWhitelist = ['v2'];
+
+ event.waitUntil(
+ caches.forEach(function(cache, cacheName) {
+ if (cacheWhitelist.indexOf(cacheName) == -1) {
+ return caches.delete(cacheName);
+ }
+ })
+ );
+});</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">ステータス</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-event-handlers', 'Event Handlers')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatChrome(40.0)}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatChrome(40.0)}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service workers(と <a href="/ja/docs/Web/API/Push_API">Push</a>) は、<a href="https://www.mozilla.org/ja/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Using Service Workers</a></li>
+ <li><a class="external external-icon" href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a class="external external-icon" href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workers">Using web workers</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onfetch/index.html b/files/ja/web/api/serviceworkerglobalscope/onfetch/index.html
new file mode 100644
index 0000000000..68baeec252
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onfetch/index.html
@@ -0,0 +1,86 @@
+---
+title: ServiceWorkerGlobalScope.onfetch
+slug: Web/API/ServiceWorkerGlobalScope/onfetch
+tags:
+ - API
+ - Property
+ - Reference
+ - Service Workers
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - onfetch
+translation_of: Web/API/ServiceWorkerGlobalScope/onfetch
+---
+<div>{{APIRef("Service Workers API")}}</div>
+
+<p><span class="seoSummary">{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>onfetch</code></strong> プロパティは、{{Event("fetch")}} イベントが発生するたびに(通常、{{domxref("WindowOrWorkerGlobalScope.fetch()")}} メソッドが呼び出されたときに)発火するイベントハンドラーです。</span></p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox"><em>serviceWorkerGlobalScope</em>.onfetch = function(<em>fetchEvent</em>) { ... };</pre>
+
+<h2 id="Example" name="Example">例</h2>
+
+<p>このコードスニペットは、<a href="https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/prefetch/service-worker.js">サービスワーカーのプリフェッチの例</a>からのものです(<a href="https://googlechrome.github.io/samples/service-worker/prefetch/">プリフェッチの例をライブで</a>見る)。{{domxref("ServiceWorkerGlobalScope.onfetch")}} イベントハンドラーは、<code>fetch</code> イベントをリッスンします。 コードが実行されると、コードは、{{domxref("Cache")}} オブジェクト内の最初に一致するリクエストに解決するプロミスを返します。 一致が見つからない場合、コードはネットワークからレスポンスをフェッチします。</p>
+
+<p>このコードは、{{domxref("WindowOrWorkerGlobalScope.fetch", "fetch()")}} 操作からスローされた例外も処理します。 HTTP エラーレスポンス(404 など)は例外をトリガーしないことに注意してください。 適切なエラーコードが設定された通常のレスポンスオブジェクトを返します。</p>
+
+<pre class="brush: js">self.addEventListener('fetch', function(event) {
+ console.log('Handling fetch event for', event.request.url);
+
+ event.respondWith(
+ caches.match(event.request).then(function(response) {
+ if (response) {
+ console.log('Found response in cache:', response);
+
+ return response;
+ }
+ console.log('No response found in cache. About to fetch from network...');
+
+ return fetch(event.request).then(function(response) {
+ console.log('Response from network is:', response);
+
+ return response;
+ }).catch(function(error) {
+ console.error('Fetching failed:', error);
+
+ throw error;
+ });
+ })
+ );
+});</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-event-handlers', 'Event Handlers')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div>
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.onfetch")}}</p>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Service_Worker_API/Using_Service_Workers">Service worker の使用</a></li>
+ <li><a href="https://github.com/mdn/sw-test">サービスワーカーの基本的なコード例</a>(英語)</li>
+ <li><a href="https://jakearchibald.github.io/isserviceworkerready/">ServiceWorker の準備はできていますか?</a>(英語)</li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="/ja/docs/Web/API/Web_Workers_API/Using_web_workers">Web worker の使用</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/oninstall/index.html b/files/ja/web/api/serviceworkerglobalscope/oninstall/index.html
new file mode 100644
index 0000000000..e03f13592c
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/oninstall/index.html
@@ -0,0 +1,127 @@
+---
+title: ServiceWorkerGlobalScope.oninstall
+slug: Web/API/ServiceWorkerGlobalScope/oninstall
+tags:
+ - API
+ - Property
+ - Reference
+ - Service Worker
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - oninstall
+translation_of: Web/API/ServiceWorkerGlobalScope/oninstall
+---
+<p><span style="line-height: 19.0909080505371px;">{{SeeCompatTable}}{{APIRef("Service Workers API")}}</span></p>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <strong>oninstall</strong> プロパティは、(Service Worker がインストールされたときの){{Event("install")}} イベントが発生するたびに発火するイベントハンドラーです。これはアクティブ化の前に発生します。</p>
+
+<h2 id="構文">構文</h2>
+
+<pre class="brush: js">ServiceWorkerGlobalScope.oninstall = function(event) { ... };
+ServiceWorkerGlobalScope.addEventListener('install', function(event) { ... });</pre>
+
+<h2 id="例">例</h2>
+
+<p>次のスニペットは <a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers#Install_and_activate.3A_populating_your_cache">Using Service Workers</a> のものです。詳細はそちらをご覧ください。</p>
+
+<pre class="brush: js">this.addEventListener('install', function(event) {
+ event.waitUntil(
+ caches.create('v1').then(function(cache) {
+ return cache.add(
+ '/sw-test/',
+ '/sw-test/index.html',
+ '/sw-test/style.css',
+ '/sw-test/app.js',
+ '/sw-test/image-list.js',
+ '/sw-test/star-wars-logo.jpg',
+ '/sw-test/gallery/',
+ '/sw-test/gallery/bountyHunters.jpg',
+ '/sw-test/gallery/myLittleVader.jpg',
+ '/sw-test/gallery/snowTroopers.jpg'
+ );
+ })
+ );
+});</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">ステータス</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-event-handlers', 'Event Handlers')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatChrome(40.0)}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatChrome(40.0)}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service worker(と <a href="/ja/docs/Web/API/Push_API">Push</a>)は、<a href="https://www.mozilla.org/en-US/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Using Service Workers</a></li>
+ <li><a class="external external-icon" href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a class="external external-icon" href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workers">Using web workers</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onmessage/index.html b/files/ja/web/api/serviceworkerglobalscope/onmessage/index.html
new file mode 100644
index 0000000000..c9e6afb3dc
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onmessage/index.html
@@ -0,0 +1,61 @@
+---
+title: ServiceWorkerGlobalScope.onmessage
+slug: Web/API/ServiceWorkerGlobalScope/onmessage
+tags:
+ - API
+ - Property
+ - Reference
+ - Service
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - Worker
+ - onmessage
+translation_of: Web/API/ServiceWorkerGlobalScope/onmessage
+---
+<div>{{APIRef("Service Workers API")}}</div>
+
+<p><span class="seoSummary">{{domxref("ServiceWorkerGlobalScope")}} インターフェイスの <strong><code>onmessage</code></strong> プロパティは、(着信メッセージの受信時に){{domxref("ServiceWorkerGlobalScope.message_event","message")}} イベントが発生するたびに発火するイベントハンドラーです。</span></p>
+
+<div class="note">
+<p><strong>注</strong>: サービスワーカーは、延長可能なイベントを定義して、イベントの存続期間を延長できるようにします。 <code>message</code> イベントの場合、サービスワーカーは {{domxref("ExtendableEvent")}} インターフェイスを拡張した {{domxref("ExtendableMessageEvent")}} インターフェイスを使用します。</p>
+</div>
+
+<div class="note">
+<p><strong>注</strong>: 他のウェブメッセージング機能との整合性を保つため、サービスワーカーのコンテキストから受信されるメッセージ(<code>onmessage</code> のイベントオブジェクトなど)は、最新のブラウザーでは {{domxref("MessageEvent")}} オブジェクトによって表されます。 (これらは、以前は廃止された {{domxref("ServiceWorkerMessageEvent")}} オブジェクトで表されていました。)</p>
+</div>
+
+<h2 id="構文">構文</h2>
+
+<pre class="syntaxbox"><em>serviceWorkerGlobalScope</em>.onmessage = function(<em>extendableMessageEvent</em>) { ... };</pre>
+
+<h2 id="例">例</h2>
+
+<pre class="brush: js">self.addEventListener('message', function(messageEvent) {
+ console.log('Handling message event:', messageEvent);
+})
+</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-event-handlers', 'Event Handlers')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザーの互換性">ブラウザーの互換性</h2>
+
+<div>
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.onmessage")}}</p>
+</div>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onnotificationclick/index.html b/files/ja/web/api/serviceworkerglobalscope/onnotificationclick/index.html
new file mode 100644
index 0000000000..cc9cd0c7b6
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onnotificationclick/index.html
@@ -0,0 +1,122 @@
+---
+title: ServiceWorkerGlobalScope.onnotificationclick
+slug: Web/API/ServiceWorkerGlobalScope/onnotificationclick
+tags:
+ - API
+ - Experimental
+ - Interface
+ - Property
+ - Reference
+ - ServiceWorkerGlobalScope
+ - onnotificationclick
+translation_of: Web/API/ServiceWorkerGlobalScope/onnotificationclick
+---
+<p style="line-height: 19.0909080505371px;"><span style="line-height: 19.0909080505371px;">{{SeeCompatTable}}{{APIRef("Service Workers API")}}</span></p>
+
+<p style="line-height: 19.0909080505371px;"><strong>ServiceWorkerGlobalScope.onnotificationclick</strong> プロパティは、{{domxref("ServiceWorkerGlobalScope")}} オブジェクトで {{Event("notificationclick")}} イベントが送り出されるたびに呼び出されるイベントハンドラーです。つまり、<span style="line-height: 19.0909080505371px;">ユーザーが {{domxref("ServiceWorkerRegistration.showNotification()")}} で生成された通知をクリックしたときです。</span></p>
+
+<p>メインスレッド、または {{domxref("Notification.Notification","Notification()")}} コンストラクターを使用して Service Worker ではない Worker で生成された通知は、<code>Notification</code> オブジェクト自体で {{Event("click")}} イベントを代わりに受け取ります。</p>
+
+<div class="note">
+<p><strong>ノート</strong>: {{domxref("Notification.Notification","Notification()")}} コンストラクターを使用して {{domxref("ServiceWorkerGlobalScope")}} 内で通知を生成しようとすると、エラーがスローされます。</p>
+</div>
+
+<h2 id="構文" style="line-height: 30px; font-size: 2.14285714285714rem;">構文</h2>
+
+<pre class="brush: js" style="font-size: 14px;">ServiceWorkerGlobalScope.onnotificationclick = function(NotificationEvent) { ... };
+</pre>
+
+<h2 id="例">例</h2>
+
+<pre class="brush: js">self.onnotificationclick = function(event) {
+ console.log('On notification click: ', event.notification.tag);
+ event.notification.close();
+
+ // This looks to see if the current is already open and
+ // focuses if it is
+ event.waitUntil(clients.matchAll({
+ type: "window"
+ }).then(function(clientList) {
+ for (var i = 0; i &lt; clientList.length; i++) {
+ var client = clientList[i];
+ if (client.url == '/' &amp;&amp; 'focus' in client)
+ return client.focus();
+ }
+ if (clients.openWindow)
+ return clients.openWindow('/');
+ }));
+};
+</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">仕様</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">ステータス</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">コメント</span></font></th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Web Notifications','#dom-serviceworkerglobalscope-onnotificationclick','onnotificationclick')}}</td>
+ <td>{{Spec2('Web Notifications')}}</td>
+ <td>初期定義。このプロパティは、{{domxref('ServiceWorkerGlobalScope')}} の一部だが {{domxref('Notifications_API')}} で定義されている。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatChrome(42.0)}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatChrome(42.0)}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service worker(と <a href="/ja/docs/Web/API/Push_API">Push</a>)は、<a href="https://www.mozilla.org/ja/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onnotificationclose/index.html b/files/ja/web/api/serviceworkerglobalscope/onnotificationclose/index.html
new file mode 100644
index 0000000000..24060add7a
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onnotificationclose/index.html
@@ -0,0 +1,60 @@
+---
+title: onnotificationclose
+slug: Web/API/ServiceWorkerGlobalScope/onnotificationclose
+tags:
+ - API
+ - Experimental
+ - Interface
+ - Property
+ - Reference
+ - ServiceWorkerGlobalScope
+ - onnotificationclose
+translation_of: Web/API/ServiceWorkerGlobalScope/onnotificationclose
+---
+<p>{{APIRef("Service Workers API")}}</p>
+
+<p><code><strong>ServiceWorkerGlobalScope.onnotificationclose</strong></code> プロパティは、{{domxref("ServiceWorkerGlobalScope")}} オブジェクトで {{Event("notificationclose")}} イベントが発行されるとき、つまり、{{domxref("ServiceWorkerRegistration.showNotification()")}} によって生成された表示されている通知をユーザーが閉じるたびに呼び出されるイベントハンドラーです。</p>
+
+<p>メインスレッドや {{domxref("Notification.Notification","Notification()")}} コンストラクターを使用した service worker ではない worker で生成された通知は、<code>Notification</code> オブジェクト自身の {{Event("close")}} イベントを受け取ります。</p>
+
+<div class="note">
+<p><strong>注記</strong>: {{domxref("Notification.Notification","Notification()")}} コンストラクターを使用して {{domxref("ServiceWorkerGlobalScope")}} 内で通知を生成しようとすると、エラーがスローされます。</p>
+</div>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox" style="font-size: 14px;">ServiceWorkerGlobalScope.onnotificationclose = function(NotificationEvent) { ... };
+ServiceWorkerGlobalScope.addEventListener('notificationclose', function(NotificationEvent) { ... });</pre>
+
+<h2 id="Example" name="Example">例</h2>
+
+<pre class="brush: js">// service worker 内。
+self.onnotificationclose = function(event) {
+ console.log('On notification close: ', event.notification.tag);
+};
+</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">仕様</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">ステータス</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">コメント</span></font></th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Web Notifications','#dom-serviceworkerglobalscope-onnotificationclose','onnotificationclick')}}</td>
+ <td>{{Spec2('Web Notifications')}}</td>
+ <td>初期定義。このプロパティは {{domxref('ServiceWorkerGlobalScope')}} の一部ですが、{{domxref('Notifications_API')}} イベントで定義されています。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>
+
+<div>
+
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.onnotificationclose")}}</p>
+</div>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onpush/index.html b/files/ja/web/api/serviceworkerglobalscope/onpush/index.html
new file mode 100644
index 0000000000..dd294999c7
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onpush/index.html
@@ -0,0 +1,84 @@
+---
+title: ServiceWorkerGlobalScope.onpush
+slug: Web/API/ServiceWorkerGlobalScope/onpush
+tags:
+ - API
+ - Property
+ - Push
+ - Reference
+ - Service Worker
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - onpush
+translation_of: Web/API/ServiceWorkerGlobalScope/onpush
+---
+<div>{{APIRef("Service Workers API")}}</div>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <code><strong>ServiceWorkerGlobalScope.onpush</strong></code> イベントは、Service Worker がプッシュサーバー経由でメッセージを受け取るたびに発火します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">ServiceWorkerGlobalScope.onpush = function(PushEvent) { ... }
+self.addEventListener('push', function(PushEvent) { ... })
+</pre>
+
+<h2 id="Example" name="Example">例</h2>
+
+<p>次の例では、{{domxref("PushEvent")}} からデータを取得して、すべての Service Worker のクライアント上で表示しています。プッシュメッセージのデータペイロードは、イベントオブジェクトの <code>data</code> プロパティ({{domxref("PushEvent.data")}} は {{domxref("PushMessageData")}} オブジェクトを含みます。)で利用できます。</p>
+
+<pre class="brush: js">self.addEventListener('push', function(event) {
+ if (!(self.Notification &amp;&amp; self.Notification.permission === 'granted')) {
+ return;
+ }
+
+ var data = {};
+ if (event.data) {
+ data = event.data.json();
+ }
+ var title = data.title || "Something Has Happened";
+ var message = data.message || "Here's something you might want to check out.";
+ var icon = "images/new-notification.png";
+
+ var notification = new Notification(title, {
+ body: message,
+ tag: 'simple-push-demo-notification',
+ icon: icon
+ });
+
+ notification.addEventListener('click', function() {
+ if (clients.openWindow) {
+ clients.openWindow('https://example.blog.com/2015/03/04/something-new.html');
+ }
+ });
+});</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">ステータス</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Push API', '#widl-ServiceWorkerGlobalScope-onpush', 'onpush')}}</td>
+ <td>{{Spec2('Push API')}}</td>
+ <td>初期定義。このイベントは {{domxref("ServiceWorkerGlobalScope")}} からアクセスしますが、Push API で定義されています。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>
+
+<div>
+<div class="hidden">このページの互換性テーブルは構造化データから作成されています。データに貢献したい場合、<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送ってください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.onpush")}}</p>
+</div>
+
+<h2 id="See_also" name="See_also">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Push_API">Push API</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/onpushsubscriptionchange/index.html b/files/ja/web/api/serviceworkerglobalscope/onpushsubscriptionchange/index.html
new file mode 100644
index 0000000000..f1dd4e3bd7
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/onpushsubscriptionchange/index.html
@@ -0,0 +1,64 @@
+---
+title: ServiceWorkerGlobalScope.onpushsubscriptionchange
+slug: Web/API/ServiceWorkerGlobalScope/onpushsubscriptionchange
+tags:
+ - API
+ - NeedsExample
+ - Property
+ - Push
+ - Reference
+ - Service Worker
+ - ServiceWorkerGlobalScope
+ - onpushsubscriptionchange
+translation_of: Web/API/ServiceWorkerGlobalScope/onpushsubscriptionchange
+---
+<div>{{APIRef("Service Workers API")}}</div>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <code><strong>ServiceWorkerGlobalScope.onpushsubscriptionchange</strong></code> イベントは、アプリケーションのコントロールの外側で発生したプッシュサブスクリプションの変更を示すために発火されます。例えば、ブラウザーがプッシュサブスクリプションをリフレッシュしたときなどです。</p>
+
+<p>以前は、プッシュサブスクリプションが無効化された時(または無効になろうとしている時)に発火されるイベントインターフェースとして定義されていました。もし望むなら、これはプッシュメッセージの取得を継続するために、再講読する機会を提供します。たとえば、これはプッシュサービスがサブスクリプションに有効期限を設定した場合に発生します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">ServiceWorkerGlobalScope.onpushsubscriptionchange = function() { ... }
+<var>self</var>.addEventListener('pushsubscriptionchange', function() { ... })
+</pre>
+
+<h2 id="Example" name="Example">例</h2>
+
+<pre class="brush: js">self.addEventListener('pushsubscriptionchange', function() {
+ // 何かを実行する。一般的には、XHR や Fetch を通して
+ // サーバーに新しいサブスクリプションの詳細を送ることで
+ // 再サブスクライブする。
+});</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Push API', '#widl-ServiceWorkerGlobalScope-onpushsubscriptionchange', 'onpushsubscriptionchange')}}</td>
+ <td>{{Spec2('Push API')}}</td>
+ <td>初期定義(ノート: このイベントは Push API で仕様化されていますが、{{domxref("ServiceWorkerGlobalScope")}} を介してアクセスします)。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>
+
+<div>
+<div class="hidden">このページの互換性テーブルは構造化データから作成されています。データに貢献したい場合、<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送ってください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.onpushsubscriptionchange")}}</p>
+</div>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Push_API">Push API</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/push_event/index.html b/files/ja/web/api/serviceworkerglobalscope/push_event/index.html
new file mode 100644
index 0000000000..0201cc4d36
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/push_event/index.html
@@ -0,0 +1,93 @@
+---
+title: 'ServiceWorkerGlobalScope: push イベント'
+slug: Web/API/ServiceWorkerGlobalScope/push_event
+tags:
+ - API
+ - Event
+ - Notifications
+ - Push
+ - Push API
+ - PushEvent
+ - Reference
+ - Service Workers
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - events
+ - messaging
+ - イベント
+translation_of: Web/API/ServiceWorkerGlobalScope/push_event
+---
+<div>{{APIRef("Push API")}}</div>
+
+<p><span class="seoSummary"><code>push</code> イベントは、サービスワーカーがプッシュメッセージを受信したときにサービスワーカーのグローバルスコープ ({{domxref("ServiceWorkerGlobalScope")}} インターフェイスで表現されるもの) に送られます。</span></p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("PushEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td>{{domxref("ServiceWorkerGlobalScope.onpush", "onpush")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>この例は <code>push</code> イベントのハンドラーを設定して、 {{Glossary("JSON")}} データを取り、解析し、メッセージ内に含まれる情報に基づいて扱うためにメッセージを仕分けします。</p>
+
+<pre class="brush: js">self.addEventListener("push", event =&gt; {
+ let message = event.data.json();
+
+ switch(message.type) {
+ case "init":
+ doInit();
+ break;
+ case "shutdown":
+ doShutdown();
+ break;
+ }
+}, false);</pre>
+
+<h2 id="Specifications" name="Specifications">仕様書</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様書</th>
+ <th scope="col">状態</th>
+ <th scope="col">備考</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Push API', '#extensions-to-the-serviceworkerglobalscope-interface', 'push')}}</td>
+ <td>{{Spec2('Push API')}}</td>
+ <td>初回定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.push_event")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Push_API/Using_the_Push_API">Push API の使用</a></li>
+ <li>{{domxref("ServiceWorkerGlobalScope.onpush", "onpush")}} イベントハンドラープロパティ</li>
+ <li>{{domxref("ServiceWorkerGlobalScope/pushsubscriptionchange_event", "pushsubscriptionchange")}} イベント</li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/pushsubscriptionchange_event/index.html b/files/ja/web/api/serviceworkerglobalscope/pushsubscriptionchange_event/index.html
new file mode 100644
index 0000000000..3203ac2005
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/pushsubscriptionchange_event/index.html
@@ -0,0 +1,116 @@
+---
+title: 'ServiceWorkerGlobalScope: pushsubscriptionchange イベント'
+slug: Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event
+tags:
+ - API
+ - Event
+ - Push
+ - Push API
+ - PushSubscriptionChangeEvent
+ - Reference
+ - Service Workers
+ - Service Workers API
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - Subscription
+ - events
+ - プッシュ通知
+translation_of: Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event
+---
+<div>{{APIRef("Push API")}}</div>
+
+<p><span class="seoSummary"><strong><code>pushsubscriptionchange</code></strong> イベントは<a href="/ja/docs/Web/API/ServiceWorkerGlobalScope">グローバルスコープ</a>としての {{domxref("ServiceWorker")}} へ送信され、、アプリケーションの制御の外から起動されたプッシュ通知への加入状況が変化したことを示します。</span>これはブラウザーが加入を更新した場合に発生しますが、加入が取り消されたり失われたりしたときにも発生する可能性があります。</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">バブリング</th>
+ <td>なし</td>
+ </tr>
+ <tr>
+ <th scope="row">キャンセル</th>
+ <td>不可</td>
+ </tr>
+ <tr>
+ <th scope="row">インターフェイス</th>
+ <td>{{domxref("PushSubscriptionChangeEvent")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">イベントハンドラープロパティ</th>
+ <td>{{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange", "onpushsubscriptionchange")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Usage_notes" name="Usage_notes">使用上のメモ</h2>
+
+<p>加入に関する情報をアプリケーションサーバーと共有する方法を示す例では {{domxref("WindowOrWorkerGlobalScope.fetch", "fetch()")}} を使用する傾向がありますが、これは実際の使用には必ずしも最適な選択ではありません。たとえば、アプリがオフラインの場合は機能しないためです。</p>
+
+<p>サービスワーカーとアプリサーバー間で加入情報を同期するのに別の方法を使用することを検討するか、 <code>fetch()</code> を使用するコードが、データ交換の試行が失敗した場合を処理するのに十分堅牢であることを確認してください。</p>
+
+<div class="blockIndicator note">
+<p><strong>メモ:</strong> この仕様書の早期の草稿では、このイベントは {{domxref("PushSubscription")}} が期限切れになった時に送信されるよう定義されていました。</p>
+</div>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<p>この例は、サービスワーカーのコンテキストで実行するものであり、 <code>pushsubscriptionchange</code> イベントを待ち受けて、無効になった場合に再加入します。</p>
+
+<pre class="brush: js">self.addEventListener("pushsubscriptionchange", event =&gt; {
+ event.waitUntil(swRegistration.pushManager.subscribe(event.oldSubscription.options)
+ .then(subscription =&gt; {
+ return fetch("register", {
+ method: "post",
+ headers: {
+ "Content-type": "application/json"
+ },
+ body: JSON.stringify({
+ endpoint: subscription.endpoint
+ })
+ });
+ })
+ );
+}, false);</pre>
+
+<p>加入の有効期限が切れたことを示す <code>pushsubscriptionchange</code> イベントが到着すると、プッシュマネージャーの {{domxref("PushManager.subscribe", "subscribe()")}} メソッドを呼び出して再加入します。返された Promise が解決されると、新しい加入を受け取ります。これは、 {{domxref("WindowOrWorkerGlobalScope.fetch", "fetch()")}} 呼び出しを使用してアプリサーバーに配信され、 {{Glossary("JSON")}} 形式で加入の {{domxref("PushSubscription.endpoint", "endpoint")}} の返信をアプリサーバーに送信します。</p>
+
+<p>{{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange", "onpushsubscriptionchange")}} イベントハンドラープロパティを使用してイベントハンドラーを設定することもできます。</p>
+
+<pre class="brush: js">self.onpushsubscriptionchange = event =&gt; {
+ event.waitUntil(swRegistration.pushManager.subscribe(event.oldSubscription.options)
+ .then(subscription =&gt; {
+ /* ... */
+ )
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様書</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様書</th>
+ <th scope="col">状態</th>
+ <th scope="col">備考</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Push API', '#the-pushsubscriptionchange-event', 'pushsubscriptionchange')}}</td>
+ <td>{{Spec2('Push API')}}</td>
+ <td>初回定義</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
+
+<p>{{Compat("api.ServiceWorkerGlobalScope.pushsubscriptionchange_event")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Push_API/Using_the_Push_API">Push API の使用</a></li>
+ <li>{{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange", "onpushsubscriptionchange")}} イベントハンドラープロパティ</li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/registration/index.html b/files/ja/web/api/serviceworkerglobalscope/registration/index.html
new file mode 100644
index 0000000000..0fc05837f7
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/registration/index.html
@@ -0,0 +1,108 @@
+---
+title: ServiceWorkerGlobalScope.registration
+slug: Web/API/ServiceWorkerGlobalScope/registration
+tags:
+ - API
+ - Property
+ - Reference
+ - Service Worker
+ - ServiceWorker
+ - ServiceWorkerGlobalScope
+ - registration
+translation_of: Web/API/ServiceWorkerGlobalScope/registration
+---
+<p>{{SeeCompatTable}}{{APIRef("Service Workers API")}}</p>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} インターフェースの <strong><code>registration</code></strong> 読み取り専用プロパティは、Service Worker の登録を表す {{domxref("ServiceWorkerRegistration")}} オブジェクトの参照を返します。</p>
+
+<h2 id="Syntax" name="Syntax" style="line-height: 30px; font-size: 2.14285714285714rem;">構文</h2>
+
+<pre class="brush: js" style="font-size: 14px;">serviceWorkerRegistration = self.registration
+</pre>
+
+<h3 id="値">値</h3>
+
+<p>{{domxref("ServiceWorkerRegistration")}} オブジェクト。</p>
+
+<h2 id="仕様" style="line-height: 30px; font-size: 2.14285714285714rem;">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">仕様</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">ステータス</span></font></th>
+ <th scope="col"><font face="Open Sans, sans-serif"><span style="font-weight: normal;">コメント</span></font></th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-global-scope-registration', 'ServiceWorkerGlobalScope.registration')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatChrome(42.0)}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service workers(と <a href="/ja/docs/Web/API/Push_API">Push</a>)は、<a href="https://www.mozilla.org/ja/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Using Service Workers</a></li>
+ <li><a href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{jsxref("Promise")}}</li>
+ <li><a href="/ja/docs/Web/Guide/Performance/Using_web_workers">Using web workers</a></li>
+</ul>
diff --git a/files/ja/web/api/serviceworkerglobalscope/skipwaiting/index.html b/files/ja/web/api/serviceworkerglobalscope/skipwaiting/index.html
new file mode 100644
index 0000000000..156a830fb1
--- /dev/null
+++ b/files/ja/web/api/serviceworkerglobalscope/skipwaiting/index.html
@@ -0,0 +1,122 @@
+---
+title: ServiceWorkerGlobalScope.skipWaiting()
+slug: Web/API/ServiceWorkerGlobalScope/skipWaiting
+tags:
+ - API
+ - Method
+ - Reference
+ - ServiceWorker
+ - skipWaiting
+translation_of: Web/API/ServiceWorkerGlobalScope/skipWaiting
+---
+<div>{{SeeCompatTable}}{{APIRef("Service Workers API")}}</div>
+
+<p>{{domxref("ServiceWorkerGlobalScope")}} スコープの <strong><code>ServiceWorkerGlobalScope.skipWaiting()</code></strong> メソッドは、待機している Service Worker がアクティブになるように強制します。</p>
+
+<p>このメソッドは、{{domxref("Clients.claim()")}} と併用することで、現在のクライアントと他のすべてのアクティブなクライアントの両方で、元となる Service Worker の更新が即座に有効になるようにします。</p>
+
+<h2 id="構文">構文</h2>
+
+<pre class="brush: js">ServiceWorkerGlobalScope.skipWaiting().then(function() {
+  //Do something
+});</pre>
+
+<h3 id="戻り値">戻り値</h3>
+
+<p>{{jsxref("Promise")}}。</p>
+
+<h2 id="例">例</h2>
+
+<p>次の例では、登録済みの Service Worker の新しいバージョンでインストールされている既存のものを置き換え、開いているページ上で現在アクティブな worker を入れ替えています。</p>
+
+<pre class="brush: js">self.addEventListener('install', function(event) {
+ event.waitUntil(self.skipWaiting());
+});
+self.addEventListener('activate', function(event) {
+  event.waitUntil(self.clients.claim());
+});
+</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">ステータス</th>
+ <th scope="col">コメント</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Service Workers', '#service-worker-obj', 'ServiceWorker')}}</td>
+ <td>{{Spec2('Service Workers')}}</td>
+ <td>初期定義。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatChrome(42.0)}}</td>
+ <td>{{ CompatGeckoDesktop("44.0") }}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{ CompatGeckoMobile("44.0") }}</td>
+ <td>{{ CompatVersionUnknown }}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatChrome(42.0)}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Service worker(と <a href="/ja/docs/Web/API/Push_API">Push</a>)は、<a href="https://www.mozilla.org/en-US/firefox/organizations/">Firefox 45 延長サポート版</a>(ESR)では使用できません。</p>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Using Service Workers</a></li>
+ <li><a href="https://github.com/mdn/sw-test">Service workers basic code example</a></li>
+ <li><a href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li>
+ <li>{{domxref("Clients.claim()")}}</li>
+ <li>{{jsxref("Promise", "Promises")}}</li>
+ <li><a href="/ja/docs/Web/Guide/Performance/Using_web_workers">Using web workers</a></li>
+</ul>