Chrome 135 Beta 版

發布日期:2025 年 3 月 5 日

除非另有說明,否則下列變更適用於 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome 公開測試版頻道版本。如要進一步瞭解這裡列出的功能,請點選提供的連結,或前往 ChromeStatus.com 查看清單。Chrome 135 為 2025 年 3 月 5 日的 Beta 版。您可以前往 Google.com 的電腦版或 Android 版 Google Play 商店下載最新版本。

CSS 和 UI

此版本新增了十三項 CSS 和 UI 功能。

錨定標記位置會記住捲動偏移量

新增記住捲動偏移量的概念支援功能。如果已定位的元素具有預設錨點,且錨點位於一側邊緣,且與另一側邊緣的原始容器區塊相對應,則在調整元素大小時,系統會考量捲動偏移量。也就是說,當文件以特定捲動偏移量捲動時,您可以使用固定元素的所有可見空間 (使用 position-area)。為了避免每次捲動文件時都重新排版 (調整元素大小),瀏覽器會使用記住的捲動偏移量,而不是一律使用目前的捲動偏移量。系統會在錨點重新計算點更新記住的捲動偏移量,這可能是系統最初顯示定位元素的位置,或是選擇其他位置選項 (position-try-fallbacks) 時的位置。

CSS 惰性

將元素設為無效會影響該元素是否可供焦、編輯、選取,以及是否可透過頁面內搜尋功能進行搜尋。這也會影響元素是否會顯示在無障礙樹狀結構中。interactivity 屬性會指定元素及其平面樹狀結構的後代 (包括文字行) 是否為惰性。interactivity 屬性可接受下列兩個值之一:autoinert

邏輯溢位屬性

overflow-inlineoverflow-block CSS 屬性可讓您在內嵌和區塊方向中,相對於寫入模式設定溢位。在水平書寫模式中,overflow-inline會對應至 overflow-x,而在垂直書寫模式中,則會對應至 overflow-y

符號相關函式 ​abs()sign() 會計算與引數符號相關的各種函式。

dynamic-range-limit 屬性

讓網頁限制 HDR 內容的亮度上限。

shape() 函式

shape() 函式可在 clip-path 屬性中使用回應式自由形狀圖形。可讓您定義一系列指令,等同於 path() 中的指令。不過,這些指令可接受回應式單位 (例如 %vw),以及任何 CSS 值 (例如自訂屬性)。

::column 擬物元素

::column 擬造元素,可將有限數量的樣式套用至產生的片段。具體來說,這項功能僅限於不會影響版面配置的樣式,因此可在版面配置後套用。

::scroll-button() 擬物元素

允許以擬造元素建立互動式捲動按鈕。例如:

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

這些元素應可聚焦,並以按鈕的形式顯示 (包括 UA 樣式)。啟用時,系統應沿著某個方向捲動一定距離。如果無法在該方向捲動,則應停用 (並以 :disabled 設定樣式),否則應啟用 (並以 :enabled 設定樣式)。選取器可讓您在四個邏輯方向 (block-startblock-endinline-startinline-end) 和四個實體方向 (updownleftright) 中定義按鈕。

::scroll-marker::scroll-marker-group

新增 ::scroll-marker::scroll-marker-group,用於捲動容器。這些擬造元素可讓您為捲動容器中的所有相關項目建立一組可聚焦的標記。

巢狀的虛擬元素樣式

啟用巢狀於其他擬造元素內的擬造元素樣式。目前支援 ::before::marker::after::marker,未來將支援 ::column::scroll-marker

為避免使用者瀏覽記錄外洩,錨點元素只有在使用者曾從這個頂層網站和框架來源點選時,才會採用 :visited 樣式。由於系統只會為先前在這個網站和框架中點選過的連結設定樣式,因此為了取得 :visited 連結樣式資訊而開發的許多側邊通道攻擊,現在已不復存在,因為這些攻擊不再向網站提供使用者的新資訊。

自連結則屬例外狀況,即使在這個頂層網站和框架來源中未曾點選網站本身的網頁連結,也可以設定為 :visited 樣式。這項豁免條款只會在頂層影格或子影格中啟用,且這些影格或子影格必須與頂層影格具有相同的來源。網站已知曉使用者造訪了哪些子網頁,因此仍可享有隱私權益,不會洩漏任何新資訊。這是社群要求的例外狀況,可改善使用者體驗。

插補進度函式表示法:CSS *progress() 函式

progress()media-progress()container-progress() 函式符號代表特定值 (進度值) 從一個值 (進度開始值) 到另一個值 (進度結束值) 的比例距離。分別可從數學函式、媒體功能和容器功能繪製進度比率。

safe-area-max-inset-* 變數

除了 safe-area-inset 環境變數之外,Chrome 現在也支援這些變數的 max-area-safe-inset-* 變化版本。與動態內嵌邊距不同,最大內嵌邊距不會變更,且代表可用的最大安全區域內嵌邊距。

在建構效能優異的邊到邊網頁體驗時,這些值是必要的。

網站 API

為 Web Speech API 新增 MediaStreamTrack 支援

