本記事は Chrome 43 の Service Worker のリリースノートを日本語に意訳し、一部注記を加えたものです。原文は service-worker-discuss グループで読むことができます。


リリースノートを復活させます!2015 年 5 月後半に stable リリースされた Chrome 43 の Service Worker 関係の変更は次の通りです。なお、Chrome 44 は今月後半のリリースが予定されており、またリリースノートを公開する予定です。

新機能

  • Clients.matchAll() をサポートしました。オプショナル引数によってマッチするクライアントの種類を指定することができ、Shared Worker のような non-Window クライアントにも対応しました (Bug, Spec)。
    • (訳者注) クライアントについてはこちらの記事で解説を書きました。
  • Clients.openWindow() で cross-origin URL を開くことができるようになりました (Bug, Spec)。
  • CacheStorage API が Window や Service Worker 以外の Worker 上でも使えるようになりました (Bug, Spec)。注意: 現在 HTTP 上でも使用可能ですが、HTTPS 上でのみ使えるように制限がかけられる可能性があります (Spec Discussion)。

API の変更

  • Clients.getAll() が削除されました。代わりに Clients.matchAll() を使用してください (Bug, Spec)。

改善

  • データベースアクセスの排除により、Clients.claim() がより高速に処理されるようになりました (Bug)。

DevTools 関係の変更

Note: 最新の DevTools を試すために、Dev channel もしくは Canary の使用をおすすめします。

  • UA のオーバライドやネットワーク帯域の制限などが行えるデバイスエミュレーション機能が Service Worker と一緒に使えるようになりました (Bug)。
  • ドキュメントとそれをコントロールする Service Worker を同じ DevTools ウィンドウ上で操作できるようになりました。コンソールのドロップダウンリストからドキュメントと Service Worker のコンテキストを切り替えることができます。
  • DevTools の Sources タブの左側のペインに Service Worker のエントリが表示されるようになりました。
  • ドキュメントのコンソールに Service Worker から出力したメッセージが表示されるようになりました。
  • Service Worker の開発効率向上を目指し、”Service Worker explorer UI” の開発に取り組んでいます。この機能はまだ experimental で、現在 UX の改良を行っています。フィードバックをよろしくお願いします。こちらのスライドも参照してください。

バグフィックス

  • navigator.serviceWorker.register() に渡されたスクリプト URL とスコープは ServiceWorkerContainer のあるドキュメントの URL を基準にパス解決されていましたが、呼び出し元ドキュメントの URL を基準にパス解決されるように修正されました (Bug)。
  • navigator.serviceWorker.ready が shift-reload で開かれたページでも適切に resolve されるようになりました (Bug)。
  • 同一の Service Worker を指す複数の Javascript オブジェクト (ServiceWorker オブジェクト) の状態が適切に同期されていなかった問題が修正されました (Bug)。
  • navigator.serviceWorker.ready はページロード時のスコープマッチで選ばれた ServiceWorkerRegistration の .active で resolve されていましたが、.ready にアクセスした時にスコープマッチしたもので resolve されるように修正されました。これにより、ページロード後に作られた ServiceWorkerRegistration のスコープの方がより長く一致する場合はそちらで resolve されるようになります。
    • (訳者注) ServiceWorkerRegistration のスコープマッチについてはこちらの記事で解説を書きました。
  • バグフィックスの全リストはこちらで確認できます。

草稿を @FalkenMatto (原文の投稿者) にレビューしてもらいました。ありがとうございます。