什么是 Manifest V3?
Manifest V3(简称 MV3)是 Google 为 Chrome 浏览器扩展提出的新一代开发规范,旨在提升扩展的安全性、性能和隐私保护能力。相比 Manifest V2,MV3 引入了多项重大变更,包括使用 Service Worker 替代后台页面、限制远程代码执行、增强权限控制等。
主要变更内容
- Service Worker 替代 Background Page:后台脚本改为基于事件驱动的 Service Worker,提升资源利用率。
- 禁止远程代码执行:所有逻辑必须打包在扩展包内,禁止通过 eval()、new Function() 或远程脚本动态加载代码。
- 声明式网络请求 API:chrome.webRequest 被 chrome.declarativeNetRequest 替代,以提高隐私和性能。
- 更细粒度的权限控制:用户可选择授予主机权限的时机(安装时或运行时)。
从 Manifest V2 迁移
Google 已宣布逐步淘汰 Manifest V2。开发者需在截止日期前完成迁移。建议:
- 检查是否使用了被弃用的 API(如 background.page、eval 等)。
- 将后台脚本重写为 Service Worker。
- 使用 chrome.scripting API 替代部分注入方式。
- 测试扩展在 MV3 下的功能完整性。
示例 manifest.json(V3)
{
"manifest_version": 3,
"name": "我的 Chrome 插件",
"version": "1.0",
"description": "一个基于 Manifest V3 的示例扩展",
"permissions": ["storage", "activeTab"],
"host_permissions": ["https://api.example.com/*"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html"
}
}