V2 マニフェストを V3 マニフェストに変換する
manifest.json ファイルの形式は、Manifest V3 と Manifest V2 で若干異なります。このページでは、manifest.json ファイルにのみ影響する変更について説明します。ただし、スクリプトやページに対する変更の多くは、マニフェストに対する変更も必要です。これらの変更は、変更を必要とする移行タスクでカバーされます。
マニフェストのバージョン番号を変更する
"manifest_version" フィールドの値を 2 から 3 に変更します。
{ ... "manifest_version": 2 ... }
{ ... "manifest_version": 3 ... }
ホストの権限を更新する
Manifest V3 のホスト権限は別のフィールドです。"permissions" または "optional_permissions" では指定しません。
コンテンツ スクリプトは "content_scripts.matches" に残ります。"content_scripts.matches" の詳細については、静的宣言で挿入するをご覧ください。
{ ... "permissions": [ "tabs", "bookmarks", "https://www.blogger.com/" ], "optional_permissions": [ "unlimitedStorage", "*://*/*" ] ... }
{ ... "permissions": [ "tabs", "bookmarks" ], "optional_permissions": [ "unlimitedStorage" ], "host_permissions": [ "https://www.blogger.com/" ], "optional_host_permissions": [ "*://*/*" ] ... }
ウェブでアクセス可能なリソースを更新する
ウェブからアクセス可能なリソースとは、ウェブページや他の拡張機能からアクセスできる拡張機能内のファイルです。Manifest V2 で実装されている "web_accessible_resources" フィールドにより、拡張機能がリソースを公開することを選択した場合、ウェブサイトと攻撃者によって拡張機能が検出可能になりました。これにより、フィンガープリンティングや意図しないリソースへのアクセスが発生する可能性があります。
Manifest V3 では、拡張機能のリソースにアクセスできるウェブサイトと拡張機能を制限することで、漏洩を防ぎます。以前はファイルのリストを指定していましたが、今後はオブジェクトの配列を指定します。各オブジェクトは、一連のリソースを URL または拡張 ID の一連にマッピングします。
次の例は、Manifest V2 と Manifest V3 の間でウェブからアクセス可能なリソースを比較しています。マニフェスト V2 では、指定されたリソースにはデフォルトですべてのウェブサイトがアクセスできました。以下の Manifest V3 コードでは、これらのリソースは https://example.com でのみ使用でき、特定の画像のみがすべてのウェブサイトで使用できます。
詳しくは、ウェブでアクセス可能なリソースと一致パターンをご覧ください。
{ ... "web_accessible_resources": [ "images/*", "style/extension.css", "script/extension.js" ], ... }
{ ... "web_accessible_resources": [ { "resources": [ "images/*" ], "matches": [ "*://*/*" ] }, { "resources": [ "style/extension.css", "script/extension.js" ], "matches": [ "https://example.com/*" ] } ], ... }