穩定版發布日期: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) 和新語法,讓網站能切換至新語法。
移除 Oklab 和 Oklch 顏色中亮度接近 100% 或 0 的不連續性
在這項異動之前,所有 Lab、LCH、Oklab 和 Oklch 顏色,只要亮度值為 100%,無論其他兩個參數為何,都會算繪為白色。這些空間中亮度值為 0 的所有顏色都會算繪為黑色。這兩種對應會導致漸層不連續,且網頁程式開發人員未預期會發生這種情況。
復原後,系統不會再人為對應這些顏色,顯示的顏色會與鄰近顏色連續,並取決於螢幕的色域對應。
已使用色彩配置根捲軸
如果「頁面支援的色彩配置」值為「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 人體工學;以及改善隱私權。
Compute Pressure API
Compute Pressure API 提供高階狀態,代表系統的 CPU 負載。這項功能可讓實作項目使用正確的基礎硬體指標,確保使用者只要系統未承受無法管理的壓力,就能充分利用所有可用的處理能力。
Intel 主導了這個 API 的設計和實作工作,讓視訊會議應用程式能動態平衡功能和效能。
Compute Pressure API | 追蹤錯誤 #40683064 | ChromeStatus.com 項目 | 規格
將 Storage Access API (SAA) 擴充至非 Cookie 儲存空間
這項功能會推出 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 憑證要求不再傳送 SameSite=Strict Cookie
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
規則運算式重複命名擷取群組
重複的命名擷取群組可讓您在不同選項中使用相同的擷取群組名稱。例如
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})) 都有效。
Chrome 應用程式
Chrome 應用程式中的 Direct Sockets API
這項更新可讓 Chrome 應用程式啟用 Direct Sockets,讓網頁應用程式與網路裝置和系統建立直接傳輸控制通訊協定 (TCP) 和使用者資料包通訊協定 (UDP) 通訊,有助於將特殊應用程式從 Chrome 應用程式轉換為隔離網頁應用程式。
新來源試用
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 屬性和方法的支援。
略過預先載入掃描
略過預先載入掃描器,探索不擷取子資源的網頁效能取捨。
預先載入掃描器步驟會實作推測性預先擷取,提升含有子資源擷取作業的網頁效能。不過,如果網頁沒有子資源,這個步驟就沒有任何好處,反而會增加額外的處理負擔。
如果進階網頁使用者想減少這項負擔,這項實驗提供頁面層級控制項,可停用預先載入掃描器。從這項實驗收集的資料,可用於評估修改後的 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 版中移除。
移除帶有前置字串的 HTMLVideoElement 全螢幕屬性和方法
自 Chrome 38 起,附帶前置字串的 HTMLVideoElement 全螢幕 API 已淘汰。這些屬性已由 Element.requestFullscreen() 取代,後者於 2018 年在 Chrome 71 中首次推出,不含前置字元。
下列屬性和方法將從 HTMLVideoElement 中移除:
webkitSupportsFullscreenwebkitDisplayingFullscreenwebkitEnterFullscreen()webkitExitFullscreen()webkitEnterFullScreen()(請注意 FullScreen 中「S」的大小寫差異)webkitExitFullScreen()
如果您的網站仍依賴這些功能,且需要更多時間更新程式碼,請註冊本文列出的淘汰試用計畫。
其他資訊
想瞭解更多資訊嗎?歡迎參考下列其他資源。