Chrome 133

穩定版發布日期:2025 年 2 月 4 日

除非另有說明,否則下列變更適用於 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 133 穩定版。

HTML 和 DOM

彈出式視窗屬性的提示值

Popover API 會指定 popover 屬性的兩個值的行為:自動和手動。這項功能會說明第三個值 popover=hint。提示通常與「工具提示」類型行為相關,但行為略有不同。主要差異在於,開啟巢狀的彈出式視窗堆疊時,提示會從屬於自動。因此,在自動彈出式視窗堆疊仍處於開啟狀態時,您可以開啟不相關的提示彈出式視窗。

標準範例是開啟 <select> 挑選器 (popover=auto) 並顯示懸停觸發的工具提示 (popover=hint)。這項操作不會關閉 <select> 選擇器。

追蹤錯誤 #1416284 | ChromeStatus.com 項目

改善彈出式視窗叫用器和錨定點位置

新增強制方式,可透過 popover.showPopover({source}) 設定彈出式視窗之間的叫用端關聯。啟用叫用者關係,以建立隱含的錨定元素參照。

追蹤錯誤 #364669918 | ChromeStatus.com 項目

在叫用器內巢狀的彈出式視窗不應重新叫用

在下列情況下,按一下按鈕會正確啟用彈出式視窗,但在按下按鈕後,按一下彈出式視窗本身不應關閉彈出式視窗。

<button popovertarget=foo>Activate
  <div popover id=foo>Clicking me shouldn't close me</div>
</button>

之前發生這種情況,是因為彈出式視窗點擊會傳送至 <button>,並啟用叫用者,進而切換彈出式視窗關閉。這項行為現已改為預期的行為。

追蹤錯誤 #https://crbug.com/379241451 | ChromeStatus.com 項目

CSS

CSS 進階 attr() 函式

實作 CSS 5 級中指定的 attr() 增強功能,允許使用 <string> 以外的類型,並在所有 CSS 屬性中使用 (除了現有的擬元素內容支援)。

MDN attr() | 追蹤錯誤 #246571 | ChromeStatus.com 項目 | 規格

CSS :open 虛擬類別

:open 擬造類別會在 <dialog><details> 處於開啟狀態時相符,並在 <select><input> 處於有選取器且選取器顯示的模式時相符。

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

CSS 捲動狀態容器查詢

使用容器查詢,根據容器的捲動狀態設定容器的子項樣式。

查詢容器可能是捲動容器,也可能是受捲動容器捲動位置影響的元素。可查詢的狀態如下:

  • stuck:固定位置容器會固定在捲動方塊的其中一側邊緣。
  • snapped:目前已對齊捲動觸發點的容器,目前已水平或垂直對齊。
  • scrollable:捲動容器是否可在查詢方向中捲動。

新的 container-type: scroll-state 可讓您查詢容器。

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

CSS text-boxtext-box-trimtext-box-edge

為確保文字內容的最佳平衡,text-box-trim 和 text-box-edge 屬性以及 text-box 簡寫屬性可讓您更精細地控制文字的垂直對齊方式。

text-box-trim 屬性會指定要裁剪的邊緣 (上方或下方),而 text-box-edge 屬性則會指定邊緣的裁剪方式。

這些屬性可讓您使用字型規格精確控制垂直間距。

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

網站 API

Animation.overallProgress

無論時間軸的性質為何,都能讓開發人員方便且一致地表示動畫在疊代過程中進展的程度。如果沒有 overallProgress 屬性,您必須手動計算動畫進度,並考量動畫的迭代次數,以及動畫的 currentTime 是總時間的百分比 (例如捲動驅動動畫) 或絕對時間量 (例如時間驅動動畫)。

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

Atomics 物件的 pause() 方法

pause() 方法新增至 Atomics 命名空間物件,向 CPU 提示目前的程式碼正在執行 spinlock。

ChromeStatus.com 項目 | 規格

指令碼的 CSP 雜湊值回報

複雜的網路應用程式通常需要追蹤下載的子資源,以確保安全性。

特別是,即將推出的業界標準和最佳做法 (例如 PCI-DSS 4.0) 要求網路應用程式記錄下所有下載及執行的腳本。

這項功能會建構 CSP 和 Reporting API,回報文件載入的所有指令碼資源的網址和雜湊值 (針對 CORS/相同來源)。

追蹤錯誤 #377830102 | ChromeStatus.com 項目

DOM 狀態保留搬移

新增 DOM 原始元素 (Node.prototype.moveBefore),讓您在 DOM 樹狀結構中移動元素,而無須重設元素的狀態。

