このページを頻繁にチェックして、Chrome 拡張機能の変更、拡張機能のドキュメント、関連ポリシー、その他の変更について確認してください。その他にも、拡張機能に関する Google グループに投稿されたお知らせがあります。Chrome のスケジュールには、Stable 版と Beta 版のリリース日が記載されています。
動画:リモートホストのコードとは
Chrome 拡張機能チームの Patrick さんが、Chrome 拡張機能におけるリモートホスト コード(RHC)のコンセプトについて説明します。RHC が使用できなくなった理由、RHC の検出方法、拡張機能の更新が必要な場合の対処方法をご確認ください。動画全編をご覧ください。
Chrome 127: 新しい action.openPopup API
Chrome 127 以降、action.openPopup
API はすべての拡張機能で使用できるようになります。これまでは Canary 版またはポリシーによってインストールされた拡張機能でのみ使用できました。
動画: Trust & Safety チームのインタビュー
Chrome 拡張機能 DevRel チームは、Chrome ウェブストアでのレビューを主導する Trust & Safety チームと話し合い、質問しました。動画全編をご覧ください。
ブログ投稿: Manifest V2 の段階的廃止を開始
6 月 3 日より、Chrome Beta、Dev、Canary の各チャンネルで Manifest V2 拡張機能をインストールしているユーザーに拡張機能の管理ページ(chrome://extensions)にアクセスすると、インストール済みの一部の(Manifest V2)拡張機能がまもなくサポートが終了することを知らせる警告バナーが表示されるようになります。詳しくは、公式のお知らせをご覧ください
サイドパネル UI の更新
最近、固定アイコンの追加やグローバルなサイドパネル アイコンの削除など、サイドパネル UI にいくつかの変更を加えました。詳しくは、PSA の記事、最新のドキュメントとサンプルをご覧ください。
ブログ投稿: Google I/O 2024 で発表された Chrome 拡張機能
また、Google I/O で拡張機能に関する最新情報をいち早くお伝えしました。YouTube で全編動画をチェックし、ブログ投稿でハイライトをご覧ください。
対象となる宣言型ネット リクエストの変更の審査をスキップする
Chrome ウェブストアで、宣言型ネット リクエスト API の使用時に、対象となる変更の審査をスキップできるようになりました。利用資格とオプトイン方法について詳しくは、Chrome ウェブストアのドキュメントをご覧ください。
Chrome ウェブストア API で利用可能な deployPercentage
先日、Chrome ウェブストア API のドキュメントを更新し、deployPercentage
に関する情報を追加しました。この情報を使って、部分的なロールアウトのデプロイの割合を割り当てることができます。deployPercentage
の詳細
Chrome 126: 拡張機能のオリジン トライアル
Chrome 126 で新しい manifest.json フィールド trial_tokens
が導入され、すべての拡張機能サーフェスでオリジン トライアルと非推奨トライアルを有効にできるようになりました。詳しくは、ガイドをご覧ください。
ブログ投稿: Chrome 拡張機能の最新情報 - 2024 年 4 月
新しい「Chrome 拡張機能の変更内容」を公開しました。この投稿では、拡張機能チームがこの数か月間取り組んできたことが解説されています。これには、Chrome ウェブストアでのバージョン ロールバック、Firebase Auth のサポートの強化、API のリリースと更新の拡大が含まれます。
Chrome ウェブストア デベロッパー ダッシュボードでのバージョンのロールバック
追加審査を行うことなく、Chrome ウェブストアで以前に公開したバージョンに拡張機能をロールバックできます。詳しくは、ブログ投稿とドキュメントをご覧ください。
Chrome 124: 高度な documentScan API
接続されたドキュメント スキャナから画像を検出および取得するための高度な documentScan
API が ChromeOS で使用できるようになりました。
Chrome 124: Service Worker での WebGPU のサポート
Chrome 124 以降では、Service Worker で WebGPU がサポートされています。まずは、WebGPU 拡張機能のサンプルをご覧ください。
Chrome 123: Events API で CIDR ブロックによるフィルタリングをサポート
Events API で、クラスレス ドメイン間ルーティング(CIDR)ブロックによるフィルタリングがサポートされるようになりました。CIDR ブロックは、ネットワーク プレフィックスと同じビット数を共有する IP アドレスの集まりです。これまで、デベロッパーは複数の IP アドレスをフィルタリングする必要があり、ブロック範囲内のアドレスごとにフィルタルールを構成する必要がありました。拡張機能が addListener()
を呼び出すと、ルールが渡されると、URL のホスト部分が IP アドレスであり、配列で指定された CIDR ブロックのいずれかに含まれている場合にのみ、イベント ハンドラが呼び出されます。
Chrome ウェブストア: 拡張機能名の長さ要件を更新
Chrome ウェブストアで、manifest.json の拡張機能の "name"
フィールドが 75 文字に制限されるようになりました。以前は、英語での上限は 45 文字で、他の言語 / 地域では "name"
フィールドに制限はありませんでした。
これはもともと、同じ文字数では捉えられないような文化的および言語的な違いを可能にすることを意図していました。残念ながら、この機能は、ストアへのスパム行為を目的として少数のデベロッパーに悪用されていました。これに伴い、新しい共通の上限として 75 文字を導入することになりました。この制限は、現在ストアで提供されているほぼすべての拡張機能に適用されるため、この変更に伴うお客様側でのご対応は特に必要ありません。上限を超える名前の拡張機能をアップロードしようとすると、ストアによってアップロードがブロックされます。
ブログ投稿: beo が Service Worker の停止をテスト
eyeo の Extension Engine チームによるこの投稿では、拡張機能 Service Worker のテストに関する問題について説明します。Manifest V2 の拡張機能はバックグラウンド ページにあり、拡張機能のライフサイクル全体を通してウェイクアップされていました。Manifest V3 では代わりに Service Worker が使用されますが、Service Worker は設計上、不要になったときにシャットダウンすることでリソースを節約します。このため、テストにはある程度の課題があります。この投稿では、eyo がこれらの課題にどのように対処したかを説明しています。
Chrome 123: デバイスがスリープ状態のときにアラームを実行できるように
chrome.alarms
API を使用して設定したアラームが、デバイスがスリープ状態になったときに遅延することがなくなりました。デバイスが起動すると、見逃したアラームの数に関係なく、アラームが 1 回発生します。たとえば、アラームが 1 時間に 1 回鳴るように設定されていて、アラームがオンになっているデバイスが午前 0 時 55 分から午前 2 時 5 分までスリープ状態の場合、午前 2 時のアラームのみが onAlarm
イベントをトリガーします。このイベントは、できる限り午前 2 時に近いタイミングでトリガーされ、スリープ状態の場合はデバイスが復帰したときにすぐに呼び出されます。
この変更により、Chrome は Web Extensions コミュニティ グループで合意された動作と一致します。
ブログ投稿: 拡張機能のメッセージ ポートでの bfcache の動作の変更
バックフォワード キャッシュ(bfcache)は、すぐに前または次のページに移動できるようにブラウザを最適化する機能です。Chrome 123 以降では、拡張機能ポートが開いているページが bfcache に保存されると、メッセージ チャンネルは閉じられます。つまり、そのページにはメッセージが送信されません。したがって、拡張機能スクリプトは onDisconnect
などのライフサイクル イベントをリッスンし、ページが BFCache から復元されたときに新しい接続を設定する必要があります。
詳細とサンプルコードについては、拡張メッセージ ポートを使用した BFCache の動作の変更をご覧ください。
Chrome 122: 非同期拡張 API に対する Promise のサポート
これで、すべての非同期拡張 API メソッドに対する Promise サポートの実装が完了しました。これは、非同期オペレーションを扱う際のエルゴノミクスを改善することで、API メソッドをモダナイズするために行われました。一部のメソッド(desktopCapture.chooseDesktopMedia()
など)は、現在のサーフェスが Promise と互換性がないため、引き続きコールバックのみをサポートしています。下位互換性を維持するため、コールバックは引き続きサポートされます。失敗した Promise が見つかった場合は、バグを報告してください。
リアルタイムのコミュニケーションに関する新しいガイダンス
拡張機能のリアルタイム オプションに関するガイドを公開しました。リアルタイム更新により、サーバーから拡張機能のインストールへの直接の通信パスを即座に確立できます。また、chrome.gcm、ウェブプッシュの使用に関する新しいガイダンスも追加しました。
新しいガイダンスとサンプル: Service Worker の終了のテスト
Puppeteer で Service Worker の終了をテストする方法に関するガイドを公開しました。付属のサンプルでは、Puppeteer と Selenium でこれを示しています。
ネイティブ メッセージングのサンプルを更新
ネイティブ メッセージングの最新のサンプルを公開しました。この API を使用すると、拡張機能で別のアプリケーションを起動して通信できます。この取り組みのために、GitHub の投稿者である Shubham-Rasal に感謝します。
Chrome 121: tab.Tab に新しい lastAccessed プロパティを追加
lastAccessed
という名前の新しいプロパティが tabs.Tab
オブジェクトに追加されました。このプロパティは、タブが最後に有効になった日時を示します。エポックからのミリ秒数が返されます。
Chrome 121: サポートされていない「背景」キーで警告を表示
Manifest V2 から Manifest V3 への変更では、バックグラウンド スクリプトを拡張機能 Service Worker に置き換えるため、"background"
マニフェスト キーの子が変更されました。以前は、Manifest V2 のキー "scripts"
、"page"
、"persistent"
を Manifest V3 拡張機能の "background"
キーに追加すると、エラーがスローされていました。これらのキーが存在する場合は、警告がトリガーされます。
これは、コミュニティ グループの提案に沿って、複数のブラウザの拡張機能で 1 つのマニフェスト ファイルを使用できるようにするための措置です。
Chrome 120: アラームの最小粒度を 30 秒に縮小
Chrome 120 以降、Manifest V3 拡張機能で chrome.alarms
API を遅延または 30 秒の時間で使用できるようになりました。60 秒以上の値を必要としません。
ブログ投稿: Manifest V3 への移行を再開する
Manifest V2 のサポート タイムラインが更新されました。詳しくは、2023 年 11 月のブログ投稿をご覧ください。
ブログ投稿: Manifest V3 でのコンテンツ フィルタリングのサポートの改善
declarativeNetRequest API がどのように改善されたかについては、新しいブログ投稿をご覧ください。
ブログ投稿: 拡張機能向け Chrome 120 の新機能
Chrome 120 ベータ版が最近リリースされました。拡張機能のデベロッパーに関連する重要な更新の概要については、新しいブログ投稿「拡張機能向け Chrome 120 の新機能」をご覧ください。また、今回のリリースにより、プラットフォームの重大なギャップのリストから残り 2 つの項目(userScript、ChromeOS のファイル ハンドラ)が削除され、大きな節目となります。
PSA: デベロッパー ダッシュボードにおけるプライバシー ポリシーの URL の処理に関する変更
デベロッパー ダッシュボードのプライバシー ポリシーがアイテムレベルで追加されるようになりました。これにより、アイテムごとに異なるプライバシー ポリシーを指定できます。この変更について詳しくは、PSA をご覧ください。
動画: Matt Frisbie とのチャット
Chrome for Developers YouTube チャンネルで、Google Developer Expert の著者で Matt Frisbie が語る新しい動画を公開しました。こちらをご覧ください。
拡張機能のテストに関する新しいガイダンス
拡張機能の自動テストの作成方法に関する新しいガイダンス(単体テストの作成方法、エンドツーエンド テストに関する一般的なガイダンスとチュートリアルを含む)が公開されました。
ブログ投稿: Chrome 拡張機能の最新情報 - 2023 年 10 月
このたび「Chrome 拡張機能の変更内容」の第 2 号を発行しました。この投稿では、Service Worker の安定性に関する問題や MV3 プラットフォーム上のすべてのギャップを解消するための進展など、拡張機能チームがこの数か月間取り組んできた取り組みについて解説します。また、Reading List API や User Scripts API など、今後の API リリースについてもご紹介します。
宣言型ネット リクエスト API の静的ルールセットの上限を引き上げ
Web Extensions コミュニティ グループのフィードバックを受け、有効な静的ルールセットの上限を 10 から 50 に大幅に引き上げます。さらに、許可される静的ルールセットの合計数が 50 から 100 に増えます。これは現在、Canary で利用できます。
リモートでホストされるコードに関するガイダンスの改善
Manifest V3 では、拡張機能がリモートでホストされるコードを使用できないようにする必要があります。これは当初から移行ガイドに含まれていたものですが、この問題に関するガイダンスを改善する価値はあると考えました。このページでは、Manifest V3 で引き続きできることを説明し、アップグレード戦略に関する詳細情報を提供しています。
Chrome ウェブストアの違反に関するトラブルシューティングに関連する追加情報があります。新しいセクションで、リモートでホストされるコードを含む拡張機能が不承認となる一般的な理由について説明しています。
Chrome 118: isUrlFilterCaseSensitive をデフォルトで false に設定
Chrome 118 以降、chrome.declarativeNetRequest API の isUrlFilterCaseSensitive
プロパティがデフォルトの false
に変更されました。以前の動作を維持する場合は、declarativeNetRequest ルールで isUrlFilterCaseSensitive
を明示的に true
に設定します。
これは、Web Extensions コミュニティ グループのディスカッションに従います。Firefox と Safari にも、すでに同様の変更が加えられています。
Cookie とウェブ ストレージ API のドキュメント
Chrome 拡張機能での Cookie とウェブ ストレージ API の仕組みに関する新しいガイドを公開しました。 ここでは、プライバシー サンドボックスにおける Cookie とストレージのパーティショニングの変更について詳しく説明します。プライバシー サンドボックスは、一連の新しいウェブ プラットフォーム API を作成することでサードパーティ Cookie を廃止する継続的なプロジェクトです。また、拡張機能での動作について詳しく説明します。
拡張機能のサンプルが検索可能に
先日、Chrome 拡張機能のサンプルを検索できるページを作成しました。検索ページには複数のオプションがあります。検索ボックスを使用すると、サンプルのタイトル内のテキストを検索できます。権限または拡張機能の API によって検索を制限できます。追加のフィルタを使用すると、検索を API サンプルまたは機能(ユースケース)サンプルに限定できます。
この新しいサンプルページは、Google Summer of Code の参加者である Xuezhou Dai によって構築されました。また、新しいサンプルもいくつか貢献してくれました。この夏の様子については、ブログの投稿をご覧ください。
以前と同様に、クローン作成またはフォーク用に、コードサンプルを GitHub で引き続き利用できます。
Chrome 118: ファイルを開く際の変更: スキーム URL
Chrome 118 以降、拡張機能で Tabs API または Windows API を使用して file:// スキーム URL を開くには、chrome://extensions
ページで [ファイルの URL へのアクセスを許可する] 設定を有効にする必要があります。このアクセスをプログラムで確認するには、chrome.extension.isAllowedFileSchemeAccess()
を呼び出します。Firefox ではすでにファイルの URL が制限されていますが、Safari ではこの変更がサポートされています。詳しくは、拡張機能に関する Google グループの投稿をご覧ください。
Chrome 117: 拡張機能 API ナビゲーションの拡張 URL 保護
以前は、tabs.update()
、tabs.create()
、windows.create()
の拡張機能 API 呼び出しからトリガーされたナビゲーションで、一部の chrome:// URL でエラーが発生していました。また、JavaScript URL で tabs.update()
を呼び出すことは禁止されています。117 では、JavaScript URL に対するこうした保護が tabs.create()
メソッドに拡張され、前述のすべてのメソッドに適用される禁止 URL のリストに chrome:// URL が多数追加されました。
declarativeNetRequest API のガイダンスの改善
chrome.declarativeNetRequest
API は、宣言型のルールを指定することで、ネットワーク リクエストをブロックまたは変更します。これにより拡張機能は、リクエストをインターセプトしてコンテンツを閲覧することなく、ネットワーク リクエストを変更できるため、ユーザーのプライバシーが向上します。また、使い方も簡単ではありません。この点を念頭に置き、宣言型のルールセットの実装方法をより明確に理解できるようにガイダンスを改訂しました。上記のリンクの新しいセクションをお読みください。
Chrome ウェブストアで Google アナリティクス アカウントを使用する
Chrome ウェブストアは Google アナリティクスと統合できるため、デベロッパー ダッシュボードに表示されるビューに加え、Chrome ウェブストアの掲載情報の分析情報を確認できます。詳しくは、Chrome ウェブストアで Google アナリティクス アカウントを使用するをご覧ください。
Chrome 115: DevTools がデフォルトでコンテンツ スクリプトを管理
挿入されたコンテンツ スクリプトが、デフォルトで DevTools の無視リストに追加されました。これはブレークポイントには影響しませんが、デバッグ中にコンテンツ スクリプトがステップオーバーされ、それらのスクリプトからの例外は無視されます。[ソース] タブでコンテンツ スクリプトを開くと、この機能がオンになっていることを示すバナーが表示され、無視リストからコンテンツ スクリプトを削除するオプションが表示されます。この動作をオフにするには、DevTools を開いて [Settings]、[Ignore list] の順に移動します。詳細については、DevTools の新機能をご覧ください。
Chrome 116 ベータ版: この枠を超える
Chrome 116 は拡張機能の大規模なリリースです。サイドパネルをプログラムで開けるようになりました。新しいメソッドを使用すると、アクティブなオフスクリーン ドキュメントがあるかどうかを確認できます。Service Worker の複数の改善点Android 116 には十分な改善点があり、その点についてはブログ投稿で解説しています。7 月 19 日時点で Chrome 116 はベータ版です。
ブログ投稿: Chrome 拡張機能の最新情報
今年度の広告表示オプションの変更点と改善点の概要を公開しました。この投稿では、Side Panel API、Service Worker の機能強化、オフスクリーン ドキュメントなど、今年の大きな新機能について説明します。また、今四半期の取り組みについてもご覧いただけます。この記事では、その他にも多くのリストと、そのすべてへのリンクを紹介しています。
新しいガイダンスとサンプル: Chrome 拡張機能で Google アナリティクス 4 を使用する方法を確認する
新たに Google アナリティクスと位置情報に関するガイダンスとサンプルを公開しました。
- Google アナリティクス ガイダンスの最新版では、Chrome 拡張機能で Google アナリティクス 4 を使用する方法について説明しています。また、GitHub サンプル リポジトリに、動作中の Google アナリティクス 4 のサンプルも追加しました。
google-analytics.js
で、Google アナリティクスに関連する関連コードを確認します。 - Service Worker、コンテンツ スクリプト、ポップアップ、サイドパネルで位置情報にアクセスする方法を示す新しい位置情報ガイドと 3 つのサンプル。
Chrome 115: chrome.offscreen.createDocument() で複数の理由を指定する
chrome.offscreen.createDocument()
を呼び出すときに、複数の reason
列挙型を指定できるようになりました。オフスクリーン ドキュメントを複数の目的で使用する場合に使用します。ブラウザでは、提供された理由に基づいてオフスクリーン ドキュメントの有効期間が決定されます。
新しいツール: 拡張機能更新テストツール
このたび、拡張機能更新テストツールをリリースしました。これは、ローカル開発中に Chrome 拡張機能の更新(権限付与を含む)をテストするローカル拡張機能更新サーバーです。このツールはユーザーの更新フローを示しており、ユーザーが新たにリクエストした権限を付与するまで拡張機能は無効のままになります。このツールは、拡張機能を Manifest V2 から Manifest V3 に更新する際にリクエストされる権限の変更をシミュレートする場合に特に便利です。
Chrome 114: 新しいサイドパネル API
新しい Side Panel API が導入されました。これは、ユーザーがブラウジングしているコンテンツとともにツールにアクセスできるコンパニオン サーフェスです。詳しくは、Side Panel API リファレンスをご覧ください。また、GitHub サンプル リポジトリにサイドパネルのサンプルも多数追加しました。サイドパネルの詳細については、新しいブログ投稿「新しい Side Panel API を使用して優れたユーザー エクスペリエンスを設計する」でも説明しています。Google の品質に関するガイドライン ポリシーとおすすめの方法も審査し、質の高いサイドパネル表示オプションを作成するための詳しいガイダンスを提供しました。
皆様からのフィードバックは、この API を作成するうえで重要です。chromium-groups で意見や機能リクエストを共有してください。Side Panel API の改善に伴う新しい更新情報にご注目ください。
新しいサンプル: 拡張機能での WASM
拡張機能で WASM を使用する方法を示す 2 つの新しいサンプルが公開されています。
- Manifest V3 での WASM の使用では、WASM モジュールを含める一般的な方法を示しています。
- Manifest V3 でモジュールとして WASM を使用するでは、モジュールで WASM を使用する方法について説明します。
これらのサンプルを提供してくれた GitHub のコントリビューター @daidr に心より感謝します。
Manifest V3 の移行ガイダンスの更新
Manifest V3 移行ガイダンスの既知の問題セクションを更新し、新しい Manifest V2 のサポート終了スケジュールを発表する前に解消する予定の拡張機能プラットフォーム ギャップのリストを更新しました。
Manifest V3 を使用した音声と動画の録画
このたび、音声録音とスクリーン キャプチャという新しい記事を公開しました。この記事では、Manifest V3 のタブ、ウィンドウ、画面からの音声や動画の記録について説明しています。この記事では、chrome.tabCapture
API と getDisplayMedia()
関数を使用して記録するための複数の方法について説明します。
Chrome 114: storage.local の割り当てを引き上げ
storage.local
プロパティの割り当てを約 10 MB に増やしました。これは Web Extensions コミュニティ グループで同意されました。これにより、Chrome 112 で変更された storage.session
と storage.local
が一致するようになりました。
新しい拡張機能 Service Worker のチュートリアルとヘルプ
Service Worker は Chrome 拡張機能に欠かせないツールです。Service Worker の登録、デバッグ、操作の基本について説明したチュートリアルを公開しました。また、重要なコンセプトを詳しく説明する新しい Service Worker ガイドも追加しました。今後数か月でこのセクションを拡張する予定です。
ウェブストアの違反に関するトラブルシューティングのその他のヒント
Chrome ウェブストアでの公開に役立つ新しいガイダンスを 2 つの分野に追加しました。最低限の機能に関するガイダンスは、ユーザーにメリットを提供し、ブラウジング体験を充実させることが中心です。アフィリエイト広告のガイダンスでは、収益化のためにアフィリエイト リンクやコードを使用している拡張機能をユーザーに知ってもらい、掲載する前にユーザーの操作を要求することである程度の制御を可能にしています。
拡張機能マニフェスト コンバータの新しい手順
拡張機能マニフェスト コンバータの README を書き直し、ツールの実行後に必要な操作を簡単に確認できるようにしました。このコンバータは、Manifest V2 で構築された拡張機能を Manifest V3 に移行するのに役立ちます。新しい README では、移行ガイドのチェックリストとほぼ一致する単語を使用して、ツールの機能について説明しています。コンバータがすべてを行うわけではありませんが、人間による判断が不要な多くのタスクがなくなります。
Chrome 113: オフスクリーン ドキュメントの新しい理由
Offscreen Documents API に 2 つの新しい理由タイプを追加しました。LOCAL_STORAGE
を使用して、ウェブ プラットフォームの localStorage API にアクセスします。ウェブワーカーの作成時に WORKER
を使用します。
デベロッパー ダッシュボードに Google アナリティクス 4 を追加
Chrome ウェブストア デベロッパー ダッシュボードで Google アナリティクス 4(GA4)がサポートされるようになりました。Google アナリティクスの設定がシンプルになり、グループ投稿者のアクセス管理が簡単になりました。以前に Google ユニバーサル アナリティクスを使用してストアの掲載情報のアクティビティをトラッキングしていた場合は、引き続きストアの掲載情報に関するデータを受信できるよう、2023 年 7 月 1 日までにご対応ください。詳しくは、Chromium 拡張機能に関する Google グループの投稿をご覧ください。
ChromeOS に File Handling API を導入
File Handler API は、ChromeOS のバージョン 112 と 113 の Canary 版で使用できます。ChromeOS の拡張機能は、指定された MIME タイプとファイル拡張子を持つファイルを開くことができます。ファイル処理を実装するには、一連のルールを manifest.json
に追加します。この機能は、プログレッシブ ウェブアプリの場合と同じように機能します。詳しくは、このサイトの他の記事をご覧ください。
ファイル操作を有効にするには:
- 112 以降では、
--enable-features=ExtensionWebFileHandlers
フラグを使用して Chrome を起動 - 113 以降では、Chrome のアドレスバーに
os://flags/#extension-web-file-handlers
を貼り付けて、プルダウン メニューから [有効] を選択します。
この機能は 6 月下旬の Chrome 115 でリリースされる予定です。このスペースで最新情報をご確認ください。
新しいサンプル: 動的宣言とプログラムによる挿入
chrome.scripting
API の新しいサンプルを作成しました。ここでは、実行時にコンテンツ スクリプトを登録する動的な宣言と、プログラムによる挿入について説明します。プログラマティック インジェクションでは、すでに開いているタブでスクリプトが実行されます。
新しいサンプル: 宣言型ネット リクエストのユースケース
Declarative Net Request API を示す 3 つの新しいサンプルが公開されました。それぞれが 1 つのユースケースの実装を示しています。最初の例は、Cookie をブロックする方法を示しています。残りの 2 つの URL は、URL のブロックとリダイレクトを示しています。
Chrome 112: storage.session の割り当てを引き上げ
Chrome 112 以降、storage.session
プロパティの割り当てが約 10 MB に引き上げられました。これは、Web Extensions コミュニティ グループ(https://github.com/w3c/webextensions/issues/350)で合意されています。
Chrome 109: オフスクリーン ドキュメント
Manifest V3 拡張機能でオフスクリーン ドキュメントを利用できるようになりました。これらは DOM 関連の機能と API をサポートするため、バックグラウンド ページから拡張機能 Service Worker への移行に役立ちます。詳しくは、こちらのブログ投稿をご覧ください。
Chrome 110: 拡張機能が有効になっている
chrome.action.isEnabled()
メソッドは、特定のタブで拡張機能が有効になっているかどうかをプログラムで確認します。これにより、タブを有効な状態に維持する必要がなくなります。この新しいメソッドは、タブ ID とコールバックへの参照を受け取り、ブール値を返します。ただし、chrome.declarativeContent
を使用して作成されたタブは常に false を返すという制限があります。
(最近、chrome.action
名前空間に、拡張機能バッジの外観を制御するための新しいメソッドが追加されました。詳しくは、バッジの色の設定をご覧ください)。
Chrome 110: Service Worker のアイドル タイムアウトの変更
以前は、拡張機能の Service Worker は頻繁に 5 分でシャットダウンされていました。この動作を、ウェブにおける Service Worker の存続期間により近い動作にしました。拡張機能の Service Worker は、非アクティブな状態が 30 秒間続くか、1 つのアクティビティの処理に 5 分以上かかるとシャットダウンされます。詳細については、拡張機能の Service Worker の存続期間を延長するをご覧ください。
投稿: Manifest V2 の段階的廃止を一時停止する
Manifest V2 のサポート終了スケジュールは現在検討中であり、2023 年初頭に予定されていたテストは延期されています。詳しくは、Google グループの chromium-extensions の更新情報をご覧ください。
Chrome 110: バッジの色を設定する
chrome.action
名前空間に、外観拡張機能バッジをより細かく制御できる 2 つの新しいメソッドが追加されました。setBadgeTextColor()
メソッドと getBadgeTextColor()
メソッドを使用すると、拡張機能でツールバー アイコンのバッジテキストの色を変更したりクエリしたりできます。これらの新しいメソッドを setBadgeBackgroundColor
および getBadgeBackgroundColor
と併用すると、デザインとブランドの一貫性を高めることができます。
ブログ投稿: Manifest V3 への移行の詳細
Manifest V2 のサポート終了スケジュールを明確化しました。Manifest V2 のサポート タイムラインも更新し、この情報を反映しました。
ドキュメントの更新: Manifest V3 への移行時の既知の問題
現在開発中の主な機能と未解決のバグの一覧をまとめています。このページの目的は、デベロッパーが将来に向けてプラットフォームの現状とターゲットとなる機能をより深く理解できるようにすることです。
Chrome ウェブストア: 「大きなプロモーション タイル」画像のアップロードの削除
Chrome ウェブストアのデベロッパー ダッシュボードの [ストアの掲載情報] タブから「大きなプロモーション タイル」アップロード UI が削除されました。これらの画像は一般ユーザー向けの UI では使用されていないため、この変更はエンドユーザー エクスペリエンスには影響しません。詳しくは、こちらの chromium-extensions の投稿をご覧ください。
Chrome 106: file:// URL のページからウェブアクセス可能なリソースへのアクセスを許可
crbug.com/1219825#c11 によると、サンドボックス化された iframe や動的インポートなどの不透明なオリジンも、ウェブでアクセス可能なリソースにアクセスできる必要があります。
Chrome 106: 一部の非同期 API 関数で最終引数が正しくないことがあるバグを修正
これまでは、Manifest V3 で非同期 API を呼び出すと、無効な最終引数が指定されることがあり、Chrome ではエラーが発生しませんでした。この修正により、Chrome でエラーが正しく発生し、一致する署名がなかったことが報告されるようになりました。API 呼び出しの署名が誤っていて、このバグの修正によって機能しなくなる場合に備えて、Canary の拡張機能でエラーが発生していないか確認することをおすすめします。
ブログ投稿: Chrome ウェブストアのアナリティクス ツールが改良
Chrome ウェブストアの Chrome ウェブストア デベロッパー ダッシュボードでアイテム分析機能を刷新しました。新しいダッシュボードは一目で理解しやすく、最も有用な情報があらかじめ統合されています。詳しくは、こちらのブログ投稿をご覧ください。
Chrome 105: Identity API に関する約束
Identity API の関数で Promise ベースの呼び出しがサポートされるようになりました。これにより、identity.getAuthToken()
のサーフェスが若干変更されます。Promise ベースの呼び出しに設定された非同期リターンは、1 つのオブジェクトのパラメータとして「token」と「grantedScopes」になります(コールバック バージョンが個別の引数としてこれらを受け取る場合とは異なります)。
Chrome 104: Manifest V3 向けの新しいファビコン API
Manifest V3 拡張機能で、新しい URL パターン chrome-extension://<id>/_favicon/
を使用してファビコンにアクセスできるようになりました。chrome://favicons
API に代わるものです。詳しくは、Favicon API のドキュメントをご覧ください。
ドキュメントの更新: デベロッパーのトレーダー/非トレーダーの開示
トレーダー/非トレーダー デベロッパーの識別情報を追加しました。これにより、デベロッパーは取引業者/非取引業者のステータスを正確に自己申告できるようになります。
Chrome 103: Manifest V3 の Wasm に wasm-unsafe-eval が必要
Chrome で拡張機能に script-src: wasm-unsafe-eval
がデフォルトで付与されなくなりました。WebAssembly を使用する拡張機能では、このディレクティブと値を content_security_policy
宣言の extension_pages
に明示的に追加する必要があります。
Chrome 103: MV3 のショートカットの変更がすぐに反映される
chrome://extensions/shortcuts
で Manifest V3 拡張機能のキーボード ショートカットを変更するときに、更新がすぐに適用されるようになりました。これまでは、変更を有効にするには拡張機能を再読み込みする必要がありました。
Chrome 102: メインの環境での動的コンテンツのスクリプト
動的に登録されたコンテンツ スクリプトで、アセットを挿入する世界を指定できるようになりました。詳しくは、scripting.registerContentScripts()
をご覧ください。
Chrome 102: 新しいマニフェスト フィールド「optional_host_permissions」
Manifest V3 拡張機能で manifest.json で optional_host_permissions
キーを指定できるようになりました。これにより、Manifest V2 拡張機能が optional_permissions
キーを使用する場合と同様に、Manifest V3 拡張機能でホストのオプションの一致パターンを宣言できるようになります。
Chrome 102: scripting.executeScript() の insertImmediately プロパティ
chrome.scripting.executeScript()
が、injection
引数でオプションの injectImmediately
プロパティを受け取るようになりました。この要素が存在し、true に設定されている場合、スクリプトは document_idle
を待つのではなく、できるだけ早くターゲットに挿入します。ただし、ページが読み込まれる前にスクリプトによって挿入が行われるとは限りません。これは、API 呼び出しが行われている間もページの読み込みが継続するためです。
Chrome 102: Manifest V3 でのアドレスバー API のサポート
Omnibox API が Service Worker ベースの拡張機能で使用できるようになりました。以前、この API のメソッドの一部は、DOM 機能への内部依存関係により呼び出しでスローされていました。
Chrome 102: Manifest V3 CSP で wasm-unsafe-eval を許可
Manifest V3 拡張機能で、content_security_policy
宣言に wasm-unsafe-eval
を使用できるようになりました。この変更により、Manifest V3 拡張機能で WebAssembly を使用できるようになります。
Chrome 102: 新しい storage.session API
Manifest V3 拡張機能でメモリ ストレージ storage.session を使用できるようになりました。
ドキュメントの更新: Chrome ウェブストアのアイテム検索
Chrome ウェブストアでの検索では、ユーザーが Chrome ウェブストアでアイテムを見つける方法と、編集者が紹介するアイテムをどのように選択しているかについての概要を確認できます。
Chrome 101: declarativeNetRequest のドメイン条件を改善
declarativeNetRequest ルールの条件が更新され、拡張機能でリクエストの「リクエスト」ドメインと「イニシエータ」ドメインに基づいてリクエストをより的確にターゲットにできるようになりました。関連する条件プロパティは、initiatorDomains
、excludedInitiatorDomains
、requestDomains
、excludedRequestDomains
です。こちらの chromium-extensions のスレッドもご覧ください。
Chrome 100: 新しく作成されたタブでの scripting.executeScript() に関する問題を解決
新しく作成されたタブまたはウィンドウで scripting.executeScript()
の呼び出しが失敗する場合があった、以前から存在していた問題を修正しました。
Chrome 100: ネイティブ メッセージング ポートで Service Worker を維持
拡張機能の Service Worker で chrome.runtime.connectNative()
を使用してネイティブ メッセージング ホストに接続すると、ポートが開いている限り Service Worker が存続します。
Chrome 100: omnibox.setDefaultSuggestion() で Promise とコールバックをサポート
omnibox.setDefaultSuggestion()
メソッドは、Promise を返すか、コールバックを受け入れるようになりました。これにより、デベロッパーは提案が適切に設定されたタイミングをデベロッパーが確認できます。
Chrome 100: 拡張機能 Service Worker での i18n.getMessage() のサポート
chrome.i18n.getMessage()
API が拡張機能の Service Worker コンテキストでサポートされるようになりました。
Chrome 99: Canary の match_origin_as_fallback
コンテンツ スクリプトで、match_origin_as_fallback
キーを指定して、一致するフレームに関連するフレーム(about:
、data:
、blob:
、filesystem:
の URL を持つフレームなど)に挿入できるようになりました。詳しくは、コンテンツ スクリプトのドキュメントをご覧ください。
Chrome 99: Service Worker でのファイル: Canary のスキームに対する拡張機能のサポート
Service Worker ベースの Manifest V2 拡張機能と Manifest V3 拡張機能で Fetch API を使用して file:
スキーム URL をリクエストできるようになりました。file:
スキーム URL にアクセスするには、ユーザーが chrome://extensions
ページで拡張機能の [ファイル URL へのアクセスを許可する] を有効にする必要があります。
Chrome 99: Canary でのメッセージング API のサポートを約束
Manifest V3 用に作成された拡張機能の tabs.sendMessage
、runtime.sendMessage
、runtime.sendNativeMessage
に、Promise のサポートが追加されました。
ドキュメントの更新: Chrome ウェブストアのレビューに関するドキュメント
Chrome ウェブストアのレビュー プロセスの概要と、デベロッパー プログラム ポリシーの違反に対する措置について説明する新しいリファレンス ページを追加しました。
Chrome 98: scripting.executeScript() と scripting.insertCSS() を複数ファイルを受け入れる
Scripting API の executeScript()
メソッドと insertCSS()
メソッドが複数のファイルを受け入れるようになりました。これまで、これらのメソッドには単一のファイル エントリを持つ配列が必要でした。
ドキュメントの更新: 違反に関するトラブルシューティングの最新情報を確認する
Chrome ウェブストアの違反に関するトラブルシューティング ページが更新され、デベロッパーに拒否の一般的な理由についてより詳細なガイダンスを提供できるようになりました。
Chrome 96: Promise のサポートを 27 個の API に拡大
このリリースには、以前のリリースよりもはるかに多くの Promise アップデートが含まれています。更新には、一般的な拡張機能 API と ChromeOS 固有の拡張機能 API の両方が含まれます。詳しくは、以下のセクションを開いてください。
拡張機能 API
多くの API が Manifest V3 の Promise をサポートするようになりました。
chrome.browsingData
chrome.commands
chrome.contentSettings
chrome.debugger
chrome.downloads
chrome.enterprise.hardwarePlatform
chrome.fontSettings
chrome.history
chrome.instanceID
chrome.permissions
chrome.processes
chrome.search
chrome.sessions
chrome.topSites
また、ChromeSetting
プロトタイプを使用する API も Promise をサポートするようになりました。この変更の影響を受ける API は次のとおりです。
ChromeOS API
chrome.certificateProvider
chrome.documentScan
chrome.enterprise.deviceAttributes
chrome.enterprise.networkingAttributes
chrome.fileBrowserHandler
chrome.fileSystemProvider
chrome.loginState
chrome.printingMetrics
chrome.wallpaper
Chrome 96: 動的コンテンツのスクリプト
chrome.scripting
API で、実行時にコンテンツ スクリプトの登録、更新、登録解除、リストの取得がサポートされるようになりました。これまでコンテンツ スクリプトは、拡張機能の manifest.json で静的に宣言するか、chrome.scripting.executeScript()
を使用して実行時にプログラムによって挿入する必要がありました。
ドキュメントの更新: Manifest V2 のサポート タイムライン
Manifest V2 から V3 への移行タイムラインをこちらのブログ投稿で発表し、より詳細なタイムライン ページを公開しました。
Chrome 96: declarativeNetRequestWithHostAccess 権限
新しい declarativeNetRequestWithHostAccess
権限により、拡張機能がホスト権限を持つサイトで chrome.declarativeNetRequest
API を使用できるようになります。また、これにより、webRequest
、webRequestBlocking
、サイト固有のホスト権限を使用する既存の Manifest V2 拡張機能も、ユーザーが新しい権限を承認しなくても chrome.declarativeNetRequest
API に移行できます。
Chrome 95: スクリプトをページに直接挿入
chrome.scripting
API の executeScript()
メソッドで、ページのメイン画面にスクリプトを直接挿入できるようになりました。これまで拡張機能は、拡張機能の隔離された環境に直接挿入することしかできませんでした。分離された世界について詳しくは、コンテンツ スクリプトのドキュメントをご覧ください。
Chrome 95: Storage API のサポートを約束
chrome.storage
API の Manifest V3 バージョンのメソッドが Promise を返すようになりました。
ポリシーの更新: 2 段階認証プロセスの適用
2021 年 6 月 29 日に公開されたポリシー更新のブログ投稿が更新され、2 段階認証プロセスのデプロイ タイムラインが修正されました。
Chrome 94: 宣言型のネット リクエストの静的ルールセットの変更
chrome.declarativeNetRequest
では、一度に最大 50 個の静的ルールセット(MAX_NUMBER_OF_STATIC_RULESETS)を指定し、最大 10 個のルールセット(MAX_NUMBER_OF_ENABLED_STATIC_RULESETS)を有効にできるようになりました。
Chrome 93: クロスオリジン分離のサポート
Manifest V2 と Manifest V3 拡張機能の両方でクロスオリジン分離を有効にできるようになりました。この機能により、拡張機能のページの読み込みに使用できるクロスオリジン リソースが制限され、SharedArrayBuffer
などの低レベルのウェブ プラットフォーム機能の使用が可能になります。Chrome 95 以降、オプトインが必要になります。
ポリシーの更新: デベロッパー プログラム ポリシーの更新
Chrome ウェブストアのデベロッパー プログラム ポリシーが更新され、不正なインストール手法、スパム、コンテンツの繰り返しに関するポリシーを明確化しました。このアップデートには、Chrome ウェブストアで公開するための新しい 2 段階認証プロセス要件も含まれています。詳しくは、こちらのブログ投稿をご覧ください。
ブログ投稿: Manifest V3 での拡張機能の操作
Chrome 拡張機能には数年前から chrome.browserAction
API と chrome.pageActions
API がありましたが、Manifest V3 では両方とも汎用の chrome.actions
API に置き換えられました。この投稿では、これらの API の歴史と Manifest V3 の変更内容について説明します。投稿を読む。
ブログ投稿: chrome.scripting のご紹介
chrome.scripting
API は、スクリプト作成に重点を置いた新しい Manifest V3 API です。この投稿では、この変更の動機を深く掘り下げ、新機能について詳しく説明します。投稿を読む。
Chrome 92: モジュールの Service Worker のサポート
Chrome で Service Worker で JavaScript モジュールがサポートされるようになりました。マニフェストでモジュールを指定するには:
"background": {
"service_worker": "script.js",
"type": "module"
}
これにより、ワーカー スクリプトが ES モジュールとして読み込まれ、ワーカーのスクリプトで import
キーワードを使用して他のモジュールをインポートできます。
Chrome 91: chrome.action.getUserSettings()
新しい chrome.action.getUserSettings()
メソッドを使用すると、ユーザーが拡張機能をメイン ツールバーに固定したかどうかを判断できます。
Chrome 90: chrome.scripting.removeCSS()
新しい chrome.scripting.removeCSS()
メソッドを使用すると、以前に chrome.scripting.insertCSS()
で挿入された CSS を拡張機能で削除できます。これは chrome.tabs.removeCSS()
に代わるものです。
Chrome 90: scripting.executeScript() から Promise を返す
chrome.scripting.executeScript()
が Promise を返すようになりました。スクリプト実行の結果値が Promise の場合、Chrome は Promise が解決されるのを待ってから、その結果の値を返します。
Chrome 90: chrome.scripting.executeScript() の結果に frameId が含まれる
chrome.scripting.executeScript()
から返される結果に frameId が含まれるようになりました。frameId
プロパティは、結果の元のフレームを示すため、複数のフレームを注入するときに、拡張機能が結果を個々のフレームに簡単に関連付けることができます。
Chrome 89: タブグループを管理するための新しい API
新しい chrome.tabGroups
API と chrome.tabs
の新機能を使用すると、拡張機能でタブグループの読み取りと操作を行うことができます。Manifest V3 が必要です。
Chrome 89: ウェブアクセス可能なリソースの権限のカスタマイズが可能に
Manifest V3 でのウェブアクセス可能なリソースの定義が変更され、拡張機能がリクエスト元のオリジン ID または拡張機能 ID に基づいてリソース アクセスを制限できるようになりました。
ブログ投稿: 拡張機能マニフェスト コンバータ
Chrome 拡張機能チームは、オープンソースの「Extension Manifest Converter」を提供しています。これは、拡張機能を Manifest V3 に変換する際の機械的な側面の一部を自動化する Python ツールです。お知らせのブログ投稿を確認し、GitHub から取得します。
Chrome 88: Manifest V3 の一般提供を開始
Manifest V3 は拡張機能プラットフォームのメジャー アップデートです。新機能と変更された機能の概要については、Manifest V3 の概要をご覧ください。現時点では、拡張機能では引き続き Manifest V2 を使用できますが、近い将来、段階的に廃止される予定です。新しい拡張機能には Manifest V3 を使用することを強くおすすめします。既存の拡張機能をできるだけ早く Manifest V3 に移行してください。