Chrome 拡張機能の変更内容

7 月に、拡張機能の開発に関する最新情報をお届けする新しいブログシリーズを開始しました。皆様からの貴重なフィードバックと、WebExtensions コミュニティ グループ内の他のブラウザ ベンダーとの継続的な協力のおかげで、Google は引き続き拡張機能 API を強化し、ブラウザ間の一貫性を高める取り組みを進めています。

10 月号へようこそ。この投稿では、Chrome 拡張機能チームが過去数か月間に行った変更と、今年中にリリースされる新機能をご紹介します。では始めましょう。

新しい拡張機能の API と機能

このセクションでは、重要な API のリリース、その他の API の改善点、今後のリリースについて簡単に説明します。現在、すべてのリリースは最新のベータ版リリースでご利用いただけます。詳しくは、Chrome のリリース スケジュールをご覧ください。

ハイライト

解決済みの既知の問題

拡張機能チームは、Manifest V3 の安定性に関する問題の解決に積極的に取り組んできました。Chrome 116 で多くの改善が加えられたことで、Manifest V2 と V3 の機能ギャップを埋めるうえで大きな前進を遂げました。Chrome 120 では、優先度の高いすべてのプラットフォームのギャップに対する対処が完了し、既知の問題のページに記載されているすべての重大なバグが修正されます。現在、Chrome 120 Canary ではすべての機能をご利用いただけます。ただし、ChromeOS Lacros の fileHandler サポートと、今月下旬に提供予定の userScripts API を除きます。詳細については、最新の既知の問題のページをご覧ください。

Service Worker の安定性の向上

Service Worker 関連の安定性の問題を修正しました。Chrome 116 では、ユーザー プロンプトを表示する強力なキープアライブが拡張機能 API に追加され、WebSocket のサポートが改善されました(拡張機能で WebSocket を使用するのチュートリアルをご覧ください)。Chrome 118 以降では、Debugger API のアクティブなセッションの間、Service Worker はそのままです。

詳しくは、最新の Service Worker ガイダンスをご覧ください。Chrome バージョン 119 以降で Service Worker 関連の安定性に関する問題が解決しない場合は、Google までお知らせください

セキュリティの強化

以前は、tabs.update()tabs.createwindows.create() を使用して chrome:// の URL に移動すると、エラーが発生したり、Chrome がクラッシュしたりしていました。また、tabs.update() で JavaScript の URL を開けませんでした。Chrome 117 では、サポートされる chrome:// URL の数が拡張され、JavaScript URL のブロックがすべての拡張機能 API メソッドに適用されるようになりました。

Chrome 117 では、ユーザーがインストールした拡張機能が Chrome ウェブストアで入手できなくなった場合、Chrome 拡張機能ページで事前通知が表示されるようになります。これは、デベロッパーが拡張機能の公開を停止した場合、拡張機能がポリシー違反により削除された場合、マルウェアとして識別された場合に発生することがあります。詳しくは、chrome://extensions ページに安全確認を実装するをご覧ください。

Chrome 118 では、拡張機能の詳細ページで [ファイルの URL へのアクセスを許可する] オプションが有効になっていない限り、chrome.tabs API と chrome.windows API を使用して拡張機能が file:// URL に移動できなくなります。WECG のディスカッションをご覧ください。

その他の API リリース

  • Runtime API: Chrome 116 以降では、runtime.getContexts() を使用してアクティブなコンテキストに関する情報を取得できます。たとえば、アクティブな画面外ドキュメントがあるかどうかを確認できます。
  • Side Panel API Chrome 116 では、sidepanel.open() を使用して、コンテキスト メニューのクリックなどのユーザー操作に応じて、拡張機能のサイドパネルをプログラムで開けるようになりました。
  • TabCapture API: Chrome 116 では、拡張機能 Service Worker から getMediaStreamId() を呼び出して、画面外ドキュメントのストリーム ID から MediaStream オブジェクトを取得する機能が追加されました。例については、音声録音とスクリーン キャプチャをご覧ください。
  • DeclarativeNetRequest API: Chrome 118 で、isUrlFilterCaseSensitive プロパティのデフォルト値が false に変更されました。

