Chrome 117 Beta 版

支援 CSS、陣列分組、疊代器輔助程式等 CSS 格線子格狀檢視畫面、進入及退出動畫。

除非另有說明,否則上述異動適用於最新 Chrome Beta 版,適用於 Android、ChromeOS、Linux、macOS 和 Windows 裝置。如要進一步瞭解此處所列功能,請使用我們提供的連結或 ChromeStatus.com 上的清單。Chrome 117 已於 2023 年 8 月 16 日推出 Beta 版。你可以前往 Google.com 電腦版網站下載最新版本,也可以使用 Android 版 Google Play 商店下載最新版本。

CSS

這個版本新增六項 CSS 功能。前三個屬性的作用是在獨立屬性上啟用轉場效果,藉此啟用進入和結束動畫

@starting-style 規則

此 at-rule 設定可讓作者在第一次樣式更新時開始 CSS 轉換。

在元素第一次樣式更新時,或是顯示類型從 none 變更為其他類型時,CSS 轉換不會觸發從初始樣式轉換。這是為了避免初始樣式發生非預期的轉換。如要從第一項樣式更新開始轉換,您現在可以在 @starting-style 規則中套用樣式。舉例來說,以下 CSS 會在 div 的第一個樣式更新時,從綠色到萊姆開始執行背景色彩轉換:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

疊加層屬性

overlay 屬性可讓開發人員在退出轉場時將元素保持在頂層圖層。新增疊加層屬性,指出元素是否位於頂層圖層,且可接受兩個值:noneauto

CSS 轉換行為屬性

transition-behavior CSS 屬性是 transition 屬性的長期版本,可在轉場中使用獨立屬性。透過指定轉換行為的 allow-discrete 值,離散屬性現在會啟動動畫,並從初始值翻轉為最終值 50%。如果轉場效果的 display: nonecontent-visibility: hidden 是初始值或最終值,在整個轉換期間,系統都會使用顯示的值。

CSS 格狀子值

grid-template-columnsgrid-template-rowssubgrid 值現已在 Chrome 中實作。這個值可讓巢狀格線使用在其父項中定義的音軌,而不要為列及/或欄建立新的軌跡定義。

CSS 文字換行:漂亮

CSS text-wrap 屬性的 pretty 值是最佳的版面配置,而非載入速度。這個欄位適用於內文,因此預期會有多行。使用 pretty 時,開發人員會明確選擇採用速度可能低於 wrap 的版面配置方法,因此可提高效能。目前 Chrome 的實作方式是針對孤立字進行最佳化,避免讓文字段落底部顯示單一字詞。

在 Chrome 117 中,請嘗試使用這個文字換行示範,看看這個值如何改變文字呈現方式。

include-inrinsic-size: auto none 支援

這項功能會擴充現有的 contain-intrinsic-size 語法,以便也納入 auto && none

網站 API

陣列分組

陣列分組是極為常見的作業,最適合 SQL 的 GROUP BY 子句和 MapReduce 程式設計 (最好採用 map-group-reduce)。將資料合併成群組,可讓開發人員計算優先順序較高的資料集,例如同類群組的平均年齡,或是某個網頁的每日 LCP 值。這項功能可以新增 Object.groupByMap.groupBy 靜態方法。物件方法會傳回純物件,其中群組是屬性鍵。Map 方法會傳回 Map,其中鍵可以是任意值。

透過 Clear-Site-Data 標頭清除用戶端提示

網站現在可以使用 Clear-Site-Data: "clientHints" 清除用戶端提示快取。當「Cookie」、「快取」或「*」指定同一個標頭時,也會清除用戶端提示。這是因為如果使用者在 UI 用戶端提示中清除 Cookie,用戶端提示快取就是快取,且分別與萬用字元目標一致。

Clear-Site-Data 標頭萬用字元語法

網站現在可以傳送 Clear-Site-Data: "*" 來清除所有儲存體目標 (「Cookie、快取」和「儲存空間」)。請注意,Chrome 目前不支援清除「executionContexts」,但只要在日後指定「*」標頭時加入這個指令,就會一併清除「executionContexts」。

customElements.getName

customElements.getName() 方法會傳回指定自訂元素定義的標記名稱。

Iterator 輔助程式

Iterator 輔助程式是疊代器原型的新方法,可用於一般使用及使用疊代器。

讓 CaptureController 源自 EventTarget 介面

「CaptureController」CaptureController介面可讓您進一步操控螢幕畫面擷取工作階段。日後,與擷取工作階段相關的事件通常會分派到該控制器。為管理這類事件的事件監聽器,您可以在 CaptureController 上使用 EventTarget 方法。

PerformanceResourceTiming 提供類型

PerformanceResourceTimingdeliveryType 屬性會傳回資源提供方式的相關資訊。例如從快取傳遞的資源 (目前透過 transferSize 公開),以及前一頁預先擷取的導覽。

網址 setter 中的通訊埠溢位檢查

設定 url.port 時,系統會檢查通訊埠值。超出 16 位元數值限制的所有值都將失效。例如,以下指令碼在變更後的行為會有所不同:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

變更前的輸出值為 65536。變更後的輸出內容為 80。

Private State Token API

