Chrome逐步淘汰 Manifest V2 扩展,广告拦截不能用了?
Chrome逐步淘汰 Manifest V2 扩展,广告拦截不能用了?
Google Chrome将于2024年6月3日开始逐步淘汰Manifest V2扩展,并计划在2025年初全面完成这一过渡。这一变化主要影响广告拦截器等扩展程序,但用户无需过度担心,因为大多数流行工具已转向Manifest V3,且Google增加了多项新功能以缓解影响。
Google Chrome 将从 2024 年 6 月 3 日开始逐步淘汰 Manifest V2 扩展,预计在 2025 年初全面完成。Manifest V3 于 2019 年推出,旨在增强 Chrome 扩展的安全性、隐私性和性能。
Manifest V3 (MV3) 和 Manifest V2 (MV2) 的主要区别
Manifest V3 (MV3) 和 Manifest V2 (MV2) 之间有一些显著的区别,主要体现在安全性、性能和开发者使用的API方面。以下是两者的一些关键区别:
- 后台脚本
- MV2:使用持久的背景页(persistent background page),这些脚本会一直运行,占用系统资源。
- MV3:引入了Service Worker替代持久的背景页,Service Worker是事件驱动的,在需要时才运行,节省资源,提高性能。
- 网络请求拦截
- MV2:允许使用webRequest API来拦截、查看和修改网络请求。这种方式非常灵活,但也存在安全隐患,因为扩展可以完全控制网络请求。
- MV3:限制了webRequest API的能力,不允许修改网络请求,改为使用declarativeNetRequest API。后者通过预定义规则来过滤和修改请求,增强了安全性和性能,但降低了灵活性。
- 权限管理
- MV2:扩展程序在安装时请求所有需要的权限,用户必须一次性接受所有权限请求。
- MV3:支持动态权限请求,扩展程序可以在运行时根据需要请求权限,用户可以选择性地授予权限,增强了用户控制和安全性。
- 内容安全策略(CSP)
- MV2:CSP相对宽松,允许扩展程序加载外部脚本,这可能带来安全风险。
- MV3:引入更严格的CSP,限制了可以加载的外部资源类型和来源,减少了潜在的攻击面。
- 跨域请求
- MV2:跨域请求相对自由,扩展程序可以访问许多不同的域。
- MV3:对跨域请求进行了严格控制,必须在manifest文件中明确声明可以访问的域,提高了安全性。
- 内容脚本
- MV2:允许内容脚本在所有页面上运行。
- MV3:需要在manifest中明确声明内容脚本的运行条件,且引入了严格的CSP策略,限制内容脚本的执行环境。
这些变化主要是为了提高安全性、隐私保护和性能,但也对开发者提出了新的要求,需要他们更新现有的扩展程序以符合新的规范。MV3 尽管带来了许多好处,但也引起了开发者社区的一些争议,特别是在功能限制方面。
尽管最初因为对广告拦截器的影响而受到批评,但 Google 随后增加了用户脚本支持(user script support)和更高的 declarativeNetRequest 规则集限制等功能,现在最多可容纳 33 万条静态规则和 3 万条动态规则。
Chrome 网上应用店中的广告拦截器更新审核速度也加快了,目前超过 85% 的积极维护扩展已转用 Manifest V3。像 AdBlock、Adblock Plus、AdGuard 和 uBlock Origin 等流行的内容过滤工具已经转用 Manifest V3,尽管一些用户发现这些新版本相比 V2 版本有所限制。
广告拦截器被终结了?
没有!只是不能用自己导入第三方资源,内置的规则无影响。因此,用户仍然可以享受较好的广告拦截体验,只需适应新的规则即可。
为应对这一变化,广告拦截器uBlock Origin推出了一个名为uBO Lite(uBOL)的新项目,以继续为用户提供广告拦截服务。虽然新规则限制了用户导入第三方资源的能力,但内置规则仍然有效,只是规则数量有所限制。
从 2024 年 6 月 3 日起,使用 Beta、Dev 和 Canary 版本的用户如果运行 Manifest V2 扩展,会收到即将结束支持的警告横幅。用户将被引导至 Manifest V3 替代品。逐步淘汰过程将是渐进的,用户最初可以暂时重新启用 V2 扩展,但这一选项最终将被移除。
Chrome 稳定版用户将在接下来的几个月内看到这些变化,预计到 2025 年初完成,而企业客户可以通过特殊政策将这些变化推迟到 2025 年 6 月。