Google Chrome浏览器再次推迟删除Manifest V2扩展

IT之家 12 月 12 日消息,谷歌正在强势推广备受争议的 Manifest V3 扩展,并将在明年 6 月淘汰 Manifest V2 扩展。

近日,谷歌 Chrome 官方宣布再次推迟淘汰 Manifest V2 扩展,称将通过新功能、错误修复和充足的采用时间为开发者提供应对迁移挑战的解决方案。

谷歌表示,扩展开发者在迁移过程中出现了如 Service Worker 无法使用 DOM 功能且其寿命存在硬限制的问题,正在使用 Offscreen Documents API(在 Chrome 109 中添加)来缓解前者,并积极寻求解决后者的方法。

因此,谷歌推迟了 1 月份的所有实验,还将评估所有下游里程碑版本。谷歌表示,希望在 2023 年 3 月之前听到更多关于更新后的淘汰计划和时间表的信息,因此目前的 Manifest V2 淘汰时间变为待定。

IT之家了解到,其他主流网页浏览器也开始适配 Manifest V3 扩展标准,微软 Edge 浏览器决定跟进谷歌,在推进 Manifest V3 的同时开始逐步淘汰 Manifest V2。

Firefox 浏览器将在 2022 年底前全面拥抱 Manifest V3,目前这一新功能已开始测试。从 2022 年 11 月 21 日开始,Firefox 浏览器开放 Manifest V3 扩展的提交,Manifest V2 的弃用时间将在后续评估后公布。

值得一提的是,MV3 中最具争议的更改之一是删除了 Web Request API,以支持新的声明式网络请求 API(Declarative Net Request API)。开发者们对这一变动进行了大量批评,因为它剥夺了许多扩展的功能并降低了效率,其中以谷歌 Chrome 浏览器为代表。而 Mozilla 选择保留 Web Request API,同时也支持声明式网络请求。

谷歌在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的扩展生态要面临重新洗牌,开发者需要想其他的方法来实现同样的功能。

所谓另外的方式,其实就是将脚本托管在谷歌的服务器上,这等于是逼着开发者都必须注册谷歌开发者账户、并交纳注册费才能确保油猴等扩展的正常使用。在开发者看来,这就是在强制向谷歌付费了,显然是不能忍的。

Chrome浏览器可能会在2023年放弃原有的扩展程序规范

【CNMO新闻】Google于今年的1月20日正式发布了Chrome 88最新版本,在这个版本中,Chrome浏览器正式放弃对放弃对Flash和FTP的支持,是基于使用率低、且缺乏加密存在资安风险的考量。同时还增添了检查密码机制与PDF功能。

伴随着该版本一起发布的还有Manifest V3 扩展程序规范,为将来Chromium内核的浏览器奠定了扩展开发的新方向。当然啦,“V3”的发布也就意味着“V2”规范的推移,近日,谷歌在官网公开了Manifest V2规范的“退休”计划,首先2022 年1月17日,Chrome 网络商店将不再接受新的Manifest V2扩展上架,开发人员仍然可以将更新推送到现有的Manifest V2扩展,但不能提交新的Manifest V2扩展。之后,在2023年1月:Chrome 浏览器将不再支持运行Manifest V2扩展,开发人员也不可向现有Manifest V2扩展推送更新。也就是说,Manifest V2扩展规范还有不到2年的服役时间。

这未尝不是一件好事,因为Manifest V3比V2更安全、性能更高、隐私保护更好。在过去的几个月里,谷歌在新的脚本API中引入了其他机制,并扩展了声明性Net Request API,支持多个静态规则集、基于选项卡ID的过滤和会话范围的规则。