Chrome 拡張機能、拡張機能のドキュメント、関連するポリシーなどの変更については、このページを頻繁にご確認ください。その他のお知らせは、拡張機能の Google グループで確認できます。Chrome のスケジュールには、安定版とベータ版のリリース日が記載されています。
Chrome 拡張機能の Prompt API
拡張機能向けの Prompt API がオリジン トライアルで利用可能になりました。これにより、Google の最も効率的な言語モデルである Gemini Nano を使用する Chrome 拡張機能をブラウザで構築できるようになりました。
Chrome 131 ~ 136 で実施されている Prompt API のオリジン トライアルに参加して、フィードバックをお寄せください。ご意見は、この API の今後のバージョンと、すべての組み込み AI API の構築と実装に直接影響します。
ブログ投稿: Chrome 拡張機能の最新情報(2024 年 10 月)
Chrome 拡張機能の最新情報をお知らせします。AI インテグレーション、新しい API、イベント、動画に関する最新情報をお届けします。詳しくは、Chrome 拡張機能 10 月号の最新情報をご覧ください。
組み込みの AI チャレンジに参加する
Chrome では、組み込み AI チャレンジを開催しています。Chrome の統合された AI モデルと API を使用して革新的なウェブ アプリケーションと Chrome 拡張機能を作成するこのチャレンジでは、総額 65,000 米ドルの賞品を獲得するチャンスがあります。
登録して詳細を確認するには、組み込み AI チャレンジのウェブサイトをご覧ください。ウェブに AI を組み込んだときに、どのようなものが生まれるのか楽しみです。
Chrome 130: action.onUserSettingsChanged
Chrome 130 以降では、action.onUserSettingsChanged イベントを使用できます。これは、WebExtensions コミュニティ グループでの提案に従います。Chromium への貢献に感謝いたします。
Chrome 130: StorageArea.getKeys()
Chrome 130 以降では、chrome.storage
API で使用される StorageArea インターフェースで getKeys() メソッドを使用できます。これは、WebExtensions コミュニティ グループの提案に基づくものです。
Chrome 128: 宣言型ネット リクエストでのレスポンス ヘッダーの照合
Chrome 128 以降では、Declarative Net Request API でレスポンス ヘッダーのマッチングがサポートされます。これは、特に Content-Type ヘッダーの照合に関する一般的なリクエストでした。Google は、WebExtensions コミュニティ グループと協力して適切な API を設計しました。
API リファレンスが更新され、新しい responseHeaders
フィールドと excludedResponseHeaders
フィールドが追加されました。これを使用して、特定のヘッダーの存在と値を確認できます。
今回の更新の一環として、ルールの照合方法を説明するルールの評価のセクションをドキュメントに追加しました。特にヘッダー マッチングの場合、ルールはレスポンス ヘッダーが受信された後にのみ実行できるため、他のルールよりも後の段階で適用されます。つまり、リクエストはブロックまたはリダイレクトされる前にサーバーに到達します。
動画: コンテンツ スクリプトとは
CSS や JavaScript を登録して特定のページで実行する方法など、Chrome 拡張機能のコンテンツ スクリプトについて説明します。動画全編をご覧ください。
ポリシーに関する重要な更新
Chrome ウェブストア チームは、高品質なプロダクトの開発を促進し、欺瞞的な行為を防止し、ユーザーの明確な同意を確保することを目的としたデベロッパー プログラム ポリシーのページを更新しました。Chrome ウェブストアのポリシー マネージャーである Rebecca Soares が、Chrome 拡張機能: 重要なポリシーの更新に関するブログ投稿で、すべての更新内容をまとめています。
ブログ投稿: Chrome 拡張機能の最新情報(2024 年 7 月)
Google は過去 3 か月の間に、Manifest V2 の段階的廃止の開始を含め、いくつかの重要なアップデートと新機能を公開しました。詳しくは、Chrome 拡張機能の最新情報(7 月版)をご覧ください。
動画:リモートホストのコードとは
Chrome 拡張機能チームの Patrick が、Chrome 拡張機能のリモート ホストコード(RHC)のコンセプトについて説明します。RHC が許可されなくなった理由、検出方法、拡張機能の更新が必要な場合の対処方法について説明します。動画全編をご覧ください。
Chrome 127: 新しい action.openPopup API
Chrome 127 以降、action.openPopup
API はすべての拡張機能で使用できます。これまで、この機能は Canary でのみ、またはポリシーによってインストールされた拡張機能でのみ使用できました。
動画: Trust & Safety チームへのインタビュー
Chrome 拡張機能 DevRel チームは、Chrome ウェブストアの審査を主導する信頼性と安全性チームと連携し、ユーザーの皆様から寄せられた質問に回答しました。動画全編をチェック
ブログ投稿: Manifest V2 の段階的廃止を開始
6 月 3 日より、Chrome ベータ版、Dev 版、Canary 版の各チャンネルで、Manifest V2 拡張機能がまだインストールされている場合、拡張機能管理ページ(chrome://extensions)にアクセスすると、インストールされている一部の(Manifest V2)拡張機能のサポートがまもなく終了するという警告バナーが表示されるようになります。詳しくは、公式のお知らせをご覧ください
サイドパネル UI の更新
先ごろ、固定アイコンの追加やグローバルなサイドパネル アイコンの削除など、サイドパネル UI にいくつかの変更を加えました。詳しくは、PSA の記事、最新のドキュメントとサンプルをご覧ください。
ブログ投稿: Google I/O 2024 での Chrome 拡張機能
Google I/O が終了し、広告表示オプションに関する最新情報をすべてお伝えしました。YouTube で全編動画をチェックし、ブログ投稿でハイライトをご覧ください。
対象となる宣言型ネット リクエストの変更の審査をスキップする
Chrome ウェブストアで、Declarative Net Request API を使用する場合に、対象となる変更の審査をスキップできるようになりました。利用資格とオプトイン方法について詳しくは、Chrome ウェブストアのドキュメントをご覧ください。
Chrome Web Store API で利用可能な deployPercentage
Chrome ウェブストア API のドキュメントが最近更新され、deployPercentage
に関する情報が追加されました。deployPercentage
を使用すると、部分的なロールアウトのデプロイの割合を割り当てることができます。deployPercentage
の詳細
Chrome 126: 拡張機能のオリジン トライアル
Chrome 126 では、新しい manifest.json フィールド trial_tokens
が導入されます。これにより、すべての拡張機能サーフェスでオリジン トライアルと非推奨トライアルを有効にできます。詳しくは、ガイドをご覧ください。
ブログ投稿: Chrome 拡張機能の最新情報 - 2024 年 4 月
新しい「Chrome 拡張機能の変更内容」を公開しました。この投稿では、拡張機能チームが過去数か月間取り組んできた内容について説明します。これには、Chrome ウェブストアでのバージョン ロールバック、Firebase Auth のサポート強化、API のリリースとアップデートの増加が含まれます。
Chrome ウェブストア デベロッパー ダッシュボードでのバージョンのロールバック
追加の審査なしで、Chrome ウェブストアで公開した以前のバージョンに拡張機能をロールバックできます。詳しくは、ブログ投稿とドキュメントをご覧ください。
Chrome 124: 高度な documentScan API
ChromeOS で高度な documentScan
API が利用可能になり、接続されたドキュメント スキャナから画像を検出して取得できるようになりました。
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 文字に引き上げます。この上限は現在ストアにある拡張機能のほぼすべてに適用されるため、この変更によってお客様側で必要な対応はほとんどありません。名前が最大上限を超える拡張機能をアップロードしようとすると、ストアによってアップロードがブロックされます。
ブログ投稿: eyeo が Service Worker の停止をテストするまでの経緯
eyeo の拡張機能エンジン チームによるこの投稿では、拡張機能サービス ワーカーのテストに関する問題について説明します。Manifest V2 の拡張機能はバックグラウンド ページにあり、拡張機能のライフサイクル全体を通してウェイクアップされていました。Manifest V3 では代わりに Service Worker が使用されますが、Service Worker は設計上、不要になったときにシャットダウンすることでリソースを節約します。これには、特定のテストに関する課題があります。この投稿では、eyo がこれらの課題にどのように対処したかを説明しています。
Chrome 123: デバイスがスリープ状態のときにアラームが実行されるようになりました
chrome.alarms
API を使用して設定されたアラームが、デバイスがスリープ状態になったときに遅延しなくなりました。デバイスがスリープ状態から復帰すると、アラームは、アラームを何回でもスルーしていた場合でも 1 回だけ鳴ります。たとえば、アラームが 1 時間に 1 回鳴るように設定されていて、アラームが設定されているデバイスが午前 12 時 55 分から午前 2 時 5 分までスリープ状態の場合、午前 2 時のアラームのみ onAlarm
イベントをトリガーします。できるだけ午前 2 時近くにトリガーされ、デバイスがスリープ状態から復帰するとすぐにトリガーされます。
この変更により、Chrome はウェブ拡張機能コミュニティ グループで合意された動作に準拠するようになります。
ブログ投稿: 拡張機能メッセージ ポートでの bfcache 動作の変更
バックフォワード キャッシュ(bfcache)は、前のページと次のページにすぐに移動できるようにブラウザを最適化する機能です。Chrome 123 以降では、拡張機能ポートが開いているページが bfcache に保存されると、メッセージ チャンネルは閉じられます。つまり、そのページにはメッセージが送信されません。そのため、拡張機能スクリプトは onDisconnect
などのライフサイクル イベントをリッスンし、ページが BFCache から復元されたときに新しい接続を設定する必要があります。
詳細とサンプルコードについては、拡張機能メッセージ ポートを使用した BFCache の動作の変更をご覧ください。
Chrome 122: 非同期拡張機能 API での Promise のサポート
すべての非同期拡張機能 API メソッドに対する Promise のサポートの実装が完了しました。これは、非同期オペレーションの処理の人間工学を改善することで、API メソッドをモダナイズするために行われました。一部のメソッド(desktopCapture.chooseDesktopMedia()
など)は、現在のサーフェスが Promise と互換性がないため、引き続きコールバックのみをサポートします。下位互換性を維持するため、コールバックは引き続きサポートされます。失敗する Promise が見つかった場合は、バグを報告してください。
リアルタイムのコミュニケーションに関する新しいガイダンス
拡張機能のリアルタイム オプションに関するガイドを公開しました。リアルタイム更新により、サーバーから拡張機能のインストールへの通信パスを即座に確立できます。また、chrome.gcm、ウェブプッシュの使用に関する新しいガイダンスも追加しました。
新しいガイダンスとサンプル: サービス ワーカーの終了をテストする
Puppeteer で Service Worker の終了をテストする方法に関するガイドを公開しました。付属のサンプルでは、Puppeteer と Selenium でこのことを示しています。
ネイティブ メッセージのサンプルを更新しました
ネイティブ メッセージングの最新のサンプルを公開しました。この API を使用すると、拡張機能が別のアプリを起動して通信できます。この取り組みのために、GitHub の投稿者である Shubham-Rasal に感謝します。
Chrome 121: tabs.Tab の新しい lastAccessed プロパティ
tabs.Tab
オブジェクトに lastAccessed
という新しいプロパティが追加されました。このプロパティは、タブが最後に有効にされた日時を示します。返される値は、エポックからのミリ秒単位です。
Chrome 121: サポートされていない「background」キーに対して警告を出す
Manifest V2 から Manifest V3 への変更では、バックグラウンド スクリプトを拡張機能の Service Worker に置き換えるために、"background"
マニフェスト キーの子要素が変更されました。以前は、Manifest V2 のキー "scripts"
、"page"
、"persistent"
を Manifest V3 拡張機能の "background"
キーに追加すると、エラーがスローされていました。これらのキーが存在する場合は、警告がトリガーされます。
これは、コミュニティ グループの提案に沿って、複数のブラウザの拡張機能で 1 つのマニフェスト ファイルを使用できるようにするための措置です。
Chrome 120: アラームの最小粒度を 30 秒に短縮
Chrome 120 以降、Manifest V3 拡張機能では、60 秒以上の値を必要とせず、30 秒の遅延または期間で chrome.alarms
API を使用できます。
ブログ投稿: Manifest V3 への移行の再開
Manifest V2 のサポート タイムラインが更新されました。詳しくは、2023 年 11 月の投稿をご覧ください。
ブログ投稿: Manifest V3 でのコンテンツ フィルタリング サポートの改善
declarativeNetRequest API がどのように改善されたかについては、新しいブログ投稿をご覧ください。
ブログ投稿: 拡張機能向け Chrome 120 の新機能
Chrome 120 ベータ版が最近リリースされました。拡張機能のデベロッパーに関連する重要な更新の概要については、新しいブログ投稿「Chrome 120 の拡張機能に関する新機能」をご覧ください。また、このリリースでは、重要なプラットフォームのギャップのリストから最後の 2 つの項目(userScripts、ChromeOS のファイル ハンドラ)が削除されるため、大きなマイルストーンとなります。
公開情報: デベロッパー ダッシュボードでのプライバシー ポリシーの URL の取り扱いに関する変更
デベロッパー ダッシュボードのプライバシー ポリシーがアイテムレベルで追加されるようになりました。これにより、アイテムごとに異なるプライバシー ポリシーを指定できます。この変更について詳しくは、PSA をご覧ください。
動画: Matt Frisbie とのチャット
Chrome for Developers YouTube チャンネルで、Google Developer Expert の著者で Matt Frisbie が語る新しい動画を公開しました。こちらからご覧ください。
拡張機能のテストに関する新しいガイダンス
拡張機能の自動テストの作成方法に関する新しいガイダンス(単体テストの作成方法、エンドツーエンド テストに関する一般的なガイダンスとチュートリアルを含む)が公開されました。
ブログ投稿: Chrome 拡張機能の最新情報 - 2023 年 10 月
Chrome 拡張機能の最新情報の第 2 版を公開しました。この投稿では、サービス ワーカーの安定性に関する問題への対応や、MV3 プラットフォームのギャップの解消など、拡張機能チームがここ数か月取り組んできた内容について説明しています。また、Reading List API や User Scripts API など、今後リリースされる API についてもご紹介します。
Declarative Net Request API の静的ルールセットの上限を引き上げ
ウェブ拡張機能コミュニティ グループのフィードバックに基づき、有効な静的ルールセットの上限を 10 個から 50 個に大幅に引き上げます。さらに、許可される静的ルールセットの合計数が 50 から 100 に増えます。現在、この機能は Canary で利用できます。
リモートでホストされるコードに関するガイダンスを改善
Manifest V3 では、拡張機能がリモートでホストされるコードを使用できないようにする必要があります。これは当初から移行ガイドに含まれていたものですが、この問題に関するガイダンスを改善する価値はあると考えました。このページには、Manifest V3 で引き続き利用できる機能と、アップグレード戦略に関する詳細情報が追加されました。
Chrome ウェブストアの違反に関するトラブルシューティングに関連する内容が追加されました。新しいセクションで、リモートでホストされるコードを含む拡張機能が承認されない一般的な理由について説明しています。
Chrome 118: isUrlFilterCaseSensitive のデフォルトが false に変更
Chrome 118 以降、chrome.declarativeNetRequest API の isUrlFilterCaseSensitive
プロパティは、デフォルトで false
に変更されました。以前の動作を維持する場合は、declarativeNetRequest ルールで isUrlFilterCaseSensitive
を明示的に true
に設定できます。
これは、ウェブ拡張機能コミュニティ グループでの議論に続くものです。Firefox と Safari では、すでに同様の変更が実装されています。
Cookie と Web Storage API に関するドキュメント
Chrome 拡張機能で Cookie と Web Storage API がどのように機能するかに関する新しいガイドを公開しました。プライバシー サンドボックスにおける Cookie とストレージ パーティショニングの変更、一連の新しいウェブ プラットフォーム API の作成を通じてサードパーティ Cookie を非推奨にする継続的なプロジェクト、拡張機能でのこれらの機能の詳細が含まれています。
広告表示オプションのサンプルを検索できるようになりました
先日、Chrome 拡張機能のサンプルを検索できるページを作成しました。検索ページには複数のオプションがあります。検索ボックスを使用すると、サンプルのタイトル内のテキストを検索できます。権限または拡張機能 API で検索を制限できます。追加のフィルタを使用すると、API サンプルまたは機能(ユースケース)サンプルに検索を制限できます。
この新しいサンプルページは、Google Summer of Code の参加者である Xuezhou Dai によって構築されました。また、新しいサンプルもいくつか貢献してくれました。昨年夏の経験については、Google のブログ投稿をご覧ください。
これまでどおり、コードサンプルは 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 ウェブストアの掲載情報のアナリティクスを確認できます。詳しくは、Google アナリティクス アカウントと Chrome ウェブストアの連携をご覧ください。
Chrome 115: DevTools がデフォルトでコンテンツ スクリプトを管理
挿入されたコンテンツ スクリプトは、デフォルトで DevTools の無視リストに登録されるようになりました。これはブレークポイントには影響しませんが、デバッグ中にコンテンツ スクリプトがステップオーバーされ、これらのスクリプトからの例外が無視されることを意味します。[ソース] タブでコンテンツ スクリプトが開いているときに、この機能がオンになっている場合はバナーが表示され、無視リストからコンテンツ スクリプトを削除するオプションが表示されます。この動作をオフにするには、DevTools を開いて [Settings]、[Ignore list] の順に移動します。詳細については、DevTools の新機能をご覧ください。
Chrome 116 ベータ版: ここに収まりきらない変更点
Chrome 116 は拡張機能にとって大きなリリースです。サイドパネルをプログラムで開けるようになりました。新しいメソッドにより、アクティブなオフスクリーン ドキュメントがあるかどうかを把握できます。Service Worker が大幅に改善されました。116 には多くの改善が加えられているため、それらについて説明するブログ投稿を作成しました。7 月 19 日時点で、Chrome 116 はベータ版です。
ブログ投稿: Chrome 拡張機能の最新情報
今年の拡張機能の変更と改善の概要を公開しました。この投稿では、サイドパネル API、サービス ワーカーの機能強化、オフスクリーン ドキュメントなど、今年の大きな新機能について説明しています。また、今四半期の取り組みについてもご紹介します。この記事では、その他の多くの機能と、それらへのリンクを紹介します。
新しいガイダンスとサンプル: Chrome 拡張機能で Google アナリティクス 4 を使用する方法を確認する
Google アナリティクスと位置情報に関する新しいガイダンスとサンプルを公開しました。
- Chrome 拡張機能で Google アナリティクス 4 を使用する方法を説明したGoogle アナリティクスのガイダンスの最新版。また、GitHub のサンプル リポジトリに、動作する Google アナリティクス 4 のサンプルを追加しました。Google アナリティクスに関連するコードについては、
google-analytics.js
をご覧ください。 - Service Worker、コンテンツ スクリプト、ポップアップ、サイドパネルで位置情報にアクセスする方法を示す新しい位置情報ガイドと 3 つのサンプル。
Chrome 115: chrome.offscreen.createDocument() で複数の理由を指定
chrome.offscreen.createDocument()
を呼び出すときに、複数の reason
列挙型を指定できるようになりました。オフスクリーン ドキュメントを複数の目的で使用する場合に使用します。ブラウザは、指定された理由を使用して、オフスクリーン ドキュメントの存続期間を決定します。
新しいツール: 拡張機能アップデート テストツール
拡張機能の更新テストツールがリリースされました。これは、ローカル開発中に Chrome 拡張機能の更新(権限の付与など)をテストするために使用できるローカル拡張機能更新サーバーです。このツールには、ユーザーの更新フローが示されます。たとえば、ユーザーが新たにリクエストされた権限を付与するまで拡張機能を無効にしておきます。このツールは、拡張機能を Manifest V2 から Manifest V3 に更新する際にリクエストされる権限の変更をシミュレートする場合に特に便利です。
Chrome 114: 新しい Side Panel API
新しい Side Panel API が導入されました。これは、ユーザーがブラウジング中のコンテンツとともにツールにアクセスできるコンパニオン サーフェスです。詳しくは、サイドパネル API リファレンスをご覧ください。また、GitHub のサンプル リポジトリにサイドパネルのサンプルを多数追加しました。サイドパネルの詳細については、新しいブログ投稿「新しいサイドパネル API で優れたユーザー エクスペリエンスを設計する」もご覧ください。また、品質に関するガイドライン ポリシーとベスト プラクティスも見直され、高品質なサイドパネル拡張機能の作成に関するガイダンスが追加されました。
この API の作成には皆様からのフィードバックが重要です。ご意見や機能リクエストは chromium-groups で共有してください。Side Panel API の機能強化は継続して行われますので、最新情報をご確認ください。
新しいサンプル: 拡張機能での WASM
拡張機能で WASM を使用する方法を示す新しいサンプルが 2 つあります。
- Manifest V3 で WASM を使用するでは、WASM モジュールを含める一般的な方法について説明しています。
- Manifest V3 で 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 に引き上げました。これは、ウェブ拡張機能コミュニティ グループで合意されたものです。これにより、storage.local
は Chrome 112 で変更された storage.session
と整合するようになります。
新しい拡張機能サービス ワーカーのチュートリアルとヘルプ
Service Worker は Chrome 拡張機能の不可欠な要素です。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 Extensions の Google グループの投稿をご覧ください。
ChromeOS に File Handling API を導入
File Handler API は、ChromeOS のバージョン 112 と 113 の Canary 版でお試しいただけます。これにより、ChromeOS の拡張機能は、指定した MIME タイプとファイル拡張子を持つファイルを開くことができます。ファイル処理を実装するには、manifest.json
にルールセットを追加します。この機能は、プログレッシブ ウェブアプリの場合と同じように機能します。詳しくは、このサイトの他の記事をご覧ください。
ファイル処理を有効にするには:
--enable-features=ExtensionWebFileHandlers
フラグを使用して Chrome を起動する(112 以降)- 113 以降では、Chrome のオムニボックスに
os://flags/#extension-web-file-handlers
を貼り付け、プルダウン メニューから [有効] を選択します。
この機能は、6 月下旬の Chrome 115 でリリースされる予定です。更新用にこのスペースを監視します。
新しいサンプル: 動的宣言とプログラマティック インジェクション
chrome.scripting
API の新しいサンプルを作成しました。動的宣言(コンテンツ スクリプトが実行時に登録される)と、プログラムによる挿入(すでに開いているタブでスクリプトが実行される)を示しています。
新しいサンプル: 宣言型ネット リクエストのユースケース
Declarative Net Request API を示す3 つの新しいサンプルが利用可能になりました。それぞれ 1 つのユースケースの実装を示しています。最初の例は、Cookie をブロックする方法を示しています。残りの 2 つは、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 分以上かかるとシャットダウンされます。詳細については、拡張機能サービス ワーカーの存続時間を延長するをご覧ください。
投稿: Manifest V2 の段階的な廃止の一時停止
Manifest V2 のサポート終了スケジュールは現在検討中であり、2023 年初頭に予定されていたテストは延期されています。詳しくは、chromium-extensions Google グループの最新情報をご覧ください。
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 105: Identity API に関する約束
Identity API の関数で Promise ベースの呼び出しがサポートされるようになりました。これにより、identity.getAuthToken()
のサーフェスが若干変更されます。Promise ベースの呼び出しに設定された非同期リターンには、単一のオブジェクトのパラメータとして「token」と「grantedScopes」が含まれます(コールバック バージョンでは、コールバックの個別の引数として受け取られます)。
Chrome 104: Manifest V3 用の新しい favicons 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() の injectImmediately プロパティ
chrome.scripting.executeScript()
が、injection
引数に省略可能な injectImmediately
プロパティを受け取るようになりました。存在し、true に設定されている場合、スクリプトは document_idle
を待たずに、できるだけ早くターゲットに挿入されます。API 呼び出しが行われている間、ページは読み込みを継続するため、ページが読み込まれる前にスクリプトが挿入されるとは限りません。
Chrome 102: Manifest V3 での Omnibox API のサポート
サービス ワーカー ベースの拡張機能で Omnibox API を使用できるようになりました。以前、この 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 ウェブストアでアイテムを見つける方法と、Google の編集者が注目のアイテムを選択する方法について説明しています。
Chrome 101: declarativeNetRequest のドメイン条件を改善
declarativeNetRequest ルールの条件が更新され、拡張機能がリクエストの「request」ドメインと「initiator」ドメインに基づいてリクエストをより適切にターゲティングできるようになりました。関連する条件プロパティは、initiatorDomains
、excludedInitiatorDomains
、requestDomains
、excludedRequestDomains
です。こちらの chromium-extensions スレッドもご覧ください。
Chrome 100: 新しく作成されたタブでの scripting.executeScript() に関する問題を解決
新しく作成されたタブまたはウィンドウで scripting.executeScript()
を呼び出すと失敗する、長年の問題を修正しました。
Chrome 100: ネイティブ メッセージング ポートが Service Worker の存続を維持
拡張機能のサービス ワーカーで chrome.runtime.connectNative()
を使用してネイティブ メッセージング ホストに接続すると、ポートが開いている限り、サービス ワーカーは存続します。
Chrome 100: omnibox.setDefaultSuggestion() がプロミスとコールバックをサポート
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: Canary で file: スキームの拡張機能 Service Worker のサポート
Service Worker ベースの Manifest V2 拡張機能と Manifest V3 拡張機能は、Fetch API を使用して file:
スキームの URL をリクエストできるようになりました。file:
スキームの URL にアクセスするには、引き続きユーザーが chrome://extensions
ページで拡張機能の [ファイル URL へのアクセスを許可] を有効にする必要があります。
Chrome 99: Canary で Messaging API の promise をサポート
Manifest V3 用にビルドされた拡張機能の tabs.sendMessage
、runtime.sendMessage
、runtime.sendNativeMessage
に Promise のサポートが追加されました。
ドキュメントの更新: Chrome ウェブストアのレビューに関するドキュメント
新しいリファレンス ページを追加しました。このページでは、Chrome ウェブストアの審査プロセスの概要と、デベロッパー プログラム ポリシーの適用方法について説明しています。
Chrome 98: scripting.executeScript() と scripting.insertCSS() を複数ファイルを受け入れる
Scripting API の executeScript()
メソッドと insertCSS()
メソッドで複数のファイルを使用できるようになりました。これまで、これらのメソッドには単一のファイル エントリを持つ配列が必要でした。
ドキュメントの更新: 審査違反のトラブルシューティングの更新
Chrome ウェブストアの違反に関するトラブルシューティングのページが更新され、不承認の一般的な理由について、デベロッパー向けの詳細なガイダンスが提供されるようになりました。
Chrome 96: 27 個の API にプロミスのサポートを拡大
このリリースには、これまでのリリースよりも大幅に多くのプロミスの更新が含まれています。更新には、一般的な拡張機能 API と ChromeOS 固有の拡張機能 API の両方が含まれます。詳細については、以下のセクションを開いてください。
Extensions API
多くの API が、マニフェスト V3 でプロミスをサポートするようになりました。
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 もプロミスをサポートするようになりました。この変更の影響を受ける 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: モジュール サービスワーカーのサポート
Chrome で、サービス ワーカーの 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 に移行することを強くおすすめします。