このガイドでは、拡張機能の更新フロー全体について詳しく説明します。標準の更新プロセス、手動オーバーライド、デベロッパー API、エンタープライズ ポリシーの大きな影響について説明します。
標準の更新サイクル
Chrome は、インストールされている拡張機能を最新バージョンに自動的に更新するように設計されています。これにより、ユーザーは新機能やセキュリティ修正を利用できます。デフォルトでは、Chrome は起動時と数時間ごとに拡張機能の更新を確認します。
更新プロセスの重要な点は、拡張機能がアイドル状態とみなされた場合にのみ更新がインストールされることです。拡張機能がアイドル状態になるには、そのコンポーネントがアクティブに使用されていない必要があります。Manifest V3 のコンテキストでは、これは主に拡張機能のサービス ワーカーが実行されていないことを意味します。サービス ワーカーはイベント駆動型で、一定期間操作がないと終了するように設計されています。また、サイドパネル、ポップアップ、オプション ページなどの開いている拡張機能ページがあると、拡張機能がアイドル状態と見なされなくなります。アクティブなコンテンツ スクリプトは、拡張機能がアイドル状態と見なされるかどうかに影響しません。
このアイドル状態の要件により、頻繁にアクティブな拡張機能の更新が遅れる可能性があります。拡張機能のサービス ワーカーがイベントによって常にトリガーされている場合、アイドル状態になることはなく、ブラウザが再起動されるまで更新は延期されます。
拡張機能のアップデートの配布をモニタリングする
拡張機能の最新バージョンを使用しているユーザーの数を確認するには、Chrome ウェブストアのアナリティクス ダッシュボードを使用します。Chrome ウェブストア デベロッパー ダッシュボードに移動し、公開済みの拡張機能のいずれかを選択します。サイド ナビゲーション バーで [アナリティクス] -> [ユーザー] に移動し、[アイテム別の 1 日あたりのユーザー数グラフ] までスクロールします。ここでは、最新バージョンを使用しているユーザーの数を確認できます。
拡張機能を手動で更新する
ユーザーが最新のアップデートをすぐに取得したい場合は、Chrome の手動更新メカニズムを利用できます。これは、アップデートをテストする際にも役立つツールです。
個々のユーザーは、次の手順に沿って、インストールされているすべての拡張機能を強制的に更新できます。
- chrome://extensions に移動します。
- 右上にある切り替えボタンを使用して、[デベロッパー モード] を有効にします。
- 表示された [更新] ボタンをクリックします。
この操作を行うと、Chrome はインストールされているすべての拡張機能の最新バージョンを Chrome ウェブストアから直ちに取得します。
拡張機能からアップデートを確認する
chrome.runtime API は、拡張機能が更新メカニズムとやり取りするためのツールを提供します。
オンデマンドでアップデートを確認する
chrome.runtime.requestUpdateCheck() 関数を使用すると、拡張機能はプログラムで更新チェックを開始できます。これは、バックエンド サービスに重要な依存関係があり、互換性のある最新バージョンを実行していることを確認する必要がある拡張機能に特に便利です。
この関数が呼び出されると、Chrome は Chrome ウェブストアに新しいバージョンを問い合わせ、新しいバージョンが利用可能な場合はダウンロードします。関数のコールバックは、チェックの結果を示すステータスを受け取ります。
利用可能なアップデートをリッスンする
chrome.runtime.onUpdateAvailable イベントは、アップデートがダウンロードされ、インストールできる状態になったときに発生します。このイベントでは、詳細に新しいバージョン番号が示されます。このイベントをリッスンすることで、拡張機能は更新が利用可能かどうかを判断し、必要に応じて chrome.runtime.reload() を使用してアイドル状態に移行したり、再読み込みを発生させたりすることを検討できます。
基本的な実装パターンを次に示します。
例外的なケースでは、chrome.runtime.requestUpdateCheck() を使用して、ブラウザに拡張機能の更新の確認を強制的に実行させることができます。
requestUpdateCheck() を頻繁に呼び出すと、ブラウザによってスロットリングされることに注意してください。この関数は、更新が利用可能であることを確認した場合にのみ使用してください。たとえば、更新されたバックエンドで新しいバージョンの拡張機能が必要な場合などです。
エンタープライズ ポリシーによるアップデートの制御
管理対象のエンタープライズ環境では、標準の拡張機能更新フローはシステム管理者によって設定されたポリシーの対象となります。これらのポリシーは、デフォルトの動作をオーバーライドして、セキュリティと安定性を確保できます。
自動的にインストール
ExtensionInstallForcelist ポリシーを使用すると、管理者はユーザーに対して特定の拡張機能を自動インストールできます。このポリシーでインストールされた拡張機能をユーザーが無効にしたりアンインストールしたりすることはできません。
拡張機能のバージョンを固定する
ただし、企業では、他のソフトウェアとの互換性を確保するために、使用する拡張機能の正確なバージョンを制御する必要があることがよくあります。この場合、管理者は拡張機能を特定のバージョンに「固定」できます。これは Google 管理コンソールで行います。管理者は組織部門に必要なバージョンを選択できます。拡張機能を固定すると、Chrome は指定されたバージョン以降に更新しなくなります。
更新ソースをオーバーライドする
企業は、セキュリティやカスタマイズの理由から、拡張機能のフォーク バージョンをホストできます。oこれを行うには、override_update_url プロパティを true に設定した ExtensionSettings ポリシーを使用します。これにより、Chrome は Chrome ウェブストアではなく、指定された URL から拡張機能とその更新を取得するようになります。
Chrome の最小バージョンを設定する
拡張機能のマニフェスト ファイルで minimum_chrome_version を指定できます。これにより、拡張機能が使用する API をサポートする Chrome のバージョンにのみ拡張機能がインストールされるようになります。
新規インストールの場合、Chrome ウェブストアでは、古いバージョンの Chrome を使用しているユーザーが拡張機能をインストールできないようにし、「互換性がありません」というメッセージを表示します。既存のユーザーの場合、拡張機能の更新によって minimum_chrome_version
がユーザーのインストール済み Chrome バージョンよりも高いバージョンに引き上げられると、その拡張機能の更新は自動的に停止します。デベロッパーはこれを認識し、ユーザーベースの大部分に影響が及ぶ可能性がある場合は、ユーザーに通知する必要があります。