本月早些時候,GoogleChrome104來到穩定通道,更新網絡藍牙API,由於暴露可用於侵犯用戶隱私的訪問指紋,Google面臨蘋果和Mozilla的一致批評。今天,Chrome105還是會照常發佈,雖然它不像以前的版本那樣有爭議,但蘋果對這個版本還是有一些擔憂。
Google Chrome 105在後臺有很多變化,其中之一是用戶代理客戶端提示,這是一個公開設備活動和條件信息的API,以便開發者可以使他們的網頁對各種硬件作出動態響應。隨著3月份Chrome 100的發佈,Google告誡網絡開發者,他們必須在2023年3月之前遷移到這個客戶端提示API,而不是依賴用戶代理字符串。
因此,對客戶端提示API的批評並不新鮮,但Chrome 105對其做一些改變,開發者可以請求顯示內容的瀏覽器窗口的高度信息。以前,這個API隻暴露視口的寬度信息,但Google認為,獲取高度也是有用的,可以確保網頁上受高度限制的圖像正常顯示。客戶端提示委托訪問的語法也在改變,以回應開發者的反饋。
Google強調一個可以追溯到2020年的問題報告,在這個帖子中,蘋果的WebKit團隊提到對客戶端提示API被用來識別用戶的擔憂。
以下是該帖文的摘錄:
我可能誤讀規范,但按照書面規定,getHighEntropyValues似乎可以訪問第一方上下文中的第三方腳本和在第三方iframe中運行的腳本的所有高熵客戶端提示,而不管網站通過相關的HTTP頭選擇哪種提示。
如果你想知道為什麼蘋果對Chrome瀏覽器的想法如此重要,那是因為網絡開發者最好希望編寫的代碼能夠在所有的瀏覽器上保持一致和兼容。因此,當涉及到一個新功能時,主要瀏覽器供應商的支持是很重要的。如果某個廠商拒絕一項功能,就意味著開發者要麼完全放棄這項功能,要麼為該瀏覽器編寫特定的代碼,以確保跨平臺的兼容性和行為。
還有其他一些值得註意的變化,雖然沒有那麼大的爭議性。在非安全情況下使用WebSQL被廢棄,因為它是2009年的一個遺留規范,蘋果在2019年放棄它,Mozilla甚至沒有實現它。Chrome 105中其他被刪除的功能包括從未打算發佈的手勢滾動DOM事件以及在自定義標識符中使用"默認"CSS關鍵字的能力。
一個名為"onbeforeinput"的全局事件處理程序也被引入,它得到蘋果、Mozilla和網絡開發者的支持。同樣,另一個得到開發者支持的新功能是明確標記應被阻止渲染的資源。
與Chrome 105一起發佈的其他功能有:為元素提供更多組成樣式的容器查詢,兩個偽類選擇器,一種更容易訪問TransformStreAMDefaultController類的方法,以及導航類的一些新方法,以及在超滾動期間固定元素的一些行為變化。
另一件會讓使用文件系統訪問API的開發者非常高興的事情是,能夠在同一提示下獲得可寫目錄和可讀目錄。以前,這隻返回後者,這給用戶造成混亂和權限疲勞。同樣,一個獲取上傳流的方法已經被引入,所以開發者不必在WebSocket上額外寫入雜亂的代碼來達到同樣的目的。此外,Sanitizer API的MVP版本也將發佈,它通過將一些維護負擔轉移到平臺上,使開發者能夠以更容易的方式建立無XSS的網絡應用。
Chrome還正在對音頻輸入和輸出機制進行重大修改。流媒體和視頻會議應用現在應該明確請求接收非系統音頻。還有一個新的方法來解決導入的URL,以及一個媒體源擴展(MSE)API,此外,現在創建一個JSON響應更容易。Worklet的加載現在也被報告給資源計時,以增加透明度。
雖然這些都是普遍可用的功能,但也有相當多的功能被鎖定在開發者標志後面。這些功能包括將所有的定時器(包括DOM定時器)限制到125Hz,這會鼓勵開發者遷移到更好、更省電的替代品。其他有趣的功能包括匿名的iframe對象(在這裡閱讀所有的技術細節),從"canmakepayment"服務工作者事件中移除商傢身份,並將WebHID API暴露給擴展服務工作者。
除在Android上已經可以使用外,為功能上的平等,Google也正在實施桌面版的Priorender 2。那些在Android手機上使用遊戲手柄玩遊戲的人將會非常高興地知道,遊戲手柄API將能夠利用觸覺反饋選項,如觸發式搖晃和雙重搖晃(僅限Android 12以上)。最後,Chrome 105還實現TLS加密客戶端招呼特性(ECH),以改善標志後的隱私,這種做法類似於微軟Edge。
正如你可能已經從這篇文章的篇幅中猜到的那樣,Chrome 105是一個重大更新。它將在今天晚些時候開始推出。如果Chrome瀏覽器在一天中沒有自動更新到105版本,請前往"幫助">"關於Google瀏覽器",以便在更新可用時觸發該更新。接下來是Chrome 106,它將於9月1日進入測試頻道,並將於9月27日登陸穩定版。