从 Manifest V2 升级到 Manifest V3 的注意事项
将 Chrome 扩展从 Manifest V2 升级到 Manifest V3 是一个重要的迁移过程,以下是需要注意的关键点:
核心变更要点
清单文件结构变化
manifest_version
必须设置为3
background
字段改为使用 Service Workerweb_accessible_resources
需要显式声明
后台脚本变化
不再支持 background pages,改用 Service Workers
Service Worker 不能使用 DOM 和 window 相关 API
需要重构持久化状态管理逻辑
网络请求变化
chrome.webRequest
API 被限制使用需要使用新的
chrome.declarativeNetRequest
API修改请求/响应内容的能力受限
详细注意事项
1. Service Worker 替代 Background Pages
// Manifest V2 "background": {"scripts": ["background.js"],"persistent": false }// Manifest V3 "background": {"service_worker": "background.js" }
2. 远程代码执行限制
不再允许执行远程代码(如
eval()
)所有代码必须包含在扩展包中
动态代码执行被严格限制
3. 权限系统变更
部分权限需要从
permissions
移到optional_permissions
主机权限现在需要单独声明
新增
host_permissions
字段
4. API 变更
chrome.extension
→chrome.runtime
chrome.tabs.executeScript
→chrome.scripting.executeScript
chrome.runtime.onSuspend
被移除