1月初,Google Chrome 97登陸穩定頻道,帶來了大量的新功能,包括更新的鍵盤API,該API被蘋果和Mozilla駁回,因為它太容易侵犯使用者隱私了。經過四周的開發週期,今天我們可以期待Chrome 98的釋出,雖然它沒有那麼多的爭議,但有一個功能“COLRv1”絕對是突出的,不僅如此它還引發了爭議。
Google Chrome 98增加了對COLRv1彩色漸變向量字型的支援,這是其COLRv0的進化版。 它們以漸變、合成、變換、多色字母的形式帶來了更具表現力的視覺能力,甚至在非常小的字型尺寸下也是如此。Google對此介紹說,它能夠使用COLRv1字型格式渲染諾託彩色表情符號,經過WOFF2壓縮後的大小為1.85MB。同時,對於同樣的表情符號,標準的點陣圖字型佔用了9MB,在節省系統資源開銷上,這是個重大的改進。
與任何新的瀏覽器功能一樣,獲得其他網路瀏覽器供應商和網路開發者的支援以確保無縫的交叉相容是非常重要的。儘管Mozilla和網路開發者已經提到他們對新的向量字型的支援,但蘋果的WebKit和Core Text團隊則反對該提議,他們反對COLRv1的理由如下:
它重新發明了車輪。這種新的格式與任何通用的2D圖形序列化格式一樣,具有很強的表現力和功能。現有的通用2D圖形的序列化格式有很多很多。
它還不存在於Chrome的開發者行列之外。OT-SVG同樣具有表達能力,存在並在DirectWrite、Core Text、Firefox和許多(大部分)Adobe創作應用程式中擁有運輸實現。許多OT-SVG字型已經存在。
因為這個建議在Chrome之外還不存在,所以在現有的創作工具中沒有生態系統。相反,許多設計創作工具已經匯出了SVG。
同時支援OT-SVG和這個新的提議是兩倍(-ish)的維護負擔,而這種格式並不比我們已經支援的格式更具表現力。
同時支援OT-SVG和這個新提議會增加我們的二進位制大小。我們預計額外的二進位制大小的增加大致相當於我們在實施 OT-SVG 後觀察到的二進位制大小的增加。(OT-SVG 涉及到一個 XML 解析器,但是 WebKit 已經與一個 XML 解析器關聯,所以預計這個新提議的大小與我們在實現 OT-SVG 後看到的大小增加大致相等,而這個提議需要它自己的新型解析/溢位檢測/解釋程式碼)。
同時支援OT-SVG和這個新提議,使基於向量的彩色字型的安全攻擊的表面積增加了一倍。
即使考慮到一個只支援這個建議而不支援SVG的引擎,也沒有看到任何證據表明,與一個新的二進位制格式相比,避免使用XML會減少安全漏洞。歷史上,在WebKit中,我們觀察到不透明的二進位制格式(如影象格式)有很多自己的安全漏洞。
這個規範有2500多行,規範的images/目錄有77個數字,而這個建議只有一個實現。它足夠複雜,以至於我們沒有信心它能夠被互操作地實現。我們擔心繪圖操作的行為可能是Skia特有的,而在Core Graphics上很難/不可能實現。例如,乍一看,我們不確定這個提案中的徑向梯度是否可以在Core Graphics上實現。據我們所知,這個建議並沒有經過許多獨立的利益相關者的嚴格的標準化過程。
在彩色字體表格中嵌入光柵影象資料在今天是很常見的,但是這個新的提議沒有允許這樣做的能力,儘管它的向量設施與任何通用的2D圖形序列化格式一樣具有表現力。因此,它實際上並沒有改善彩色字體表碎片的情況,而這被廣泛認為是當今彩色字型的最大缺點之一。
不過,不管蘋果方面如何反對,COLRv1字型格式將首先在Chrome 98中得到支援。
除此以外,Chrome 98中還包括其他較小的改進和提高。用於金鑰交換的簡單資料加密標準(SDES)也正在被淘汰,因為它被稱為"歷史性的",因此是一種安全風險。
一個CSS媒體查詢也被提供給網頁開發人員,以便他們能夠自動檢測HDR顯示器並相應地渲染他們的內容。對於顏色調整,"only"關鍵字已被重新引入到CSS色彩模式規範中。
為了替代潛在的效能優勢和對某些用例的簡易開發,正在為"ClipboardItem"物件新增對承諾的支援。此外,開發者還可以利用"self.structuredClone"方法來克隆和轉移物件。為了避免混淆並實現與標準規範的互操作性,一些用於視窗彈出的API也被改變。
流寫入現在可以立即被終止,跨源資源共享(CORS)預檢請求也可以傳送到私人網路上的目標伺服器,在訪問子資源之前首先明確詢問許可權。另一種方法使開發人員能夠使用檔案控制代碼更容易地刪除檔案,而不是被迫先訪問父目錄。
瞭解有關COLRv1更多細節:
https://developer.chrome.com/blog/colrv1-fonts/
但這還不是全部,Chrome 98的DevTools中還有不少改進,您可以在這裡檢視所有的內容:
https://developer.chrome.com/blog/new-in-devtools-98/
Chrome 98將在今天晚些時候開始推出。如果你在一天中沒有自動更新到98版,請到幫助>關於Google Chrome,一旦有了更新,就可以觸發它。接下來是Chrome 99,它將於2月3日進入Beta通道,並將於3月1日登陸穩定版。