Manifest V3
Google于2023年全面推行的Chrome扩展新一代架构规范,用声明式网络请求替代可编程请求拦截,用Service Worker替代持久化后台页面,提升安全性和性能
核心事实
时间轴 (近 90 天)
Manifest V3 的 Service Worker 会被浏览器随时休眠,涉及长连接或定时同步的功能需要额外设计。
原生消息端口保持打开可以阻止 Manifest V3 将 service worker 休眠。
netflix-intro-skipper 是作者自建的 Chrome 扩展,支持 Manifest V3,用于自动跳过 Netflix 片头。
在 Manifest V3 中,扩展不能依赖内存中的全局变量保存状态,必须改用 chrome.storage 或消息传递。
Host permissions 决定扩展能访问哪些站点,Manifest V3 支持在运行时按需申请可选权限,粒度比 V2 更细。
在 Manifest V3 中,事件监听必须在顶层同步注册,否则 service worker 被唤醒时无法重新绑定。
Manifest V3 削减了扩展对网络请求的干预能力
根据Manifest V3规范,Chrome扩展需要声明所需权限,持续观察行为的扩展通常需要全站点访问权限<all_urls>
从Chrome Manifest V3开始,Google对扩展的权限模型进行了重大调整,要求更严格的权限声明和内容安全策略
Manifest V3 引入更严格的内容安全策略(CSP),禁止在扩展页面中使用 eval() 和内联脚本
还有 7 条时间轴事件
全部知识事实 (20)
Chrome扩展程序基于Manifest V3架构
75%已验证Manifest V3是谷歌于2020年提出、2023年强制推行的Chrome扩展新规范
75%已验证Manifest V3将原本长期驻留后台的Background Page替换为Service Worker
75%已验证Chrome 扩展通过 Manifest V3 规范运行内容脚本,可直接访问 DOM 并注入悬浮层
70%已验证Manifest V3用Service Worker替代持久化后台页面、限制远程代码执行,并将网络请求拦截从webRequest API改为声明式的declarativeNetRequest
70%已验证谷歌在2023年强制将扩展生态迁移至 Manifest V3,废弃了 V2 时代允许的持久化后台页面,改为基于 Service Worker 的事件驱动机制
65%已验证Chrome插件遵循Manifest V3规范,由manifest.json配置文件、content scripts、background service worker等核心文件组成
65%待验证Manifest V3的变化显著限制了uBlock Origin等广告拦截工具的动态过滤能力,引发了广告拦截器社区的强烈反弹
85%待验证Browser Tools MCP的浏览器扩展使用Chrome的Manifest V3权限模型
80%待验证Manifest V3 的 Service Worker 会被浏览器随时休眠,涉及长连接或定时同步的功能需要额外设计。
50%待验证原生消息端口保持打开可以阻止 Manifest V3 将 service worker 休眠。
50%待验证netflix-intro-skipper 是作者自建的 Chrome 扩展,支持 Manifest V3,用于自动跳过 Netflix 片头。
50%待验证Host permissions 决定扩展能访问哪些站点,Manifest V3 支持在运行时按需申请可选权限,粒度比 V2 更细。
50%待验证在 Manifest V3 中,扩展不能依赖内存中的全局变量保存状态,必须改用 chrome.storage 或消息传递。
50%待验证在 Manifest V3 中,事件监听必须在顶层同步注册,否则 service worker 被唤醒时无法重新绑定。
50%待验证Manifest V3 削减了扩展对网络请求的干预能力
50%待验证根据Manifest V3规范,Chrome扩展需要声明所需权限,持续观察行为的扩展通常需要全站点访问权限<all_urls>
50%待验证从Chrome Manifest V3开始,Google对扩展的权限模型进行了重大调整,要求更严格的权限声明和内容安全策略
50%待验证Manifest V3 将后台脚本从持久运行的 Background Page 改为事件驱动的 Service Worker,降低内存占用
50%待验证Manifest V3 引入更严格的内容安全策略(CSP),禁止在扩展页面中使用 eval() 和内联脚本
50%