移動而非移除和插入時,系統會保留下列狀態:

  • <iframe> 元素仍會載入。
  • 有效元素仍會保留焦點。
  • 彈出式視窗、全螢幕和互動式對話方塊會保持開啟狀態。
  • CSS 轉場效果和動畫會繼續執行。

ChromeStatus.com 項目

<area> 上公開 attributionsrc 屬性。

<area> 上的 attributionsrc 屬性公開資訊與屬性的現有處理行為保持一致,即使該屬性未公開也一樣。

此外,在 <area> 上支援這個屬性也是合理的做法,因為該元素是頂級導覽介面,而 Chrome 已在 <a>window.open 的其他介面上支援這個屬性。

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

FileSystemObserver 介面

FileSystemObserver 介面會通知網站檔案系統的變更情形。網站會在使用者本機裝置或 Bucket 檔案系統 (也稱為 Origin 私人檔案系統) 中,觀察使用者先前已授予權限的檔案和目錄變更,並收到基本變更資訊的通知,例如變更類型。

追蹤錯誤 #40105284 | ChromeStatus.com 項目

多個匯入對應

匯入地圖目前必須在任何 ES 模組之前載入,且每個文件只能有一個匯入地圖。這會導致模組不穩定,並在實際情境中可能會導致使用速度變慢:任何在模組前載入的模組都會導致整個應用程式發生錯誤,而在有許多模組的應用程式中,模組會成為大型封鎖資源,因為需要先載入所有可能模組的整個地圖。

這項功能可讓每份文件匯入多個匯入地圖,並以一致且確定的方式合併這些地圖。

ChromeStatus.com 項目

儲存空間存取標頭

為已驗證的嵌入項目提供其他方式,讓其選擇啟用未區隔的 Cookie。這些標頭會指出未分割的 Cookie 是否已 (或可) 納入特定網路要求,並允許伺服器啟用已授予的「storage-access」權限。提供另一種啟用「storage-access」權限的方式,可讓非 iframe 資源使用這項權限,並減少經過驗證的嵌入項目的延遲時間。

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

支援使用 Promise<DOMString> 建立 ClipboardItem

ClipboardItem 是異步剪貼簿 write() 方法的輸入內容,現在在建構函式中接受字串值,以及 Blob。ClipboardItemData 可以是 Blob、字串或解析為 Blob 或字串的 Promise。

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

WebAssembly Memory64

memory64 提案新增支援線性 WebAssembly 記憶體,大小超過 2^32 位元。它不會提供新的指令,而是擴充現有指令,允許記憶體和資料表使用 64 位元索引。

ChromeStatus.com 項目 | 規格

Web Authentication API:PublicKeyCredential getClientCapabilities() 方法

PublicKeyCredential getClientCapabilities() 方法可讓您判斷使用者的用戶端支援哪些 WebAuthn 功能。這個方法會傳回支援功能清單,方便開發人員根據用戶端的特定功能,調整驗證體驗和工作流程。

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

Web Cryptography API 的 X25519 演算法

「X25519」演算法提供工具,可使用 [RFC7748] 中指定的 X25519 函式執行金鑰協議。「X25519」演算法 ID 可用於 SubtleCrypto 介面,用來存取已實作的作業:generateKey、importKey、exportKey、deriveKey 和 deriveBits。

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

成效

在節能模式下凍結

啟用省電模式後,如果「瀏覽內容群組」中的同源影格子群組超過 CPU 使用量門檻,Chrome 就會凍結該群組,且在五分鐘內不回應任何事件,除非:

  • 提供音訊或視訊會議功能 (透過識別麥克風、攝影機或螢幕/視窗/分頁擷取畫面,或具有「open」RTCDataChannel 或「live」MediaStreamTrack 的 RTCPeerConnection 偵測)。
  • 控制外部裝置 (透過 WebUSB、Web Bluetooth、WebHID 或 Web Serial 偵測)。
  • 保留 Web Lock 或 IndexedDB 連線,以阻擋其他連線上的版本更新或交易。
  • 凍結是指暫停執行。這個值已在 Page Lifecycle API 中正式定義。

在省電模式啟用時,系統會校正 CPU 用量閾值,將大約 10% 的背景分頁凍結。

追蹤錯誤 #325954772 | ChromeStatus.com 項目

在元素時間和 LCP 中公開粗略的跨來源 renderTime (不論 Timing-Allow-Origin 為何)

元素時間和 LCP 項目都含有 renderTime 屬性,與圖片或文字繪製的首個影格保持一致。