為 Web Speech API 新增 MediaStreamTrack 支援功能。Web Speech API 是網頁標準 API,可讓開發人員將語音辨識和合成功能整合至網頁。目前,Web Speech API 會使用使用者的預設麥克風做為音訊輸入。透過 MediaStreamTrack 支援功能,網站可以使用 Web Speech API 為其他音訊來源 (包括遠端音軌) 加上字幕。

Blob 網址分割:擷取和瀏覽

這項功能是儲存空間分區功能的延伸,可依據儲存空間索引鍵 (頂層網站、影格來源和 has-cross-site-ancestor 布林值) 實作 Blob 網址存取分區,但頂層導覽會繼續只依據影格來源進行分區。

指令碼的 CSP require-sri-for

require-sri-for 指令可讓您宣告特定類型的每項資源都需要進行完整性檢查。如果嘗試載入該類型的資源時未提供完整性中繼資料,系統會失敗並觸發 CSP 違規報告。此意圖涵蓋此指令的 "script" 值。

建立 Service Worker 用戶端,並繼承 srcdoc iframe 的 Service Worker 控制器

Srcdoc 內容設定文件目前並非服務工作單元用戶端,也不受其父項服務工作單元涵蓋。這會導致一些差異 (例如,Resource Timing 會回報這些文件載入的網址,但服務工作者不會攔截這些網址)。這項功能旨在為 srcdoc iframe 建立 Service Worker 用戶端,並讓這些用戶端繼承其父項的 Service Worker 控制器,以修正差異。

將點擊事件調度至已擷取的指標

如果在 pointerup 事件傳送時擷取指標,click 事件會傳送至擷取的目標,而非根據 UI 事件規格,傳送至 pointerdownpointerup 事件最近的共同祖系。對於未擷取的指標,click 目標會維持不變。

Float16Array

新增 Float16Array 型別陣列。將數值寫入 Float16Array 執行個體時,系統會將數值四捨五入為 IEEE fp16。

將導覽啟動工具納入 HTTP 快取分區鍵

Chrome 的 HTTP 快取鍵設定方案已更新,加入 is-cross-site-main-frame-navigation 布林值,以減輕涉及頂層導覽的跨網站洩漏攻擊。具體來說,這項功能可防止跨網站攻擊,攻擊者可藉此發起對特定網頁的頂層導覽,然後導覽至該網頁已知會載入的資源,進而透過載入時間推斷機密資訊。這項異動還可改善隱私權,因為惡意網站無法透過導覽推斷使用者是否曾造訪特定網站。

HSTS 追蹤防範

透過 HSTS 快取,減少第三方追蹤使用者。

這項功能只允許頂層導覽的 HTTP 嚴格傳輸安全性升級,並封鎖子資源要求的 HTTP 嚴格傳輸安全性升級。這樣一來,第三方網站就無法使用 HSTS 快取,跨網站追蹤使用者。

叫用者指令:commandcommandfor 屬性

<button> 元素上的 commandcommandfor 屬性可讓您以更易於存取和宣告的方式為按鈕指派行為,同時減少錯誤並簡化互動所需的 JavaScript 用量。具有 commandforcommand 屬性的按鈕在點按、觸碰或透過按鍵操作時,會在 commandfor 參照的元素上調度 CommandEvent,並執行一些預設行為,例如開啟對話方塊和彈出式視窗。

新增對 <link rel="facilitated-payment" href="..."> 的支援,做為瀏覽器應通知已註冊付款客戶的待處理推送付款功能提示。

NavigateEvent sourceElement 屬性

當導覽由元素 (也就是連結點擊或表單提交) 啟動時,NavigateEvent 上的 sourceElement 屬性會傳回啟動元素。

NotRestoredReasons API 原因名稱異動

NotRestoredReasons API 會變更部分原因文字,以符合標準化名稱。監控這些原因的開發人員可能會發現原因文字有所變更。

裝置端 Web Speech API

這項功能會在 Web Speech API 中新增裝置端語音辨識支援功能,讓網站確保不會將音訊或轉錄的語音傳送至第三方服務進行處理。網站可以查詢特定語言的裝置端語音辨識功能是否可用,並提示使用者安裝裝置端語音辨識所需的資源,以及視需要選擇裝置端或雲端語音辨識。

Service Worker 用戶端網址忽略 history.pushState 變更

修改服務工作者 Client.url 屬性,以便使用 history.pushState() 和其他類似的歷史記錄 API 忽略文件網址變更。Client.url 屬性是 HTML 文件的建立網址,會忽略這類變更。

支援 SVGAElementrelrelList 屬性

SVG 2.0 中的 SVGAElement 介面可用於操控 <a> 元素,類似於 HTML 錨點元素。支援 relrelList 屬性可強化開發人員的安全性和隱私權。與 HTML 錨點元素的對齊方式可確保各項網頁技術的一致性和易用性。

RTC 編碼影格時間戳記

這項功能會向網際網路公開一些時間戳記,這些時間戳記位於透過 RTCPeerConnection 傳送的 WebRTC 編碼影格中。問題中的時間戳記如下:

  • 擷取時間戳記:影格最初擷取時的時間戳記
  • 接收時間戳記:接收影格時的時間戳記

