Google 没有要干掉广告拦截程序:AdGuard CTO Andrey Meshkov 谈 Manifest V2 恐慌
Google 即将完成其漫长的 Manifest V2 淘汰计划的最后阶段。从计划于 2026 年 6 月 30 日发布的 Chrome 150 开始,并延续至 Chrome 151,Google 将移除剩余的兼容性特性,这些特性曾让旧版扩展得以在向 Manifest V3 的过渡中存活下来。实际上,这将关闭用户和浏览器厂商赖以维持大量旧版扩展的最后几个主要漏洞,包括那些仍依赖 Manifest V2 功能的广告拦截程序。
由于这些代码存在于 Chromium 本身,此更改也将影响基于 Chromium 的浏览器,如 Edge、Opera、Brave 和 Vivaldi。虽然浏览器厂商在技术上可以自行继续支持 Manifest V2,但这样做需要在上游代码被移除后自行维护旧版代码。Google 工程师将剩余的 MV2 基础设施描述为维护成本日益高昂,并指出了与旧平台相关的错误和安全问题。因此,希望继续支持 MV2 的浏览器将不得不投入自己的工程资源,而非依赖 Chromium 代劳——这使得长期支持 MV2 的可能性越来越小。
这则消息重新点燃了一个熟悉的叙事:Google 终于要干掉广告拦截程序了。自 2019 年 Manifest V3 过渡首次宣布以来,类似的断言几乎伴随着每一个重大里程碑。现实是,Manifest V2 淘汰计划中最关键的部分早在几年前就已发生。主流内容拦截程序已经适应,网络并没有突然变得不可过滤。现在正在发生的事情,很大程度上只是移除了那些在过渡本身之后仍然存活的兼容机制。
因此,与其加入这场喧嚣,不如让我带您客观回顾一下实际发生的时间线。
故事始末
这个关于「Chrome 禁用广告拦截程序」的整个故事始于 2019 年。大约在那个时候,Google 终于为负责 Chrome 浏览器扩展的团队配齐了人手,并着手解决一些长期存在的问题。最大的问题是 Chrome Web Store 中充斥了大量恶意扩展——Google 的审核机制坦率地讲相当糟糕,各种垃圾扩展不断混入。第二个相关问题是大量低质量扩展影响了浏览器性能。
Google 的解决方案是推出一个名为 Manifest V3(MV3)的新版扩展平台,旨在取代旧的 Manifest V2 平台。然而症结在于,新平台移除或限制了扩展此前依赖的许多功能。至于它是否真正解决了最初的问题,目前仍有争议。
在安全性方面,没人能令人信服地解释 MV3 究竟有何帮助。但在性能方面,情况则有所不同:MV3 确实减少了低质量扩展对浏览器的影响。
为了减轻对内容拦截程序的冲击,Google 引入了一套新的 API,旨在弥补部分被移除的功能,其中最引人注目的是 declarativeNetRequest API。但老实说,如果 Google 以 2019 年最初提出的形式发布 MV3,那真的可能成为广告拦截程序的末日,以及许多其他扩展的末日。
协作
阻止这一结果的是多年的协作。同年,Google 来到年度广告拦截程序开发者大会,展示新平台,并询问他们需要做什么才能让广告拦截程序继续正常工作——此后他们每年都会回到这个大会上。与此同时,Google 与 Mozilla 和 Apple 一起成立了 W3C WebExtensions Community Group,这是一个标准机构,我们这些扩展开发者通过它与各方合作,改进 MV3,使其成为能令各方满意的方案。
这是一条漫长的道路,但通过这种集体努力,MV3 最终达到了可用的状态。首次宣布的五年之后,Google 才终于完成了 Chrome 向 MV3 的过渡,此时许多扩展——包括广告拦截程序——已经迁移过去。至于广告拦截程序如今的表现如何,坦诚地说,过渡并非毫无痛苦:与上一个版本相比,我们的开发工作变得更困难了一些,产品的维护难度也有所增加。但终端用户不太可能察觉到多大差异。广告拦截程序依然活得很好。
当前状况
这就引出了眼下正在发生的事情。尽管 Chrome 本身早在 2024 年就已迁移到 MV3,但其代码库仍然保留了运行旧版 MV2 扩展的能力。所有这些旧版代码仍然存在——虽然 Chrome 已不再依赖它们,但基于 Chromium 引擎的第三方浏览器(如 Opera、Edge 和 Brave)却仍在使用。从版本 150 开始,这些旧代码将从 Chromium 中移除,这意味着 MV2 扩展将在那些第三方基于 Chromium 的浏览器中停止工作。现实地讲,这些浏览器背后的开发者不太可能有资源自行维护 MV2,因为代码复杂且深入到大量浏览器组件中。
结语
Google 并非今天突然拔掉任何东西的插头,所有重要事件早在 2019 年至 2024 年间就已发生。广告拦截程序一切正常。我们从未对向 MV3 迁移感到兴奋,但预言中的末日也从未到来。这些变化的真正牺牲品并非广告拦截程序,而是那些直到现在还在支持旧版 MV2 扩展的第三方浏览器(并将此作为相对于 Chrome 的竞争优势)。
如果您是那种依赖 webRequest API 全部能力的人——那种 MV3 声明式方法无法完全复制的深度、灵活的过滤能力,别忘了始终还有 Firefox。Mozilla 在支持 MV3 的同时,继续支持 webRequest API 的拦截能力,这意味着功能需求最高的内容拦截程序可以继续做它们一直在做的一切。当然,切换浏览器并非每个人都愿意做的事。幸运的是,浏览器扩展并非拦截广告的唯一方式。网络级和系统级解决方案,如 AdGuard,完全不依赖 Chrome 的扩展平台,因此不受 MV2 到 MV3 过渡的影响。