這項屬性目前會要求圖片資源包含 Timing-Allow-Origin 標頭,以便保護跨來源圖片。不過,這項限制很容易規避 (例如在同一個影格中顯示同源和跨來源圖片)。

由於這項限制容易造成混淆,因此我們打算移除這項限制,並在文件未跨來源隔離時,將所有轉譯時間粗略估計為 4 毫秒。這似乎足夠粗略,可避免洩漏任何關於跨來源圖片的實用解碼時間資訊。

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

還原 responseStart 並導入 firstResponseHeadersStart

啟用 103 Early Hints 後,回應會有兩個時間戳記:

  • 早期提示到達時 (103)
  • 最終標頭到達時 (例如 200)
  • 當 Chrome 115 推出 firstInterimResponseStart 以便評估這兩個時間戳記時,我們也將 responseStart 的含義 (由 Time to First Byte (TTFB) 使用) 改為「最終標頭」。這會導致瀏覽器和工具出現網頁相容性問題,因為這些工具並未對這項常用指標做出類似的變更。

Chrome 133 會將這項 responseStart 變更還原,以解決相容性問題,並改為導入 firstResponseHeadersStart,讓網站能夠測量到最終標頭的時間,同時保留 TTFB 的原始定義。

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

算繪和圖形

WebGPU:1 個元件的頂點格式 (以及 unorm8x4-bgra)

新增 WebGPU 初始版本中因缺乏支援或舊版 macOS (已無任何瀏覽器支援) 而未提供的額外頂點格式。1 元件頂點格式可讓應用程式只要求必要資料,而過去在 8 位元和 16 位元資料類型中,應用程式必須要求至少兩倍的資料量。使用 unorm8x4-bgra 格式時,您可以保留相同的著色器,稍微更方便地載入 BGRA 編碼的頂點顏色。

追蹤錯誤 #376924407 | ChromeStatus.com 項目

來源試用

選擇在節能模式下不凍結

這項試驗功能可讓網站停用 Chrome 133 中的節能模式凍結行為。

Origin Trial | 追蹤錯誤 #325954772 | ChromeStatus.com 項目 | 規格

跨根 ARIA 的參照目標

參照目標是一種功能,可讓您使用 IDREF 和 aria-labelledby 等 IDREF 屬性,參照元件 shadow DOM 中的元素,同時保留 shadow DOM 的內部詳細資料封裝。for這項功能的主要目標,是讓 ARIA 能夠跨陰影根邊界運作。

元件可在其陰影樹中指定元素,做為「參照目標」。如果主機元件是 IDREF 的目標 (例如標籤的 for 屬性),參考目標就會成為標籤的有效目標。

陰影根會指定 shadow DOM 中目標元素的 ID。您可以使用 JavaScript 中的 ShadowRoot 物件上的 referenceTarget 屬性,或是 HTML 標記中的 <template> 元素上的 shadowrootreferencetarget 屬性,完成這項作業。

Origin Trial | ChromeStatus.com 項目

淘汰和移除

淘汰 WebGPU 限制 maxInterStageShaderComponents

maxInterStageShaderComponents limit 已因多種因素而淘汰。預計在 Chrome 135 版中移除。

  • maxInterStageShaderVariables 的冗餘:這個限制已用於類似目的,控制著著色器階段之間傳遞的資料量。
  • 微小差異:雖然兩種限制的計算方式略有不同,但差異不大,且可在 maxInterStageShaderVariables 限制內有效管理。
  • 簡化:移除 maxInterStageShaderComponents 可簡化著色器介面,並降低開發人員的複雜度。這樣一來,他們就能專注於名稱更貼切且更全面的 maxInterStageShaderVariables,而非管理兩個差異不大的獨立限制。

ChromeStatus.com 項目

先前,當使用 <link rel=prefetch> 預先擷取資源時,Chrome 會在五分鐘內首次使用時忽略快取語意 (即 max-ageno-cache),以免重新擷取。如今,Chrome 已移除這項特殊情況,並使用一般 HTTP 快取語意。

也就是說,網頁開發人員必須加入適當的快取標頭 (Cache-Control 或 Expires),才能享有 <link rel=prefetch> 的優點。

這也會影響非標準的 <link rel=prerender>

追蹤錯誤 #40232065 | ChromeStatus.com 項目

移除 Chrome 歡迎頁面,並在首次執行時使用初始偏好設定開啟分頁

initial_preferences 檔案的 first_run_tabs 屬性中加入 chrome://welcome 現在不會產生任何效果。我們移除了這個頁面,因為這個頁面與電腦平台上觸發的「首次執行體驗」重複。

ChromeStatus.com 項目