Manifest V3 に移行する

Manifest V2 拡張機能を Manifest V3 拡張機能に変換するためのガイド。

このセクションでは、Chrome 拡張機能プラットフォームの最新バージョンである Manifest V2 から Manifest V3 に拡張機能をアップグレードする方法について説明します。移行作業は、大きく次のカテゴリに分類されます。作業の進捗状況を把握できるように、これらのドキュメントの内容をまとめたチェックリストをご用意しました。チェックリストを使用してコンテンツにアクセスしたり、コンテンツを詳しく確認したりできます。どちらのパスも、アップグレードされた拡張機能で終わります。

  • マニフェストを更新する - manifest.json は V3 に固有のものである必要があります。このセクションでは、単独で変更できる内容について説明します。コードに関連するマニフェストの変更は、サポートするコードの変更とともに説明されています。
  • Service Worker に移行する - Service Worker は、拡張機能のバックグラウンド ページまたはイベント ページを置き換えて、バックグラウンド コードがパフォーマンスに影響を与える可能性のあるメインスレッドから離れた状態を維持します。この変更に伴い、DOM、ウィンドウ、特定の拡張機能 API 呼び出しをオフスクリーン ドキュメントに移動することも必要になります。
  • API 呼び出しの更新 - 一部の API 呼び出しをより新しい同等の呼び出しに置き換える必要があります。
  • ウェブ リクエスト リスナーのブロックを置き換える - Manifest V2 でネットワーク リクエストをブロックまたは変更すると、パフォーマンスが大幅に低下し、ユーザーデータへの過剰なアクセスが必要になる可能性があります。Declarative Net Request API を使用すると、拡張機能は、より少ない権限で、パフォーマンスを低下させることなく、ウェブ コンテンツをブロックまたは変更できます。
  • 拡張機能のセキュリティを強化 - Manifest V3 では、いくつかの方法で拡張機能のセキュリティが強化されます。コンテンツ セキュリティ ポリシーの強化に加えて、リモートでホストされているコードと任意の文字列の実行のサポートが削除されます。
  • 拡張機能を公開する - このセクションでは、Manifest V3 拡張機能を段階的にリリースして、まず限定されたユーザーでテストし、期待どおりに動作することを確認する方法について説明します。

拡張機能マニフェスト コンバータも用意されています。すべてを自動で行うわけではありませんが、開始するには十分です。コンバータの README には、ツールが変更する内容が記載されています。

現在の機能セットを維持する

予期しない問題やバグが発生する可能性を減らすため、移行時に新しい機能を追加しないことをおすすめします。たとえば、新しい権限を必要とする機能を追加すると、権限に関する警告がトリガーされ、ユーザーが新しい権限を承認するまで拡張機能が無効になります。警告を表示せずに権限を追加するその他の方法については、権限の警告に関するベスト プラクティスをご覧ください。

マニフェスト V3 は、Chrome 88 以降で一般的にサポートされています。API 呼び出しを更新する際に、代替機能がバージョン 88 以降の Chrome に実装されている場合があります。API リファレンス ページには、個々の API メンバーのサポート情報が記載されています。これらの機能のいずれかが必要であることが判明した場合は、マニフェスト ファイルで最小 Chrome バージョンを指定できます。

新しい拡張機能プラットフォームの機能

Manifest V3 のリリース以降、新機能の追加が続けられており、その多くは Manifest V2 と Manifest V3 の両方で使用できます。変換時に使用する必要はありませんが、古い機能が置き換えられた場合は、置き換えられた機能よりも優先して使用し、置き換えられた機能は最終的に非推奨となり削除されることを想定する必要があります。