Chrome 135 Beta 版

發布日期:2025 年 3 月 5 日

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

CSS 和 UI

這個版本新增了 13 項 CSS 和 UI 功能。

錨定位置會記住捲動偏移

新增對「記憶捲動偏移」概念的支援。如果定位元素具有預設錨點,且在一個邊緣繫結至這個錨點,在另一個邊緣則繫結至原始的包含區塊,則在調整元素大小時,系統會將捲動偏移量納入考量。也就是說,當文件捲動至特定捲動偏移時,您可以將所有可見空間 (使用 position-area) 用於錨定元素。為避免每次捲動文件時都重新配置 (調整元素大小),瀏覽器會使用記憶的捲動偏移,而不是一律使用目前的捲動偏移。系統會在錨點重新計算點更新記憶的捲動偏移量,也就是定位元素最初顯示的位置,或是選擇其他位置選項 (position-try-fallbacks) 時。

CSS 惰性

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

邏輯溢位屬性

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

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() 函式

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 環境文件目前不是 Service Worker 用戶端,也不會由父項的 Service Worker 涵蓋。這會導致部分差異 (例如,資源時間會回報這些文件載入的網址,但 Service Worker 不會攔截這些網址)。這項措施的目的是為 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 布林值,可防範涉及頂層導覽的跨網站洩漏攻擊。具體來說,這項功能可防止跨網站攻擊。在這種攻擊中,攻擊者可以啟動導向特定網頁的頂層導覽,然後導向已知由該網頁載入的資源,藉此透過載入時間推斷機密資訊。這項變更也會防止惡意網站使用導覽功能,推斷使用者先前是否造訪過特定網站,進而提升隱私權。

禁止追蹤 HTTP 嚴格傳輸安全性

透過 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

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

修改 Service Worker 的 Client.url 屬性,使用 history.pushState() 和其他類似的歷史記錄 API,忽略文件網址變更。Client.url 屬性應為 HTML 文件的建立網址,會忽略這類變更。

支援 SVGAElementrelrelList 屬性

SVG 2.0 中的 SVGAElement 介面可讓您操作 <a> 元素,類似於 HTML 錨點元素。支援 relrelList 屬性可提升開發人員的安全性和隱私權。與 HTML 錨點元素保持一致,可確保網頁技術的易用性。

RTC 編碼影格的時間戳記

這項功能會向網頁公開透過 RTCPeerConnection 傳輸的 WebRTC 編碼影格中,所含的部分時間戳記。有問題的時間戳記如下:

  • 擷取時間戳記:原始擷取影格的時間戳記
  • 接收時間戳記:接收影格時的時間戳記

更新 ProgressEvent,將「loaded」和「total」設為 double 型別

ProgressEvent 具有 loadedtotal 屬性,可指出進度,且現在的類型為 unsigned long long。使用這項功能後,這兩個屬性的類型會改為 double,開發人員可以進一步控管值。舉例來說,開發人員現在可以建立 total 為 1 的 ProgressEvent,並讓 loaded 從 0 逐步增加至 1。如果省略 max 屬性,這項行為會與 <progress> HTML 元素的預設行為一致。

fetchLater API

fetchLater() API 是 JavaScript API,可要求延遲擷取,特別適合在網頁生命週期結束時,更可靠地傳送信號。在文件中呼叫後,瀏覽器會將延遲請求排入佇列,並處於「待處理」狀態,且會因下列最早發生的情況而叫用:

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

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

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

新的來源試用

在 Chrome 135 中,您可以選擇加入下列新的來源試用

興趣叫用者

這項功能會將 interesttarget 屬性新增至 <button><a> 元素。interesttarget 屬性會將「感興趣」行為新增至元素,讓使用者「感興趣」時,目標元素會觸發動作。動作可以包括顯示彈出式視窗等項目。使用者代理程式會偵測使用者何時「對元素感興趣」,方法包括使用滑鼠懸停在元素上、按下鍵盤上的特殊快速鍵,或長按觸控螢幕上的元素。顯示或失去興趣時,目標會觸發 InterestEvent,如果是浮動視窗,則會有預設動作,也就是顯示和隱藏浮動視窗。

簽章完整性

這項功能可為網頁開發人員提供機制,驗證所依附資源的來源,為網站依附元件的信任度建立技術基礎。簡而言之,伺服器可以使用 Ed25519 金鑰組簽署回應,而網頁開發人員可以要求使用者代理程式使用特定公開金鑰驗證簽章。這項功能可輔助內容安全政策提供的網址檢查,以及子資源完整性提供的內容檢查。

淘汰與移除

這個版本的 Chrome 會淘汰及移除下列項目。 如要查看計畫淘汰、目前淘汰和先前移除的項目清單,請前往 ChromeStatus.com。

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

淘汰 Intl Locale Info 的 Getter

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

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

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

在收到 TAG 對 API 形狀的意見回饋後,WebXR 規格於 2019 年 9 月將 navigator.xr.supportsSession 替換為 navigator.xr.isSessionSupported 方法。自此之後,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