將 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 說明瞭工具變更的內容。
保留目前的功能組合
為減少發生非預期問題或錯誤的機率,建議您在遷移時不要新增功能。舉例來說,如果新增的功能需要新權限,系統可能會觸發權限警告,並停用擴充功能,直到使用者接受新權限為止。如要瞭解其他新增權限的方式,避免顯示警告,請參閱「權限警告最佳做法」。
Chrome 88 以上版本通常支援 Manifest V3。更新 API 呼叫時,您可能會發現替代功能在 Chrome 88 版之後才推出。API 參考資料頁面包含個別 API 成員的支援資訊。如果發現需要這些功能,可以在資訊清單檔案中指定最低 Chrome 版本。
擴充功能平台新功能
自 Manifest V3 發布以來,我們持續新增功能,其中許多功能都適用於 Manifest V2 和 Manifest V3。轉換時不一定要使用這些功能,但如果這些功能取代了舊版功能,建議您優先使用這些功能,並預期舊版功能最終會遭到淘汰和移除。