近日提供予定...

既知の問題のページに記載されている残りの項目は、Chrome 120 のリリース時にすべて対処する予定です。さらに、次の機能を追加する予定です。

  • UserScripts API を使用すると、ユーザー スクリプト マネージャーはユーザー スクリプトのコレクションをウェブページに挿入する方法とタイミングを調整できます。詳しくは、WECG 提案をご覧ください。
  • ReadingList API を使用すると、デベロッパーはサイドパネルのリーディング リスト パネルにあるメタデータを作成、読み取り、更新、削除できます。お知らせについては、Chrome 拡張機能の新機能をご覧ください。
  • Web Extensions コミュニティ グループで寄せられたフィードバックを受け、有効な静的ルールセットの上限を 10 から 50 に大幅に引き上げます。さらに、使用できる静的ルールセットの総数を 50 から 100 に増やします。これは現在、Canary で利用できます。
  • File Handling API: は ChromeOS 120 以降、ChromeOS 拡張機能で利用できるようになります。これにより、拡張機能は、ウェブ プラットフォームのファイル処理と同様の方法で、指定された MIME タイプとファイル拡張子を持つファイルを開くことができます。
  • 拡張機能は、userVisibleOnlyfalse に設定することで、ユーザーに表示される通知を表示せずに、self.registration.pushManager.subscribe() を介してウェブの Push API を使用できるようになります。これにより、クライアントとサーバーの非同期通信では、Service Worker の WebSocket(MV3)に代わるよりシームレスなプッシュ通知が実現します。詳しくは、Chromium のバグWECG のディスカッションをご覧ください。

これらの機能が Chrome ベータ版で利用可能になり次第、拡張機能の新機能のページでお知らせしていきます。

ドキュメントのアップグレード

また、ドキュメントの改善と追加も行っています。引き続き chromium-group で質問し、ドキュメントに関する問題を報告してください。

ハイライト

  • サンプルのランディング ページを刷新しました。API、権限、タイプでフィルタできるようになり、特定のサンプルを簡単に見つけられるようになりました。この機能強化は、Summer of Code のインターンである Xuezhou Dai 氏との共同の取り組みです。彼の体験については、こちらのブログ投稿をご覧ください。
  • Chrome ウェブストアで Google アナリティクス アカウントを使用するでは、デベロッパー ダッシュボードで提供されるデータを補完し、Chrome ウェブストアの掲載情報で Google アナリティクス 4 を表示する方法について説明しています。このガイドでは、Google アナリティクスを有効にする手順、広告のパフォーマンスをモニタリングする手順、コンバージョンをトラッキングする手順、他のアカウントに Google アナリティクスのデータへのアクセス権を付与する手順について説明します。
  • Chrome 拡張機能における Cookie と Web Storage API の仕組みに関する新しいガイドを公開しました。拡張機能のデベロッパーとしてプライバシー サンドボックスについて知っておくべきことがすべて含まれています。
  • 拡張機能プロジェクトにテストを統合する方法に関する新しい記事をリリースしました。Chrome 拡張機能の単体テスト拡張機能のエンドツーエンドのテストでは、多くの一般的なフレームワークに関する一般的なガイダンスとベスト プラクティスについて説明しています。実践的なチュートリアルについては、Puppeteer を使用した Chrome 拡張機能のテストをご覧ください。

その他の更新

近日提供予定...

  • User Scripts API のリファレンスとチュートリアル。
  • Firebase のチュートリアルとサンプル。
  • ReadingList API リファレンス。

Chrome ウェブストアをリニューアル 🌈?

Chrome ウェブストアのホームページのスクリーンショット。
Chrome ウェブストアの新しいホームページ

