谷歌在 Chrome 上的一個(gè)騷操作,讓開(kāi)發(fā)者炸了鍋
來(lái)源:三易生活
作為如今全球最流行的瀏覽器,Chrome 有著數(shù)以億計(jì)的用戶,如果再算上谷歌主導(dǎo)下開(kāi)源的 Chromium 生態(tài),幾乎已經(jīng)覆蓋了超過(guò)全球網(wǎng)民的四分之三。就像谷歌方面在 Android 上的每一次改動(dòng)一樣,Chrome 上的變革也同樣牽動(dòng)人心。
眾所周知,作為現(xiàn)代瀏覽器的 Chrome 之所以 " 現(xiàn)代 ",靠的就是豐富多彩的擴(kuò)展,可如今谷歌要對(duì) Chrome 的擴(kuò)展 " 動(dòng)刀 " 了。
日前在 Chrome 的開(kāi)發(fā)者博客中,谷歌產(chǎn)品經(jīng)理 David Li 詳解描述了 Manifest V3 迭代的更多細(xì)節(jié)。據(jù)他的說(shuō)法,原計(jì)劃將于 2023 年 1 月上線的 Chrome Manifest V3 被推遲到明年 6 月實(shí)施,到明年 6 月的 Chrome M115 版發(fā)布后,將變更為所有擴(kuò)展都必須及時(shí)更新到 Manifest V3 版本。
Manifest V3 到底是什么,它又為什么會(huì)被推遲實(shí)裝呢?其實(shí)對(duì)于 Chrome 來(lái)說(shuō),manifest.json 是擴(kuò)展的配置文件,其指明了擴(kuò)展的各種信息,而 Manifest V3 則是一個(gè) API,它規(guī)定了一個(gè)符合標(biāo)準(zhǔn)的擴(kuò)展究竟應(yīng)該是什么樣子。簡(jiǎn)單來(lái)說(shuō),Manifest 之于 Chrome 開(kāi)發(fā)者,就與 蘋(píng)果 App Store 的審核指南之于 iOS 開(kāi)發(fā)者一樣,為 Chrome 的擴(kuò)展制定了規(guī)則。
就像每一次蘋(píng)果方面更新 App Store 審核指南都會(huì)引發(fā)爭(zhēng)議一樣,谷歌推出 Manifest V3 同樣也伴隨著諸多的爭(zhēng)議,但這也很好理解,畢竟每一次改變現(xiàn)狀都代表著既得利益者想要維持現(xiàn)狀的意圖落空。
事實(shí)上,Manifest V3 是谷歌方面在 2019 年的 Chrome 開(kāi)發(fā)者峰會(huì)上提出的。也就是說(shuō)即便是在 2023 年 6 月實(shí)施,也花費(fèi)了 4 年時(shí)間,這也足以證明其在開(kāi)發(fā)者社區(qū)中的爭(zhēng)議性。
而 Manifest V3 在 Chrome 的開(kāi)發(fā)者群體中備受爭(zhēng)議,其實(shí)與谷歌在這一版本上想要實(shí)現(xiàn)的效果息息相關(guān)。作為瀏覽器擴(kuò)展自十年前推出以來(lái)最大的轉(zhuǎn)變之一,Manifest V3 號(hào)稱更能夠提升安全、隱私,以及瀏覽器性能,并將限制擴(kuò)展的功能,尤其是那些旨在監(jiān)視、修改和瀏覽器與用戶訪問(wèn)的網(wǎng)站間交互的功能。然而相比于 Manifest V2,谷歌在 Manifest V3 上進(jìn)行的改變卻與所宣稱的更安全、更能保護(hù)隱私背道而馳。
比如說(shuō),谷歌提出為了保證瀏覽器的安全性,用來(lái)查看、修改或阻止瀏覽器請(qǐng)求的 webRequest API,將會(huì)被效能有限的 Declarative Net Request API 取代。但 webRequest API 最核心的用途就是攔截網(wǎng)頁(yè)上的廣告,并被 AdBlock 等廣告攔截工具廣泛使用,開(kāi)發(fā)者通過(guò)該 API 寫(xiě)入攔截瀏覽器請(qǐng)求的規(guī)則、分辨廣告請(qǐng)求地址,以達(dá)到幫用戶攔截瀏覽器發(fā)送含有廣告內(nèi)容的請(qǐng)求。
經(jīng)過(guò)無(wú)數(shù)開(kāi)發(fā)者的不斷努力和維護(hù),目前最新的廣告過(guò)濾規(guī)則包含注釋在內(nèi)一共接近 9 萬(wàn)條,無(wú)限制寫(xiě)入攔截規(guī)則的 webRequest API 讓廣大用戶避免了被無(wú)孔不入的瀏覽器廣告騷擾。但根據(jù)開(kāi)發(fā)者的反饋,Declarative Net Request API 的過(guò)濾條目限制為 3 萬(wàn)條,這就意味著當(dāng)前主流的廣告攔截工具使用的規(guī)則必然會(huì)有大部分失靈、攔截效果會(huì)大打折扣,用戶未來(lái)想要不看廣告的難度自然也就更高了。
打著為用戶安全著想的大旗、行的卻是讓用戶要看更多的廣告,這顯然很契合作為全球最大數(shù)字廣告巨頭谷歌的 商業(yè) 利益。當(dāng)然,由于 webRequest API 的改動(dòng)實(shí)際上只影響了消費(fèi)者和廣告攔截工具的開(kāi)發(fā)者,所以它的影響還不算很大。真正讓所有開(kāi)發(fā)者沸反盈天的則是這樣一條新規(guī),那就是為了提高安全性、并保護(hù)用戶免受惡意軟件的侵害,谷歌在 Manifest V3 上阻止來(lái)自外部的遠(yuǎn)程托管腳本被擴(kuò)展使用。
這一規(guī)定影響的是大名鼎鼎的油猴插件,也就是 GreasemonkeyTampermonkey。而這個(gè)插件的功能其實(shí)很簡(jiǎn)單,它就是一個(gè)可以安裝腳本的擴(kuò)展,有了這個(gè) " 工具箱 ",用戶才能往里面放各種 " 工具 ",有了這些 " 工具 ",Chrome 瀏覽器才能擁有各種功能。換而言之,油猴插件就相當(dāng)于是 Android 系統(tǒng)里的 微信 ,腳本就等同于微信小程序。
那么問(wèn)題就來(lái)了,絕大多數(shù)用戶是不具備自己動(dòng)手寫(xiě)腳本的能力,所以需要開(kāi)發(fā)者提供的腳本,但導(dǎo)致了油猴一部分核心功能失效的就是加載遠(yuǎn)程腳本。Manifest V3 不允許擴(kuò)展加載遠(yuǎn)程腳本,幾乎就等同于讓油猴迎來(lái)滅頂之災(zāi)。如果說(shuō)廣告攔截?cái)U(kuò)展的效果打折扣用戶忍忍就過(guò)去了,但是擴(kuò)展不能加載腳本,幾乎就意味著 Chrome 的擴(kuò)展生態(tài)要面臨重新洗牌,開(kāi)發(fā)者需要想其他的方法來(lái)實(shí)現(xiàn)同樣的功能。
所謂另外的方式,其實(shí)就是將腳本托管在谷歌的服務(wù)器上,這等于是逼著開(kāi)發(fā)者都必須注冊(cè)谷歌開(kāi)發(fā)者賬戶、并交納注冊(cè)費(fèi)才能確保油猴等擴(kuò)展的正常使用。在開(kāi)發(fā)者看來(lái),這就是在強(qiáng)制向谷歌付費(fèi)了,顯然是不能忍的。