移行の進行状況の追跡
以下のチェックリストは、移行作業を管理するのに役立ちます。完了する必要があるタスクを定義し、指示へのリンクを含めます。移行の概要で説明されているように、移行作業は大きく 5 つのカテゴリに分けられます。
マニフェストを更新する
Manifest V3 では、manifest.json
ファイルの形式を Manifest V2 と少し異なる形式にする必要があります。このページでは、manifest.json
ファイルにのみ影響する変更について説明します。ただし、スクリプトやページに対する変更の多くは、マニフェストの変更も必要になります。これらの変更については、それを必要とする移行タスクで説明します。
Service Worker に移行する
Service Worker は、拡張機能のバックグラウンド ページまたはイベントページを置き換えて、バックグラウンド コードがメインスレッドの外に出ないようにします。これにより、必要なときにだけ拡張機能を実行でき、リソースを節約できます。
始める前に、バックグラウンド スクリプトと拡張機能 Service Worker の違いをご覧ください。
- マニフェストの「background」フィールドを更新する
- DOM 呼び出しとウィンドウ呼び出しをオフスクリーン ドキュメントに移動する
- localStorage を chrome.storage.local に変換する
- リスナーを同期的に登録する
XMLHttpRequest()
の呼び出しをグローバルfetch()
に置き換え。- 状態を保持する
- タイマーをアラームに変換する
- Service Worker を維持する(例外的な場合)
API 呼び出しを更新する
一部の機能は Manifest V3 の同等の機能に置き換える必要があります。その他は完全に削除する必要があります。
tabs.executeScript()
をscripting.executeScript()
に置き換え。tabs.insertCSS()
とtabs.removeCSS()
をscripting.insertCSS()
とscripting.removeCSS()
に置き換えました。- ブラウザ操作とページ操作を操作に置き換える
- Manifest V2 のバックグラウンド コンテキストを必要とする関数を置き換えます。
- コールバックを Promise に置き換える
- サポートされていない API の置き換え
ブロックしているウェブ リクエスト リスナーを置き換える
この拡張機能では、(Manifest V2 のように)プログラムでネットワーク リクエストを読み取って変更するのではなく、特定の条件が満たされたときに実行するアクションを記述するルールを指定します。
上記の項目を完了したら、一般的なユースケースをいくつか確認します。
拡張機能のセキュリティを強化
拡張機能のセキュリティを向上させるには変更が必要です。これには、サポートされなくなったリモートでホストされるコードの削除も含まれます。
Manifest V3 拡張機能を公開する
マニフェスト バージョン 3 に変換したら、Chrome ウェブストアで拡張機能をリリースできます。変更に応じて、段階的なロールアウトを検討します。このアプローチにより、ユーザーベース全体にリリースする前に、まず一部のユーザーにのみ拡張機能を期待どおりに動作させることができます。