今月初め、Google I/O でお知らせしたとおり、刷新された Chrome ウェブストアの早期プレビュー版を発表しました。ぜひお試しください。https://chromewebstore.google.com/注目すべき変更点は次のとおりです。

  • カテゴリのリストを 11 個から 3 個のうち 17 個のカテゴリ リストに増やしました。
  • 検索のオートコンプリートが改善されました。
  • スクリーンショットが非常に高い画質で表示されるようになりました。まだアップロードしていない場合は、1280x800 のスクリーンショットをアップロードできます。
  • [サポート] タブで質問への返信に改行が表示されるようになりました。
  • ユーザーのレビューやサポートに関する質問に返信する際に、返信内容の名前の横に「デベロッパー」バッジが表示されるようになりました。
  • ストア アイテムの URL の末尾に「/reviews」を追加することで、レビューページへの直接リンクをユーザーに提供できます(例: https://chromewebstore.google.com/detail/_EXTENSION_ID_/reviews)。

これまでの chromium-google グループへの投稿ありがとうございます。ぜひディスカッションにご参加ください。または、[Give feedback] メニュー項目を使用して CWS チームに直接フィードバックをお送りください。

Chrome ウェブストアのページでフィードバックを送信する
Chrome ウェブストア ページでフィードバックを送信する

また、自己推薦フォームを送信して「編集部のおすすめ」コレクションに掲載することもできます。デベロッパー ダッシュボードにも改善が加えられる予定ですので、引き続きご期待ください。

💡? ご存じですか?

  • Chrome 拡張機能のデバッグに関する新しい動画があります。すでになじみがあるトピックの多くを取り上げるだけでなく、拡張機能で DevTools を使用する際のコツもいくつか紹介しています。
  • 今後、拡張機能ごとにプライバシー ポリシーをご提供いただくことが必要になります。これまでは、プライバシー ポリシーはデベロッパー アカウントごとに 1 つしか追加できませんでしたが、1 つのデベロッパー アカウントの下に複数の広告表示オプションを設定しているのは不便です。この新しいインターフェースは、デベロッパー ダッシュボードのアイテムの [プライバシー] タブから利用できます。つまり、アカウント単位のプライバシー ポリシーはサポートされなくなります。
    プライバシー ポリシー ボックスのスクリーンショット
    プライバシー ポリシー ボックスのスクリーンショット

ご連絡をお待ちしています 🙌?

拡張機能のデベロッパー コミュニティとの 1 対 1 の連絡、新しいプログラムの開始、サミットへの参加は継続して行われています。以下に、その一部をご紹介します。

  • 8 月に拡張機能の Google Developer Experts プログラムが開始されました。Chrome 拡張機能に重点を置いた 10 以上の新しい GDE が世界中から寄せられ、素晴らしいフィードバックをいただいています。今年は非常にエキサイティングなプログラムになりました。
  • Google は、Web Extensions Community Group の一員である TPAC(W3C の年次カンファレンス)に参加し、Firefox や Safari の担当者をはじめ、コミュニティの何人かの方々とお会いしました。Google は、より一貫性のある拡張機能 API への移行、仕様の策定、Web Platform Tests を基盤とした新しいテストスイートの作成など、いくつかのトピックにおいて大きな進歩を遂げました。時間の全文については、WECG リポジトリをご覧ください。
  • 先週、拡張機能チームはアムステルダムで開催された Ad-Filtering Dev Summit に参加しました。サミット週の前に開催されたコーヒー チャットで皆さんとお会いし、金曜日のオープン オフィスアワーでお会いしました。
    広告フィルタの Dev Summit の拡張チーム
    広告フィルタの Dev Summit の拡張機能チーム

これらのイベントに参加できなかった方も、引き続き参加できます。chromium-extensions Google グループに質問したり、WECG のブラウザ パートナーとのディスカッションに参加したり、ドキュメントに関する問題があれば報告したりできます。

拡張機能のデベロッパー コミュニティへのご参加に感謝申し上げます。