Chrome 125

穩定版發布日期:2024 年 5 月 14 日

除非另有註明,否則下列異動適用於 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 125 穩定版。

HTML 和 DOM

宣告式 Shadow DOM 序列化

這項功能可讓開發人員序列化含有 Shadow Root 的 DOM 樹狀結構,最近已納入 HTML 標準。

追蹤錯誤 #41490936 | ChromeStatus.com 項目 | 規格

CSS

CSS 錨點定位

CSS 錨定定位功能可讓開發人員以宣告方式,將絕對定位元素繫結至頁面上一或多個其他元素 (錨定),不需使用 JavaScript。如果錨定元素可捲動,錨定定位功能就能發揮良好效用。常見的用途是將彈出式視窗 (例如工具提示) 放在叫用該視窗的元素旁,或選取選單及其彈出式視窗選項清單。在錨定定位功能推出前,這些用途需要 JavaScript 動態定位彈出式視窗,並在叫用元素捲動時保持錨定,這會影響效能,且難以正確執行。有了錨定定位,就能以宣告方式高效實作這些用途。

錨點定位功能包含大量 CSS 屬性。以下列出幾項重要屬性:

  • anchor-name:將元素設為其他元素的錨定標記。
  • position-anchor:說明錨定元素應使用的「預設」錨點,以便進行錨點定位。
  • anchor() 函式:用於參照錨定元素的位置,以定位錨定元素。
  • inset-area:相對定位的簡寫,用於常見的相對位置。

CSS 錨定位置 API 簡介 | 追蹤錯誤 #40059176 | ChromeStatus.com 項目 | 規格

CSS 階梯值函式:round()、mod() 和 rem()

階梯值函式 round()、mod() 和 rem() 都會根據另一個「階梯值」轉換指定值。

round() CSS 函式會根據所選的四捨五入策略,傳回四捨五入後的數字。

mod() CSS 函式會傳回第一個參數除以第二個參數時剩餘的模數,類似於 JavaScript 餘數運算子 (%)。模數是指一個運算元 (被除數) 除以第二個運算元 (除數) 時剩餘的值。一律採用除數的正負號。

rem() CSS 函式會傳回第一個參數除以第二個參數時的餘數,類似於 JavaScript 餘數運算子 (%)。餘數是指一個運算元 (被除數) 除以第二個運算元 (除數) 時剩餘的值。一律採用被除數的正負號。

追蹤錯誤 #40253179 | ChromeStatus.com 項目 | 規格

CSS 自訂 :state() 的新語法

CSS 自訂狀態可讓自訂元素公開自己的虛擬類別。CSSWG 現已指定語法,Chrome 125 則支援新語法 :state(foo)。這項異動將有一段過渡期,期間 Chrome 會同時支援舊語法 (:--foo) 和新語法,讓網站能切換至新語法。

ChromeStatus.com 項目 | 規格

移除 Oklab 和 Oklch 顏色中亮度接近 100% 或 0 的不連續性

在這項異動之前,所有 Lab、LCH、Oklab 和 Oklch 顏色,只要亮度值為 100%,無論其他兩個參數為何,都會算繪為白色。這些空間中亮度值為 0 的所有顏色都會算繪為黑色。這兩種對應會導致漸層不連續,且網頁程式開發人員未預期會發生這種情況。

復原後,系統不會再人為對應這些顏色,顯示的顏色會與鄰近顏色連續,並取決於螢幕的色域對應。

ChromeStatus.com 項目 | 規格

已使用色彩配置根捲軸

如果「頁面支援的色彩配置」值為「normal」或未指定,且根元素的 color-scheme 計算值為 normal,瀏覽器會使用使用者偏好的色彩配置算繪可視區域捲軸。可視區域捲軸可視為位於網路內容之外。因此,如果開發人員未明確指定支援的色彩配置,使用者代理程式在算繪可視區域捲軸時,應遵循使用者偏好的色彩配置。

這項異動不會影響開發人員控制捲軸色彩配置。新行為會讓瀏覽器使用使用者偏好的色彩配置,轉譯可視區域非疊加捲軸,前提是開發人員未指定根元素的色彩配置。

標題 | 追蹤錯誤 #40259909 | ChromeStatus.com 項目 | 規格

view-transitions 類別