這個全新 API 可用於跨網站傳播有限的私人信號,而不必使用第三方 Cookie 等跨網站永久 ID。第三方 Cookie 停用後,依賴第三方 Cookie 的反詐欺方法將無法運作。Private State Token API 不會產生或定義反詐欺信號,只有對應的第一方和權杖核發者才能取得。不過,API 會對透過這些信號傳輸的資訊設下限制,藉此維護隱私權。這個 API 是以 Privacy Pass 通訊協定的變化版本為基礎,目前正由 IETF 標準化處理。這可視為 Privacy Pass 通訊協定的網路公開形式。API 規格即將更新,以便取得新版本和權杖類型,並隨時與 Privacy Pass 工作團隊規格保持一致。預期的變更將會在基礎加密編譯通訊協定和權杖核發程式碼中:我們預期開發人員提供的核發和兌換 Fetch API 不應有任何變更。Private State Token API 舊稱「Trust Token API」。這個版本已重新命名,以便更準確地擷取基礎語意,並向使用者強調隱私權的優點。

網址標準相容 IPv4 內嵌 IPv6 主機剖析器

我們將更新剖析 IPv4 內嵌 IPv6 主機剖析器的行為,嚴格遵守網路網址標準。IPv6 位址引入以下限制:

  • 嵌入的 IPv4 位址一律由 4 個部分組成。
  • 如果地址包含少於 4 個部分 (例如 http://[::1.2]),將會失效。這項功能是 2023 年網址互通性功能的一部分。

網址:允許「%00」做為有效網址路徑

如果網址的路徑部分包含「%00」(或空值),而此網址違反了網址標準,Chrome 目前會將網址視為無效。舉例來說,以下測試會在 Chrome 中失敗,因為 new URL(...) 會擲回網址無效例外狀況。

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

根據網址標準,網址路徑中的任何字元或位元組序列都不應讓網址無效,而且這項變更會更新 Chrome,以遵循該標準。

WebRTC RTP 標頭擴充控制項

擴充 WebRTC RTCRtpTransceiver API,控制要交涉的 RTP 標頭擴充功能。

VideoEncoder 中的每個影格量化器

為 VideoEncoder 新增「量化工具」VideoEncoderBitrateMode。這樣就能為 AV1、VP9 和 AVC 視訊轉碼器的每個影格指定量化器參數。

requestDevice() 中的 WebUSB exclusionFilters 選項

navigator.usb.requestDevice() 中的 exclusionFilters 選項可讓網頁開發人員從瀏覽器挑選器中排除部分裝置。可用於排除符合更廣泛篩選條件但不支援的裝置。

來源試用中

在 Chrome 117 中,你可以選擇啟用下列新的來源試用

使用 Shared Brotli 的壓縮字典傳輸

這項功能現在支援使用指定的先前回應,做為 Brotli 壓縮 HTTP 回應的外部字典。

註冊 CompressionDictionaryTransport 來源試用

WebSQL 淘汰試用計畫

WebSQL 已從 Chrome 中移除。建議您將需要使用這類程式的網站透過 Wasm 遷移至 SQLite

這項淘汰試用計畫可讓需要更多時間進行遷移作業的開發人員,在 Chrome 123 版 (2024 年 3 月) 前繼續使用 WebSQL。註冊 WebSQL 淘汰試用

分頁式網頁應用程式

允許網頁應用程式視窗使用分頁列,例如在同一個應用程式中編輯多份文件。這會新增「分頁列」顯示模式和新的資訊清單欄位,以便自訂分頁列。

註冊分頁式網頁應用程式來源試用

淘汰和移除

這個 Chrome 版本將採用下列淘汰和移除功能。請前往 ChromeStatus.com,查看預定淘汰項目、目前的淘汰項目和先前移除內容清單。

這個版本的 Chrome 淘汰了兩項功能。

淘汰卸載事件

Chrome 117 將開始淘汰 unload 事件處理常式。如果網站使用上述內容,我們強烈建議您閱讀淘汰 unload 的專屬文章,瞭解各項相關規定。

淘汰 TLS SHA-1 伺服器簽章

在 TLS 握手期間,Chrome 即將停止支援使用 SHA-1 簽署伺服器簽章的簽名演算法。這項異動不會影響已移除的伺服器憑證或持續支援的用戶端憑證中 SHA-1 支援功能。

這個版本的 Chrome 移除了四項功能。

[WebRTC] 取消提供以回呼為基礎的舊版 getStats()

RTCPeerConnection 擁有兩種版本的 getStats(),一種符合規格規定,可透過解決承諾傳回報表;另一種則是透過回呼做為第一個引數,傳回截然不同的報告。我們現已移除回呼型 。

如要進一步瞭解遷移作業,以及需要更多時間的處理方法,請參閱舊版 getStats() 遷移指南

移除 WebRTC getStats datachannelIdentifier 的 -1 值

WebRTC getStats API 會顯示 dataChannelIdentifier 屬性。如果在建立資料通道連線之前查詢統計資料,則不會再提供「-1」值。而會省略字典成員。

移除 WebRTC getStats 編碼器實作和解碼器實作「unknown」

WebRTC getStats API 會顯示「傳出和傳入視訊」的編碼器和解碼器實作名稱。如果在影片影格編碼或解碼前查詢統計資料,則不再提供「不明」值。而會省略字典成員。

CSS 屬性 -webkit-highlight

移除旨在醒目顯示文字,但從未標準化的 CSS 屬性 -webkit-highlight。在 Chromium 中不具任何可見效果 (已剖析,但從未在算繪內容中使用)。該資源已於 2014 年從 WebKit 中移除,已於 MDN 標示為已淘汰,最近則替換為 CSS 精選虛擬規格