谷歌在 Chrome 上的一个骚操作,让开发者炸了锅
来源:三易生活
作为如今全球最流行的浏览器,Chrome 有着数以亿计的用户,如果再算上谷歌主导下开源的 Chromium 生态,几乎已经覆盖了超过全球网民的四分之三。就像谷歌方面在 Android 上的每一次改动一样,Chrome 上的变革也同样牵动人心。
众所周知,作为现代浏览器的 Chrome 之所以 " 现代 ",靠的就是丰富多彩的扩展,可如今谷歌要对 Chrome 的扩展 " 动刀 " 了。
日前在 Chrome 的开发者博客中,谷歌产品经理 David Li 详解描述了 Manifest V3 迭代的更多细节。据他的说法,原计划将于 2023 年 1 月上线的 Chrome Manifest V3 被推迟到明年 6 月实施,到明年 6 月的 Chrome M115 版发布后,将变更为所有扩展都必须及时更新到 Manifest V3 版本。
Manifest V3 到底是什么,它又为什么会被推迟实装呢?其实对于 Chrome 来说,manifest.json 是扩展的配置文件,其指明了扩展的各种信息,而 Manifest V3 则是一个 API,它规定了一个符合标准的扩展究竟应该是什么样子。简单来说,Manifest 之于 Chrome 开发者,就与 苹果 App Store 的审核指南之于 iOS 开发者一样,为 Chrome 的扩展制定了规则。
就像每一次苹果方面更新 App Store 审核指南都会引发争议一样,谷歌推出 Manifest V3 同样也伴随着诸多的争议,但这也很好理解,毕竟每一次改变现状都代表着既得利益者想要维持现状的意图落空。
事实上,Manifest V3 是谷歌方面在 2019 年的 Chrome 开发者峰会上提出的。也就是说即便是在 2023 年 6 月实施,也花费了 4 年时间,这也足以证明其在开发者社区中的争议性。
而 Manifest V3 在 Chrome 的开发者群体中备受争议,其实与谷歌在这一版本上想要实现的效果息息相关。作为浏览器扩展自十年前推出以来最大的转变之一,Manifest V3 号称更能够提升安全、隐私,以及浏览器性能,并将限制扩展的功能,尤其是那些旨在监视、修改和浏览器与用户访问的网站间交互的功能。然而相比于 Manifest V2,谷歌在 Manifest V3 上进行的改变却与所宣称的更安全、更能保护隐私背道而驰。
比如说,谷歌提出为了保证浏览器的安全性,用来查看、修改或阻止浏览器请求的 webRequest API,将会被效能有限的 Declarative Net Request API 取代。但 webRequest API 最核心的用途就是拦截网页上的广告,并被 AdBlock 等广告拦截工具广泛使用,开发者通过该 API 写入拦截浏览器请求的规则、分辨广告请求地址,以达到帮用户拦截浏览器发送含有广告内容的请求。
经过无数开发者的不断努力和维护,目前最新的广告过滤规则包含注释在内一共接近 9 万条,无限制写入拦截规则的 webRequest API 让广大用户避免了被无孔不入的浏览器广告骚扰。但根据开发者的反馈,Declarative Net Request API 的过滤条目限制为 3 万条,这就意味着当前主流的广告拦截工具使用的规则必然会有大部分失灵、拦截效果会大打折扣,用户未来想要不看广告的难度自然也就更高了。
打着为用户安全着想的大旗、行的却是让用户要看更多的广告,这显然很契合作为全球最大数字广告巨头谷歌的 商业 利益。当然,由于 webRequest API 的改动实际上只影响了消费者和广告拦截工具的开发者,所以它的影响还不算很大。真正让所有开发者沸反盈天的则是这样一条新规,那就是为了提高安全性、并保护用户免受恶意软件的侵害,谷歌在 Manifest V3 上阻止来自外部的远程托管脚本被扩展使用。
这一规定影响的是大名鼎鼎的油猴插件,也就是 GreasemonkeyTampermonkey。而这个插件的功能其实很简单,它就是一个可以安装脚本的扩展,有了这个 " 工具箱 ",用户才能往里面放各种 " 工具 ",有了这些 " 工具 ",Chrome 浏览器才能拥有各种功能。换而言之,油猴插件就相当于是 Android 系统里的 微信 ,脚本就等同于微信小程序。
那么问题就来了,绝大多数用户是不具备自己动手写脚本的能力,所以需要开发者提供的脚本,但导致了油猴一部分核心功能失效的就是加载远程脚本。Manifest V3 不允许扩展加载远程脚本,几乎就等同于让油猴迎来灭顶之灾。如果说广告拦截扩展的效果打折扣用户忍忍就过去了,但是扩展不能加载脚本,几乎就意味着 Chrome 的扩展生态要面临重新洗牌,开发者需要想其他的方法来实现同样的功能。
所谓另外的方式,其实就是将脚本托管在谷歌的服务器上,这等于是逼着开发者都必须注册谷歌开发者账户、并交纳注册费才能确保油猴等扩展的正常使用。在开发者看来,这就是在强制向谷歌付费了,显然是不能忍的。