新的 CSS 屬性 view-transition-class 可讓您指定一或多個檢視畫面轉換類別。接著,您可以使用這些類別選取 ViewTransition 虛擬元素,例如 ::view-transition-group(*.class)。

這是 ViewTransition API 的擴充功能,可簡化檢視畫面轉換虛擬元素的樣式設定,就像 CSS 類別可簡化一般 DOM 元素的樣式設定一樣。

追蹤錯誤 #41492972 | ChromeStatus.com 項目 | 規格

載入中

建構 WebSocket 時接受 HTTP 和 HTTPS 網址

這項更新會在 WebSocket 建構函式中啟用 HTTP 和 HTTPS 配置,因此開發人員也能使用相對網址。這些網址會正規化為 ws: 和 wss: 內部配置。

追蹤錯誤 #325979102 | ChromeStatus.com 項目 | 規格

網站 API

Attribution Reporting API 新增功能

Attribution Reporting API 新增了幾項功能,包括支援剖析失敗偵錯報表,提供額外的偵錯功能;支援指定偏好註冊平台的欄位,提升 API 人體工學;以及改善隱私權。

ChromeStatus.com 項目

Compute Pressure API

Compute Pressure API 提供高階狀態,代表系統的 CPU 負載。這項功能可讓實作項目使用正確的基礎硬體指標,確保使用者只要系統未承受無法管理的壓力,就能充分利用所有可用的處理能力。

Intel 主導了這個 API 的設計和實作工作,讓視訊會議應用程式能動態平衡功能和效能。

Compute Pressure API | 追蹤錯誤 #40683064 | ChromeStatus.com 項目 | 規格

這項功能會推出 Storage Access API 的建議擴充功能 (回溯相容,且已在來源試用中),允許在第三方情境中存取未分區的 Cookie 和非 Cookie 儲存空間。目前的 API 只能存取 Cookie,而 Cookie 的用途與非 Cookie 儲存空間不同。

追蹤錯誤 #40282415 | ChromeStatus.com 項目 | 規格

FedCM CORS 對 ID 斷言端點的要求

FedCM API 中的擷取作業需要特定屬性,因此難以推論。雖然關於帳戶端點的討論仍在進行中,但各方大致上都同意 ID 斷言端點應使用 CORS。這項更新可讓這項擷取的安全性屬性更貼近網路平台中的其他擷取。

FedCM 更新:Button Mode API 來源試用、CORS 和 SameSite | 追蹤錯誤 #40284123 | ChromeStatus.com 項目

FedCM 現在會透過 CORS 傳送 ID 宣告要求。這項異動代表 Chrome 不再將 SameSite=Strict Cookie 傳送至 ID 宣告端點,但仍會傳送 SameSite=None。由於將不同的 Cookie 組合傳送至帳戶端點和 ID 宣告端點並不合理,因此這項變更可確保兩者一致。

不傳送 SameSite=Strict Cookie 也符合 requestStorageAccess 行為和一般跨網站要求。

追蹤錯誤 #329145816 | ChromeStatus.com 項目 | 規格

可互通的 mousemove 預設動作

Chrome 允許取消 mousemove 事件,以防止其他 API (例如文字選取,甚至過去的拖放功能)。這與其他主要瀏覽器不一致,也不符合 UI 事件規格。現在,文字選取不再是 mousemove 的預設動作。您仍可分別取消 selectstart 和 dragstart 事件,防止文字選取和拖曳。

這項功能將從 Chrome 125 開始逐步推出,預計在 Chrome 126 開放給所有使用者。

示範 | 追蹤錯誤 #40078978 | ChromeStatus.com 項目 | 規格

規則運算式修飾符

規則運算式修飾符可讓您在本機修改模式中的 i、m 和 s 旗標。

如要為子運算式啟用旗標,請使用 (?X:subexpr),其中 X 是 i、m 或 s 之一。如要停用子運算式的標記,請使用 (-X:subexpr)。

例如,不區分大小寫的 i 旗標:

const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false

const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false

ChromeStatus.com 項目 | 規格

規則運算式重複命名擷取群組

重複的命名擷取群組可讓您在不同選項中使用相同的擷取群組名稱。例如

const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;

在這種情況下,year 對第 1 個替代方案 ((?<year>[0-9]{4})-[0-9]{2}) 或第 2 個替代方案 ([0-9]{2}-(?<year>[0-9]{4})) 都有效。

ChromeStatus.com 項目 | 規格

Chrome 應用程式

