Manifest V3 に移行する

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

このセクションでは、拡張機能を Manifest V2 から Manifest V3(Chrome 拡張機能プラットフォームの最新バージョン)にアップグレードする方法について説明します。移行作業は、以下のカテゴリに分類されます。作業内容を追跡できるように、これらのドキュメントの内容をまとめたチェックリストを用意しました。チェックリストからコンテンツにアクセスするか、コンテンツの詳細を確認してください。どちらの経路も、アップグレード版の広告表示オプションで終わります。

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

また、拡張機能マニフェスト コンバータもあります。すべての作業を行えるようにするわけではありませんが、作業の土台になります。コンバータの README にツールの変更点が記載されています。

現在の機能を維持する

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

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

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

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