遷移至 Manifest V3

將 Manifest V2 擴充功能轉換為 Manifest V3 擴充功能的指南。

本節可協助您將擴充功能從 Manifest V2 升級至最新版的 Chrome 擴充功能平台 Manifest V3。遷移工作大致可分為下列幾個類別。我們準備了一份檢查清單,幫助您追蹤工作內容。你可以根據檢查清單查看內容,或是深入瞭解內容。兩個路徑的結尾都是升級版額外資訊。

  • 更新資訊清單manifest.json 必須專屬於 V3。本節將說明可自行進行變更的項目。與程式碼相關的資訊清單變更會介紹程式碼支援的程式碼變更。
  • 遷移至 Service Worker:服務工作處理程序會取代擴充功能的背景或事件頁面,確保背景程式碼不會因可能影響效能的主執行緒而消失。這項變更也需要將 DOM、視窗和特定擴充功能 API 呼叫移至螢幕外文件。
  • Update API 呼叫:部分 API 呼叫必須替換為更現代化的對等項目。
  • 取代封鎖網路要求事件監聽器:在 Manifest V2 中封鎖或修改網路要求,可能會大幅降低效能,並要求過度存取敏感的使用者資料。宣告式 Net Request API 可讓擴充功能在不影響效能的情況下,以較少的權限封鎖或修改網頁內容。
  • 提升擴充功能安全性:Manifest V3 可透過多種方式提升擴充功能安全性。除了強化的內容安全政策以外,遠端託管程式碼和任意字串的執行作業均不再受支援。
  • 發布擴充功能:本節說明如何逐步推出,確保 Manifest V3 擴充功能先對少數目標對象進行測試,確保 Manifest V3 擴充功能如預期正常運作。

另外,我們也提供擴充功能資訊清單轉換工具。這不會盡您所能,但可以幫助你踏出第一步。轉換器的 README 檔案說明瞭工具異動內容。

保留目前的功能組合

為了降低發生非預期問題或錯誤的機率,建議您在遷移時不要新增功能。舉例來說,如果新增的功能需要新權限,可能會觸發權限警告,在使用者接受新權限前停用擴充功能。請參閱「權限警告最佳做法」,瞭解在不顯示警告的情況下新增權限的其他方式。

Chrome 88 以上版本通常支援 Manifest V3。更新 API 呼叫時,您可能會發現在 88 版以後,更新功能可能尚未在 Chrome 中推出。API 參考資料頁面包含個別 API 成員的支援資訊。如果您發現需要其中一項功能,可以在資訊清單檔案中指定「最低 Chrome 版本」

全新擴充功能平台功能

自 Manifest V3 推出以來,我們已繼續新增功能,其中許多功能可在 Manifest V2 和 Manifest V3 中使用。您不一定要在轉換過程中使用這些 API,但當他們以這些功能取代舊版功能時,建議您以這些功能取代,並預期之後將淘汰並移除的功能。