配了八年 Chrome 插件,今天 uBlock Origin 从商店消失了——Manifest V3 把这件事从根上翻了

8 月 31 号,Google 把所有 Manifest V2 扩展从 Chrome Web Store 永久下架。uBlock Origin 在列,uMatrix 在列,NoScript 在列,连同过去几年所有没来得及搬家的老插件,一夜之间在 Chrome 的官方市场里彻底蒸发。

这不是某个插件出了问题。这是 Google 用了四年完成的浏览器扩展生态迁移的最后一刀。

V2 给了插件什么,V3 把它收走了

Manifest V2 时代,插件用 webRequest API 能看到浏览器的每一个网络请求,在请求发出之前实时判断要不要拦截。uBlock Origin 就是靠这个能力,对 EasyList 里 30 万+ 条规则做动态判断,看到广告域名就取消请求、看到追踪器就扔掉。

Manifest V3 改成了 declarativeNetRequest:插件提前把规则列表提交给浏览器,之后每个请求由 Chrome 自己的 C++ 代码判断,不再经过插件的 JavaScript。换句话说,插件的代码永远看不到你访问了哪个 URL,只能提前列一张白名单,Chrome 按名单查表放行或拦截。

规则数量也有上限。Google 顶住压力把上限提到了 33 万,但 uBlock Origin 全盛时期用的规则超过 100 万条,而且每天更新——这在 V3 的模型里根本塞不进去。

开发者说了「不」

uBlock Origin 的作者 Raymond Hill(gorhill)说得直接:「完整版不会有 Manifest V3 版本。」他做了 uBlock Origin Lite,是 V3 兼容版,但牺牲了动态过滤、化妆品过滤(广告被拦后留下的空白占位处理)和反反广告拦截。Hill 自己的估计是:V3 环境下有效拦截率下降 30~40%。

这不是技术做不上去,是 V3 的架构从根本上限制了这种能力。

为什么 Brave 能继续运行,Firefox 能用完整版

Brave 是个例外。它的 Shield 广告拦截是在 Chromium 引擎层写的,不走 Chrome 的扩展 API,V3 限制管不到它。Brave 自己托管了四个 MV2 插件:AdGuard、uBlock Origin、uMatrix、NoScript,从自己的服务器分发,不依赖 Chrome Web Store。所以装 Brave 还能用完整版 uBlock Origin。

Firefox 是另一个路数。Mozilla 继续在 Firefox 的 MV3 实现里保留了 webRequest blocking API,两个版本并行,完整版 uBlock Origin 在 Firefox 上功能不受任何限制。所以要完整拦截能力,Firefox 是最干净的答案。

你在中国能做什么

如果你或你的用户在用 Chrome,现在实际的选择有三个:

一是接受 uBlock Origin Lite。它能拦大多数主流广告,YouTube 视频广告漏报率比完整版高,但日常浏览够用。二是换 Firefox 或 Brave。Brave 是 Chromium 内核,功能和 Chrome 基本一致,过渡成本最低;Firefox 拦截能力最强,但生态和 Chrome 有些差异。三是接受现实,减少对插件的依赖——浏览器自带隐私保护、DNS 层面拦截(Pi-hole / NextDNS)作为补充。

这件事还没完

Microsoft Edge 和 Opera 都是 Chromium 内核,Google 把 MV2 代码路径从上游移除后,它们维护独立 MV2 支持的成本会越来越高。Edge 已经宣布跟进,Opera 态度暧昧但表示最终也会迁移。Chrome 这次清场之后,Chromium 系浏览器里能跑完整版 uBlock Origin 的,短期内只剩 Brave 一家。

这不是安全更新的问题,不是某个插件不努力的问题。webRequest blocking → declarativeNetRequest 这个架构切换,把「插件能看到什么」和「插件能决定什么」这两件事彻底拆开了。插件的权限被收走,这是设计目标,不是副作用。

评论区

0 条评论

登录后可评论。

阿柯·前端架构 14 阅读