愛伊米

Chrome 97 測試版釋出,引入 WebTransport 協議框架等大量新特性

出品|開源中國

作者|羅奇奇

11 月 18日 ,谷歌公佈了 Chrome 97 測試版的新特性,這些更改適用於適用於 Android、Chrome OS、Linux、macOS 和 Windows 的最新 Chrome 97 測試版本。

Chrome 97 測試版的新特性如下:

自動展開詳細資訊元素

現在可以搜尋封閉細節的元素,且可以連結到它們。使用頁內查詢(

find-in-page

)、滾動到文字片段(

ScrollToTextFragment

)和元素片段導航(

element fragment navigation

)時,這些隱藏的元素也會自動展開。

透過響應標頭推送

之前 Chrome 用了錯誤的所有者文件內容安全策略,現在專職工作者由內容安全政策管理。

CSS

新的 font-synthesis 屬性

font-synthesis

CSS 屬性控制當字型族在缺少斜面(oblique)、粗體( bold)和小型大寫字母( small-caps)字型時,是否允許使用者代理合成這三種字型。如果沒有這個屬性,一些沒有必需變體的字型族的網頁可能會有不自然的字型。

transform: perspective 支援 (none)引數

perspective()

函式現在支援使用 ‘none’ 作為引數,在動畫的一個端點是單位矩陣的情況下,更容易使用perspective() 函式構建動畫。

新的鍵盤 API 特性策略

Chrome 支援新的

dkeyboard-map

值,

Keyboard.getLayoutMap()

與程式碼結合使用可以識別不同鍵盤佈局(如英語和法語)的按鍵,此方法在 iframe 元素中不可用,某些無法使用鍵盤 API 的 Web 應用程式(Excel、Word 和 PowerPoint)的體系結構也現在可以使用。

新的 HTMLScriptElement.supports() 方法

HTMLScriptElement。supports() 方法提供了一種統一的方法來檢測使用指令碼元素的新特性。不過目前還沒有決定好 HTMLScriptElement的type 的 type 屬性可以使用哪些型別。關於此部分的內容可以參閱以下幾個使用指令碼元素的新功能提案:

https://github。com/WICG/import-maps/

https://github。com/jeremyroman/alternate-loading-modes/blob/main/triggers。md#speculation-rules

https://github。com/WICG /resource-bundles/

表單提交的換行規範化

表單條目中的換行符現在與 Gecko 和 WebKit 一樣規範化,解決了長期存在的互操作性問題,即 Gecko 和 WebKit 規範化換行符較晚,而 Chrome 較早進行。從 Chrome 97 開始,早期規範化被刪除,後期規範化擴充套件到所有編碼型別。

標準化現有的客戶端提示命名(Client Hint Naming)

Chrome 97 透過

sec-ch-

字首來標準化客戶端提示的名稱,受影響的客戶端提示是

dpr

width

viewport-width

device-memory

rtt

downlink

、和

ect

。Chrome 97 還在支援這些客戶端提示。不過早晚會刪除這個功能,建議開發人員做好準備。

WebTransport

WebTransport 是一個協議框架,它使受 Web 安全模型約束的客戶端能夠使用安全的多路複用傳輸與遠端伺服器進行通訊。

目前,Web 開發者有兩個用於與遠端伺服器進行雙向通訊的 API:

WebSockets

RTCDataChannel

WebSockets

是基於 TCP 的,因此具有 TCP 的所有缺點(線頭阻塞,缺乏對不可靠資料傳輸的支援),不適合對延遲敏感的應用程式。

RTCDataChannel

基於流控制傳輸協議(SCTP),沒有上述缺點;然而,它被設計用於對等環境,這導致它在客戶端-伺服器設定中的使用相當低。

WebTransport

提供了一個客戶端 - 伺服器 API,支援不可靠和可靠資料的雙向傳輸,使用類似 UDP 的資料報和可取消的流。

WebTransport

呼叫在 DevTools 的 Network 面板中可見,並在 Type 列中標識。

有關更多資訊,請參閱使用 WebTransport 進行試驗。

JavaScript

Chrome 97 包含 V8 JavaScript 引擎最新的9。7 版本。可以在 V8 發行說明中找到最新功能的完整列表。

Array

TypedArray

已支援

findLast()

fileLastIndex()

靜態

方法。這些函式類似於

find()

findIndex()

,不過從陣列的末尾進行搜尋,而不是開始。

棄用和刪除

刪除 WebRTC 的 SDES 金鑰交換

自 2013 年以來,WebRTC 的 SDES 金鑰交換機制已在相關 IETF 標準中宣告為“不支援”,IETF 已宣佈 SDES 規範具有歷史意義。近年來,它在 Chrome 中的使用量顯著下降,因此 Chrome 97 將它刪除。

在第三方上下文中刪除 WebSQL

第三方上下文中的 WebSQL 現在已刪除

。Web SQL 資料庫標準於 2009 年 4 月首次提出,並於 2010 年 11 月放棄。Gecko

從未實現此功能

,WebKit 在 2019 年就已經棄用了它。

刪除 SDP 的計劃 B

用於在 WebRTC 中建立會話的會話描述協議 (SDP) ,在 Chromium 中使用兩種不同的方言實現:統一計劃和計劃 B(Unified Plan and Plan B)。計劃 B 不能跨瀏覽器相容,因此刪除。

公告原文:https://blog。chromium。org/2021/11/chrome-97-webtransport-new-array-static。html

Chrome 97 測試版釋出,引入 WebTransport 協議框架等大量新特性