Chrome 拡張機能、拡張機能のドキュメント、関連するポリシーなどの変更については、このページを頻繁に確認してください。その他のお知らせは、拡張機能の Google グループに投稿されています。Chrome のスケジュールには、安定版とベータ版のリリース日が記載されています。
Chrome 132: DevTools で拡張機能のストレージを表示、編集
Chrome 132 以降では、DevTools で chrome.storage
API を使用して保存されたデータを表示、編集できるようになりました。詳しくは、DevTools ドキュメントの新しい拡張機能ストレージを表示、編集するページをご覧ください。
ブログ投稿: 新しい拡張機能メニュー
Google I/O 2024 では、拡張機能メニューの今後の変更に関する初期デザインをいくつかお知らせしました。この変更により、拡張機能がアクセスできるサイトをユーザーがより細かく管理できるようになります。これらの変更は、カナリア版のごく一部のユーザーを対象に近日中にテストを開始し、今後はより広範囲にロールアウトする予定です。
また、chrome.permissions.addHostAccessRequest()
API も導入されます。
詳しくは、ブログ投稿をご覧ください。
Chrome 132: Tabs API の新しい frozen プロパティ
Chrome 132 以降、Tabs API の frozen
プロパティは、タブがブラウザによってフリーズされているかどうかを示します。フリーズされたタブに送信されたメッセージはキューに追加され、タブのフリーズが解除されたときに処理されます。
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
フィールドが追加されました。これを使用して、特定のヘッダーの存在と値を確認できます。
この更新の一環として、ルールの照合方法を説明するルール評価のセクションがドキュメントに追加されました。特にヘッダー マッチングの場合、ルールはレスポンス ヘッダーが受信された後にのみ実行できるため、他のルールよりも後の段階で適用されます。つまり、リクエストはブロックまたはリダイレクトされる前にサーバーに到達します。
動画: コンテンツ スクリプトとは
Chrome 拡張機能のコンテンツ スクリプトについて学びます。特定のページで実行する CSS と JavaScript を登録する方法などについて説明します。動画全編をチェックする。
重要なポリシーの更新
Chrome ウェブストア チームは、高品質なプロダクトの開発を促進し、欺瞞的な行為を防止し、ユーザーの十分な同意を確保することを目的として、デベロッパー プログラム ポリシーのページを更新しました。Chrome ウェブストアのポリシー マネージャーである Rebecca Soares が、Chrome 拡張機能: 重要なポリシーの更新に関するブログ投稿で、すべての更新内容をまとめています。
ブログ投稿: Chrome 拡張機能の最新情報(2024 年 7 月)
過去 3 か月間に、マニフェスト V2 の段階的な廃止の開始など、いくつかの重要なアップデートと新機能をリリースしました。詳しくは、Chrome 拡張機能の最新情報(7 月版)をご覧ください。
動画: リモート ホストコードとは
Chrome 拡張機能チームの Patrick が、Chrome 拡張機能のリモート ホストコード(RHC)のコンセプトについて説明します。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 2019 が終了し、広告表示オプションの最新情報についてお知らせします。YouTube で動画全体を視聴し、ブログ投稿でハイライトをご覧ください。
対象となる宣言型ネット リクエストの変更の審査をスキップする
Chrome ウェブストアで、Declarative Net Request API を使用する場合に、対象となる変更の審査をスキップできるようになりました。利用資格とオプトイン方法について詳しくは、Chrome ウェブストアのドキュメントをご覧ください。
Chrome Web Store 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: Advanced 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 によるサービス ワーカーの停止テストの取り組み
eyeo の拡張機能エンジン チームによるこの投稿では、拡張機能サービス ワーカーのテストに関する問題について説明します。Manifest V2 では、拡張機能は拡張機能のライフサイクル全体で常駐するバックグラウンド ページに存在していました。Manifest V3 では代わりにサービス ワーカーが使用されます。サービス ワーカーは、不要なときにシャットダウンすることでリソースを節約するように設計されています。これには、特定のテスト上の課題があります。この記事では、eyeo がこれらの課題にどのように取り組んだかについて説明します。
Chrome 123: デバイスがスリープ状態のときにアラームが実行されるようになりました
chrome.alarms
API を使用して設定されたアラームが、デバイスがスリープ状態になったときに遅延しなくなりました。デバイスがスリープ状態から復帰すると、アラームは、アラームを何回でもスルーした場合でも 1 回だけ鳴ります。たとえば、アラームが 1 時間に 1 回鳴るように設定されていて、アラームが設定されているデバイスが午前 12 時 55 分から午前 2 時 5 分までスリープ状態になっている場合、onAlarm
イベントは午前 2 時のアラームによってのみトリガーされます。できるだけ午前 2 時近くに実行され、デバイスがスリープ状態から復帰するとすぐに実行されます。
この変更により、Chrome はウェブ拡張機能コミュニティ グループで合意された動作に沿うようになります。
ブログ投稿: 拡張機能メッセージ ポートでの bfcache 動作の変更
バックフォワード キャッシュ(bfcache)は、すぐに前または次のページに移動できるようにブラウザを最適化する機能です。Chrome 123 以降では、オープンな拡張機能ポートを持つページが bfcache に保存されると、メッセージ チャンネルが閉じられます。つまり、そのページにはメッセージが送信されなくなります。そのため、拡張機能のスクリプトは onDisconnect
などのライフサイクル イベントをリッスンし、ページが BFCache から復元されたときに新しい接続をセットアップする必要があります。
詳細とサンプルコードについては、拡張機能メッセージ ポートでの BFCache 動作の変更をご覧ください。
Chrome 122: 非同期拡張機能 API での Promise のサポート
すべての非同期拡張機能 API メソッドに対する Promise のサポートの実装が完了しました。これは、非同期オペレーションの処理の人間工学を改善することで、API メソッドをモダナイズするために行われました。一部のメソッド(desktopCapture.chooseDesktopMedia()
など)は、現在のサーフェスが Promise と互換性がないため、引き続きコールバックのみをサポートします。下位互換性を確保するため、コールバックは引き続きサポートされます。失敗する Promise が見つかった場合は、バグを報告してください。
リアルタイム コミュニケーションに関する新しいガイダンス
拡張機能のリアルタイム オプションに関するガイドを公開しました。リアルタイムの更新により、サーバーから拡張機能のインストールに直接即時通信パスが確立されます。また、chrome.gcm と ウェブプッシュの使用に関する新しいガイダンスも公開されています。
新しいガイダンスとサンプル: サービス ワーカーの終了をテストする
Puppeteer でサービス ワーカーの終了をテストする方法に関するガイドを公開しました。付属のサンプルでは、Puppeteer と Selenium でこのことを示しています。
ネイティブ メッセージのサンプルを更新しました
ネイティブ メッセージングの更新されたサンプルを公開しました。この API を使用すると、拡張機能で別のアプリを起動して通信できます。GitHub コントリビューターの Shubham-Rasal に感謝します。
Chrome 121: tabs.Tab の新しい lastAccessed プロパティ
lastAccessed
という名前の新しいプロパティが tabs.Tab
オブジェクトに追加されました。このプロパティは、タブが最後に有効にされた日時を示します。返される値は、エポックからのミリ秒単位です。
Chrome 121: サポートされていない「background」キーに対して警告を出す
Manifest V2 から Manifest V3 への変更では、バックグラウンド スクリプトを拡張機能サービス ワーカーに置き換えるために、"background"
マニフェスト キーの子要素が変更されました。以前は、Manifest V2 キー "scripts"
、"page"
、"persistent"
を Manifest V3 拡張機能の "background"
キーに追加するとエラーが発生していました。これらのキーが存在すると、警告がトリガーされるようになりました。
これは、コミュニティ グループの提案に基づき、複数のブラウザの拡張機能で単一のマニフェスト ファイルを使用することを可能にするためのものです。
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 とのチャット
Google は、Chrome for Developers YouTube チャンネルで、Google デベロッパー エキスパートで著者の 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 API と Web Storage API に関するドキュメント
Chrome 拡張機能での Cookie と Web Storage API の仕組みに関する新しいガイドを公開しました。プライバシー サンドボックスの Cookie とストレージ パーティショニングの変更、一連の新しいウェブ プラットフォーム API の作成を通じてサードパーティ Cookie を非推奨にする継続的なプロジェクト、拡張機能でのこれらの機能の詳細が含まれています。
広告表示オプションのサンプルを検索できるようになりました
最近、Chrome 拡張機能のサンプルを検索できるページを作成しました。検索ページには複数のオプションがあります。検索ボックスを使用すると、サンプルのタイトル内のテキストを検索できます。権限または拡張機能 API で検索を制限できます。追加のフィルタを使用すると、API サンプルまたは機能(ユースケース)サンプルのいずれかに検索を制限できます。
この新しいサンプルページは、Google Summer of Code 参加者の Xuezhou Dai によって作成されました。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 を開き、[設定]、[無視リスト] の順に選択します。詳細については、DevTools の新機能をご覧ください。
Chrome 116 ベータ版: ここに収まりきらない変更点
Chrome 116 は拡張機能にとって大きなリリースです。サイドパネルをプログラムで開くことができるようになりました。新しいメソッドにより、アクティブなオフスクリーン ドキュメントがあるかどうかを把握できます。Service Worker が大幅に改善されました。116 には多くの改善が加えられているため、それらをまとめたブログ投稿を作成しました。Chrome 116 は 7 月 19 日時点でベータ版です。
ブログ投稿: Chrome 拡張機能の最新情報
今年の拡張機能の変更と改善の概要を公開しました。この投稿では、サイドパネル API、サービス ワーカーの機能強化、オフスクリーン ドキュメントなど、今年の大きな新機能について説明しています。また、今四半期の取り組みについてもご紹介します。この記事では、その他の多くの方法と、それらすべてへのリンクを紹介します。
新しいガイダンスとサンプル: Chrome 拡張機能で Google アナリティクス 4 を使用する方法
Google アナリティクスと位置情報に関する新しいガイダンスとサンプルを公開しました。
- Google アナリティクスのガイダンスの最新版: Chrome 拡張機能で Google アナリティクス 4 を使用する方法について説明しています。また、GitHub のサンプル リポジトリに、動作する Google アナリティクス 4 のサンプルも追加しました。Google アナリティクスに関連するコードについては、
google-analytics.js
をご覧ください。 - 新しい位置情報ガイドと、サービス ワーカー、コンテンツ スクリプト、ポップアップ、サイドパネルで位置情報にアクセスする方法を示した3 つのサンプル。
Chrome 115: chrome.offscreen.createDocument() で複数の理由を指定
chrome.offscreen.createDocument()
を呼び出すときに、複数の reason
列挙型を指定できるようになりました。オフスクリーン ドキュメントを複数の目的で使用する場合は、この方法を使用します。ブラウザは、指定された理由を使用して、オフスクリーン ドキュメントの存続期間を決定します。
新しいツール: 拡張機能の更新テストツール
拡張機能の更新テストツールがリリースされました。これは、ローカル開発中に Chrome 拡張機能の更新(権限の付与など)をテストするために使用できるローカル拡張機能更新サーバーです。このツールには、ユーザーの更新フローが示されます。たとえば、ユーザーが新たにリクエストされた権限を付与するまで拡張機能を無効にしておきます。このツールは、拡張機能を Manifest V2 から Manifest V3 に更新する際にリクエストされる権限の変更をシミュレートする場合に特に便利です。
Chrome 114: 新しい Side Panel API
新しいサイドパネル API が導入されました。これは、ユーザーがブラウジング中のコンテンツとともにツールにアクセスできるコンパニオン サーフェスです。詳しくは、サイドパネル API リファレンスをご覧ください。また、GitHub サンプル リポジトリにサイドパネルのサンプルを多数追加しました。サイドパネルの詳細については、新しいブログ投稿「新しいサイドパネル API による優れたユーザー エクスペリエンスの設計」もご覧ください。また、品質ガイドライン ポリシーとベスト プラクティスも見直し、高品質なサイドパネル拡張機能の作成に関するガイダンスを追加しました。
この API の作成には皆様からのフィードバックが重要です。ご意見や機能リクエストは chromium-groups で共有してください。サイドパネル 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
と整合するようになります。
新しい拡張機能サービス ワーカーのチュートリアルとヘルプ
サービス ワーカーは Chrome 拡張機能の不可欠な要素です。サービス ワーカーの登録、デバッグ、操作の基本を説明するチュートリアルを公開しました。また、重要なコンセプトについて詳しく説明する新しいサービス ワーカー ガイドも追加しました。このセクションは今後数か月以内に拡大される予定です。
ウェブストアの違反に関するその他のトラブルシューティングのヒント
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 グループの投稿をご覧ください。
File Handling API が ChromeOS に登場
File Handler API は、ChromeOS の Canary バージョン 112 と 113 で試験運用できます。これにより、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 に引き上げられました。これは、ウェブ拡張機能コミュニティ グループ(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 のアイドル状態のタイムアウトの変更
以前は、拡張機能のサービス ワーカーが 5 分経過すると頻繁にシャットダウンしていました。この動作は、ウェブでの 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 の Promise
Identity API の関数が、Promise ベースの呼び出しをサポートするようになりました。これにより、identity.getAuthToken()
のサーフェスが若干変更されます。Promise ベースの呼び出しに設定された非同期リターンでは、トークンと 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 を使用できるようになりました。以前は、DOM 機能に対する内部依存関係が原因で、この API の一部メソッドが呼び出し時にスローされていました。
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: ネイティブ メッセージング ポートがサービス ワーカーを存続させる
拡張機能のサービス ワーカーで 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 ベースの 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()
メソッドで複数のファイルを使用できるようになりました。以前は、これらのメソッドでは 1 つのファイル エントリを含む配列が必要でした。
ドキュメントの更新: レビュー違反のトラブルシューティングの更新
Chrome ウェブストアの違反に関するトラブルシューティングのページが更新され、不承認の一般的な理由についてデベロッパー向けの詳細なガイダンスが提供されるようになりました。
Chrome 96: 27 個の API にプロミスのサポートを拡大
このリリースには、これまでのリリースよりも大幅に多くのプロミスの更新が含まれています。更新には、一般的な拡張機能 API と ChromeOS 固有の拡張機能 API の両方が含まれます。詳細については、以下のセクションを開いてご確認ください。
Extensions API
多くの API が、Manifest 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 の promise サポート
マニフェスト V3 バージョンの chrome.storage
API のメソッドがプロミスを返すようになりました。
ポリシーの更新: 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 の返却をサポートするようになりました。スクリプト実行の結果の値がプロミスの場合、Chrome はプロミスが解決されるのを待ってから結果の値を返します。
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 に基づいて拡張機能がリソース アクセスを制限できるようになりました。
ブログ投稿: 拡張機能マニフェスト コンバータ
Chrome 拡張機能チームは、「Extension Manifest Converter」をオープンソース化しました。これは、拡張機能を Manifest V3 に変換する際の機械的な部分を自動化する Python ツールです。お知らせの投稿と GitHub から入手してください。
Chrome 88: Manifest V3 の一般提供
Manifest V3 は拡張機能プラットフォームのメジャー アップデートです。新機能と変更点の概要については、Manifest V3 の概要をご覧ください。拡張機能は当面、引き続き Manifest V2 を使用できますが、近い将来に段階的に廃止されます。新しい拡張機能には Manifest V3 を使用し、既存の拡張機能はできる限り早く Manifest V3 に移行することを強くおすすめします。