將 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": [ "*://*/*", ] ... }
更新可透過網路存取的資源
可透過網頁或其他擴充功能存取的擴充功能內部檔案。如同在資訊清單 V2 中實作,如果擴充功能選擇公開資源,"web_accessible_resources"
欄位會讓網站和攻擊者偵測到擴充功能。這會導致指紋記錄或非預期的資源存取。
透過限制哪些網站和擴充功能可存取擴充功能中的資源,資訊清單 V3 可限制曝光率。您現在提供物件陣列,而非像先前那樣提供檔案清單,每個物件都會將一組資源對應至一組網址或擴充功能 ID。
以下範例會比較 Manifest V2 和 Manifest V3 的網路可存取資源。在 Manifest 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/*" ] } ], ... }