Chrome 應用程式中的 Direct Sockets API

這項更新可讓 Chrome 應用程式啟用 Direct Sockets,讓網頁應用程式與網路裝置和系統建立直接傳輸控制通訊協定 (TCP) 和使用者資料包通訊協定 (UDP) 通訊,有助於將特殊應用程式從 Chrome 應用程式轉換為隔離網頁應用程式。

ChromeStatus.com 項目 | 規格

新來源試用

FedCM Button Mode API 和 Use Other Account API

這項來源試用包含下列兩個 FedCM API。

Button Mode API 可讓網站在點選按鈕時呼叫 FedCM,例如點選「登入 IdP」按鈕。因此,FedCM 必須保證一律會回應可見的使用者介面,而不是在使用者登出時不顯示 UI 的小工具模式。在按鈕模式下呼叫 FedCM API 時,如果使用者未登入,系統會將他們導向 IdP 登入頁面 (在對話方塊視窗中)。

此外,由於按鈕模式是在明確的使用者手勢中呼叫,因此與小工具模式 (沒有明確意圖) 的 UI 相比,UI 可能更為醒目 (例如置中和模態)。如要進一步瞭解 Button Mode API 的運作方式,請參閱「FedCM 更新:Button Mode API 來源試用、CORS 和 SameSite」

Use Other Account API 可讓識別資訊提供者允許使用者登入其他帳戶。

來源試用 | 示範 | 追蹤錯誤 #40284792 | ChromeStatus.com 項目 | 規格

摺疊式裝置 API

這項來源試用包含 Device Posture API 和 Viewport Segments Enumeration API。這些 API 旨在協助開發人員指定摺疊式裝置。

來源試用 | 摺疊式裝置 API 來源試用 | ChromeStatus.com 項目 | 規格

淘汰試用計畫:帶有前置字串的 HTMLVideoElement 全螢幕屬性和方法

如果您需要更多時間調整程式碼,可以透過這項淘汰試用計畫,重新啟用對前置 HTMLVideoElement 屬性和方法的支援。

來源試用 | ChromeStatus.com 項目

略過預先載入掃描

略過預先載入掃描器,探索不擷取子資源的網頁效能取捨。

預先載入掃描器步驟會實作推測性預先擷取,提升含有子資源擷取作業的網頁效能。不過,如果網頁沒有子資源,這個步驟就沒有任何好處,反而會增加額外的處理負擔。

如果進階網頁使用者想減少這項負擔,這項實驗提供頁面層級控制項,可停用預先載入掃描器。從這項實驗收集的資料,可用於評估修改後的 API 或不同的 HTML 預先載入掃描器實作方式是否有幫助。

來源試用 | 追蹤錯誤 #330802493 | ChromeStatus.com 項目 | 規格

淘汰和移除

移除權限和權限政策「window-management」的「window-placement」別名

移除權限和權限政策「window-management」的「window-placement」別名。這是重新命名字串的大型計畫之一,最終會淘汰並移除「window-placement」。隨著 Window Management API 逐漸演進,術語變更可延長描述元的壽命。

標題 | 追蹤錯誤 #40842072 | ChromeStatus.com 項目 | 規格

移除企業政策:NewBaseUrlInheritanceBehaviorAllowed

自 2023 年 8 月 (Chrome 118) 起,這項企業政策覆寫的基礎程式碼變更 (啟用新的基準網址繼承行為) 已在穩定版本中啟用。已知問題已解決,因此這項企業政策已在 Chrome 125 版中移除。

ChromeStatus.com 項目

移除帶有前置字串的 HTMLVideoElement 全螢幕屬性和方法

自 Chrome 38 起,附帶前置字串的 HTMLVideoElement 全螢幕 API 已淘汰。這些屬性已由 Element.requestFullscreen() 取代,後者於 2018 年在 Chrome 71 中首次推出,不含前置字元。

下列屬性和方法將從 HTMLVideoElement 中移除:

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen() (請注意 FullScreen 中「S」的大小寫差異)
  • webkitExitFullScreen()

如果您的網站仍依賴這些功能,且需要更多時間更新程式碼,請註冊本文列出的淘汰試用計畫。

ChromeStatus.com 項目

其他資訊

想瞭解更多資訊嗎?歡迎參考下列其他資源。

下載 Google Chrome

下載 Android、電腦或 iOS 版 Chrome。