什么是 Manifest V3?
Manifest V3(简称 MV3)是 Google 为 Chrome 浏览器扩展引入的新一代清单文件格式,旨在提升扩展的安全性、性能和隐私保护能力。自 2023 年起,所有新提交的 Chrome 扩展必须使用 Manifest V3。
主要变更点
- Service Worker 替代 Background Pages:后台脚本改为基于事件驱动的 Service Worker,节省内存与电量。
- 远程代码限制:禁止执行远程托管的 JavaScript 代码(如 eval、new Function 等),提升安全性。
- 权限最小化原则:扩展需明确声明所需权限,并支持运行时动态请求。
- declarativeNetRequest API:取代 webRequest API,用于内容拦截或修改网络请求,无需读取用户数据。
manifest.json 示例
{
"manifest_version": 3,
"name": "我的 Chrome 插件",
"version": "1.0",
"description": "一个基于 Manifest V3 的示例插件",
"background": {
"service_worker": "background.js"
},
"permissions": ["storage", "activeTab"],
"host_permissions": ["https://*.example.com/*"],
"action": {
"default_popup": "popup.html"
}
}
迁移建议
- 将 background scripts 改为 service_worker。
- 使用 chrome.declarativeNetRequest 替代需要阻塞式 webRequest 的功能。
- 避免使用 eval()、innerHTML 执行动态脚本。
- 测试扩展在无持久后台下的行为是否正常。