几周前,谷歌宣布了退役ManifestV2(其用于构建扩展的旧平台)的新时间表。根据似乎是最终版本的更新时间表,从2024年6月开始,基于MV2构建的扩展程序将被弃用,首先是在Google主流Chrome浏览器的Dev、Canary和Beta版本中,然后是所有Chrome用户。事实上,即将切换到MV3不仅会影响Chrome用户,还会影响所有基于Chromium的浏览器的用户,包括Opera和Edge。
谷歌的声明在科技界引起了轩然大波,并重新引发了谷歌在2019年首次发布新清单时席卷广告拦截社区的担忧。有关扩展的新规范将为广告拦截器“敲响丧钟”的预测又回来了,尽管不是报复性的。虽然几年前我基本上同意这种观点,但从那时起,很多事情已经过去了。简而言之,MV3并没有我曾经担心的那么糟糕,而且广告拦截器还远未消亡。
在解释我们对新API持谨慎乐观态度的原因之前,让我们仔细看看这个新的ManifestV3是如何诞生的,以及它与前身的主要区别是什么。
正如我上面提到的,ManifestV3是新的Chrome扩展规范。因此,它定义了扩展程序在浏览器中可以执行和不能执行的操作。当谈论广告拦截器时,这主要是指扩展程序检查和修改页面内容(包括阻止页面内容)的能力。
MV3自2018年以来一直在开发,并于2019年11月首次在Chrome中引入。新API背后的既定目标之一是提高Chrome和所有基于Chromium的浏览器用户的安全性和隐私性,谷歌声称权限扩展ManifestV2下的享受范围过于广泛,可能导致他们滥用用户数据。另一个是提高扩展的性能。我认为增强隐私和性能很可能是Chrome引入MV3的真正目标。然而,在隐私和安全方面,我看不出MV3会如何显着改善这种情况。在我看来,到目前为止,我们在这方面只看到了渐进式的改进,因为这个问题的解决方案更多地在于改进应用商店中的扩展审核流程。至于性能,我还需要等到新平台的过渡完成后才能得出明确的结论。
是什么让MV3如此受争议
计划逐步淘汰MV2并过渡到MV3的计划拖延了数年,因为新平台面临开发人员的强烈抵制,他们认为该平台限制过多。
广告拦截器的最大问题之一以及MV2和MV3之间的主要区别是后者比前者更具限制性。在MV3中,Chrome删除了webRequestAPI的阻止版本,所有广告拦截器以及许多旨在保护隐私和安全的扩展程序都使用该版本。webRequestAPI已替换为declarativeNetRequestAPI。后者在拦截广告和跟踪请求方面的效果要差得多,因为它让浏览器(而不是广告拦截扩展)对修改请求拥有最终决定权。对于declarativeNetRequestAPI,扩展程序只是宣布或“声明”浏览器应响应的一组规则。