更新 ProgressEvent,使用雙精度型別為「loaded」和「total」

ProgressEvent 具有 loadedtotal 屬性,用於表示進度,且其類型現在為 unsigned long long。有了這項功能,這兩個屬性的類型就會變更為 double,讓開發人員更能控制值。舉例來說,開發人員現在可以建立 ProgressEvent,其中 total 為 1,loaded 則會從 0 逐漸增加到 1。如果省略 max 屬性,這會與 <progress> HTML 元素的預設行為一致。

fetchLater API

fetchLater() API 是用於要求延遲擷取的 JavaScript API,特別適合在網頁生命週期結束時,提供更可靠的訊號標記。在文件中呼叫後,延遲要求會由瀏覽器排入「待處理」狀態,並在下列條件中最早發生的情況下觸發:

文件已刪除。在使用者指定的時間後。基於隱私權考量,無論剩餘時間多久,文件進入 bfcache 時,所有待處理的請求都會清除。瀏覽器會決定何時傳送。

API 會傳回 FetchLaterResult,其中包含布林值欄位 activated,可用於更新,以便指出是否已傳送延後要求。傳送成功後,瀏覽器會忽略整個回應,包括主體和標頭。

請注意,從 API 使用者的角度來看,確切的傳送時間是未知的。

新的來源試用

在 Chrome 135 中,您可以選擇採用下列新的來源試用功能

興趣叫用端

這項功能會在 <button><a> 元素中新增 interesttarget 屬性。interesttarget 屬性會為元素新增「興趣」行為,也就是說,當使用者在元素中「顯示興趣」時,系統會在目標元素上觸發動作。動作包括顯示彈出式視窗等。使用者代理程式會處理偵測使用者對元素「感興趣」的情況,方法包括使用滑鼠懸停在元素上、按下鍵盤上的特殊快速鍵,或是在觸控螢幕上長按元素。當使用者對內容感興趣或失去興趣時,系統會在目標上觸發 InterestEvent,而 InterestEvent 在彈出式視窗的情況下具有預設動作,也就是顯示和隱藏彈出式視窗。

簽章完整性

這項功能可為網頁開發人員提供驗證機制,用於驗證所依賴資源的來源,為信任網站依附元件的技術基礎奠定基礎。簡而言之:伺服器可使用 Ed25519 金鑰組簽署回應,網路開發人員則可要求使用者代理程式使用特定公開金鑰驗證簽章。這項功能可提供額外檢查項目,一方面是內容安全性政策提供的網址檢查,另一方面是子資源完整性提供的內容檢查。

淘汰和移除

這個版本的 Chrome 會淘汰及移除下列項目。請造訪 ChromeStatus.com,查看已計劃淘汰、目前淘汰和先前淘汰的功能清單。

這個版本的 Chrome 已淘汰一項功能。

淘汰 Intl Locale Info 的 getter

Intl Locale Info API 是第 3 階段的 ECMAScript TC39 提案,可透過公開語言代碼資訊 (例如一週中的第 1 天、週末開始日、週末結束日、第一週的最小日期) 和語言代碼中使用的文字方向小時週期,增強 Intl.Locale 物件。Chrome 在 Chrome 99 中實作了這項功能,但提案內容已變更,將幾個 getter 移至函式。我們需要移除已淘汰的 getter,並重新啟動已重新命名的函式。

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

移除已淘汰的 navigator.xr.supportsSession 方法

在收到 TAG 針對 API 形狀提供的意見回饋後,WebXR 規格於 2019 年 9 月將 navigator.xr.supportsSession 替換為 navigator.xr.isSessionSupported 方法。自那時起,這項 API 已在 Chrome 中標示為已淘汰,並會產生控制台警告,將開發人員重新導向至更新版 API。這個呼叫的使用率非常低,而且用於建構 WebXR 內容的所有主要架構都已確認已更新為使用較新的呼叫。

移除 NavigateEvent canTransition 資源

在 Chrome 108 中,NavigateEventtransitionWhile() 方法和 canTransition 屬性已替換為新的 intercept() 方法和 canIntercept 屬性。當時已移除 transitionWhile() 方法。不過,我們忘記移除 canTransition 屬性,而是將其保留為 canIntercept 的別名。在 Chrome 135 中,我們會修正這個問題並移除 canTransition。任何 canTransition 用途都可以替換為 canIntercept,行為不會有所變更。

移除 WebGPU 限制 maxInterStageShaderComponents

maxInterStageShaderComponents 限制會因下列因素而移除:

  • maxInterStageShaderVariables 的冗餘:這個限制已經用於類似的用途,控制著著色器階段之間傳遞的資料量。
  • 輕微差異:雖然兩種限制的計算方式略有不同,但差異不大,且可在 maxInterStageShaderVariables limit 中有效管理。
  • 簡化:移除 maxInterStageShaderComponents 可簡化著色器介面,並降低開發人員的複雜度。這樣一來,他們就能專注於命名更適當且更全面的 maxInterStageShaderVariables,而非管理兩個個別限制 (兩者同時套用,但有細微差異)。