Chrome 136

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

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

HTML 和 DOM

CanvasTextDrawingStyles 的語言支援

<canvas> DOM 元素與所有 DOM 元素一樣,都會接受 lang 屬性,用於定義字型選取的語言專屬處理方式 (當字型具有特定語言代碼的字形時)。瀏覽器會遵循這項屬性。不過,建立 OffscreenCanvas 時無法設定語言代碼資訊,可能會導致螢幕外畫布產生的算繪結果與使用該輸出內容的畫布不同。這項功能會將 lang IDL 屬性新增至 CanvasTextDrawingStyles,讓開發人員直接控制文字繪製和指標的語言。

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

CSS 和 UI

dynamic-range-limit 屬性

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

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

為避免使用者瀏覽記錄外洩,錨點元素只有在使用者曾從這個頂層網站和框架來源點選時,才會採用 :visited 樣式。

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

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

未加上前置字元的 print-color-adjust

print-color-adjust 屬性可讓您調整列印網頁中的顏色。這與 Chrome 已支援的 -webkit-print-color-adjust 相同,但名稱已標準化。

系統不會移除 -webkit- 前置版本。

MDN 文件 | 追蹤錯誤 #376381169 | ChromeStatus.com 項目 | 規格

string attr() 類型重新命名為 raw-string

CSS 工作小組已決定將 string attr() 類型替換為 raw-string

因此,從 Chrome 136 開始,attr(data-foo string) 會變成 attr(data-foo raw-string)

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

類型不拘的 var() 備用機制

var() 函式的備用部分不會驗證所參照的自訂屬性類型。

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

網站 API

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

如果在 pointerup 事件調度期間擷取指標,click 事件現在會調度至擷取的目標,而非根據 UI 事件規格,調度至 pointerdownpointerup 事件最近的共同祖系。

對於未擷取的指標,click 目標則維持不變。

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

使用魔術註解提供明確的編譯提示

允許附加資訊,說明應在 JavaScript 檔案中急速剖析及編譯哪些函式。

系統會將資訊編碼為魔術符號註解。

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

將導覽啟動工具整合至 HTTP 快取分區鍵

Chrome 的 HTTP 快取鍵設定方案已更新,加入 is-cross-site-main-frame-navigation 布林值,以減輕涉及頂層導覽的跨網站洩漏攻擊。

具體來說,這項功能可防止跨網站攻擊,攻擊者可透過這類攻擊發起對特定網頁的頂層導覽,然後導覽至該網頁已知會載入的資源,藉此利用載入時間推斷機密資訊。這項異動還可改善隱私權,因為惡意網站無法透過導覽推斷使用者是否曾造訪特定網站。

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

Protected audience:文字轉換輔助工具

與 WebAssembly 介面的 Protected Audience 出價和評分指令碼,需要將字串型資料有效率地轉換為 (和從) 位元組陣列 (例如,透過「memory」ArrayBuffer 將字串傳入及傳出 WebAssembly)。這項功能提供兩個獨立函式 protectedAudience.encodeUtf8protectedAudience.decodeUtf8,可執行這些工作,效率比在 JavaScript 中執行時高出好幾個數量級。

ChromeStatus.com 項目

RegExp.escape

RegExp.escape 是靜態方法,可接受字串並傳回經過轉義的版本,該版本可用於規則運算式中的模式。

例如:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));

ChromeStatus.com 項目 | 規格

推測規則:代碼欄位

這樣一來,開發人員就能在推測規則中加入標記欄位。這個選用欄位可用於追蹤推測規則的來源。例如,在中介伺服器上以不同方式處理這些要求。與推測相關的任何標記都會隨 Sec-Speculation-Tags 標頭傳送。

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

更新 ProgressEvent,以便為 loadedtotal 使用雙精度類型

ProgressEvent 具有 loadedtotal 屬性,用於表示進度,且目前的類型為 unsigned long long

有了這項功能,這兩個屬性的類型就會變更為 double,讓開發人員可以進一步控管值。舉例來說,開發人員現在可以建立 ProgressEvent,其中 total 為 1,而 loaded 會從 0 逐漸增加到 1。這與 <progress> HTML 元素的預設行為一致,除非省略 max 屬性。

ChromeStatus.com 項目 | 規格

隱私權與安全性

iframe 的權限政策報告

推出名為「潛在的權限政策違規」的新違規類型,該類型只會查看權限政策 (包括僅供回報的政策) 和 iframe 中設定的 allow 屬性,以偵測強制執行的權限政策與傳播至 iframe 的權限之間的衝突。

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

減少 Accept-Language 標頭資訊中的指紋記錄

減少 Accept-Language 標頭值字串在 HTTP 要求和 navigator.languages 中公開的資訊量。在每個 HTTP 要求中,Chrome 不再傳送使用者偏好的完整語言清單,而是在 Accept-Language 標頭中傳送使用者最偏好的語言。

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

身分識別

FedCM 更新

允許 FedCM 在同一個對話方塊中顯示多個身分識別提供者,方法是讓所有提供者都位於同一個 get() 呼叫中。這可讓開發人員以便捷的方式,向使用者呈現所有支援的 ID 提供者。

Chrome 136 也移除了在 FedCM 待命模式下新增其他帳戶的支援。這項功能可讓您在選擇器中,與其他 IdP 帳戶一併顯示「使用其他帳戶」按鈕。這項功能目前未使用,而我們在與使用者體驗團隊的對話中,認為支援這項功能會導致流程更加複雜,但沒有太多好處。這項功能仍可在 FedCM 啟用模式下運作。

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

網路驗證條件式建立 (密碼金鑰升級)

WebAuthn 條件建立要求可讓網站將現有的密碼憑證升級為密碼金鑰。

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

圖片和媒體

AudioContext 中斷狀態

"interrupted" 狀態新增至 AudioContextState。這個新狀態可讓使用者代理程式在獨佔音訊存取 (VoIP) 期間或筆電機蓋關閉時暫停播放。

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

已擷取的表面控制項

這個網頁 API 可讓網頁應用程式執行以下操作:

  1. 將前輪事件傳送至已擷取的分頁。
  2. 讀取及變更已擷取分頁的縮放等級。

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

CapturedSurfaceResolution

在螢幕分享期間,公開擷取的途徑像素比例。

這項功能可協助應用程式節省系統資源,或根據擷取介面的實體和邏輯解析度,調整頻寬與品質的權衡。

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

WebRTC 支援 H265 (HEVC) 轉碼器

這項異動後,HEVC 將加入 VP8、H.264、VP9 和 AV1,成為 WebRTC 支援的轉碼器。您可以使用 MediaCapabilities API 查詢支援功能。

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

MediaRecorder 的 H26x 轉碼器支援更新

Chromium 的 MediaRecorder API 現在支援 HEVC 編碼,並引入 hvc1.* 轉碼器字串,以及新增支援 MP4 中可變解析度影片的新轉碼器 (hev1.* 和 avc3.*)。

在 Chromium M130 中,WebCodecs 新增了對 HEVC 平台編碼的支援。後續行動是,我們已在 Chromium 的 MediaRecorder API 中新增支援功能。這個 API 現在支援 MP4 和 Matroska muxer 類型,並提供不同的 HEVC 和 H.264 mime 類型規格。只有在使用者的裝置和作業系統提供必要功能時,才支援 HEVC 編碼。

ChromeStatus.com 項目

getCharNumAtPositionisPointInFillisPointInStroke 使用 DOMPointInit

這項變更會讓 Chromium 程式碼符合最新的 W3C 規格,針對 getCharNumAtPositionisPointInFillisPointInStroke,使用 DOMPointInit 取代 SVGPointSVGGeometryElementSVGPathElement

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

WebGPU:GPUAdapterInfo isFallbackAdapter 屬性

GPUAdapterInfo isFallbackAdapter 布林值屬性會指出,轉接器是否有明顯的效能限制,以換取更廣泛的相容性、更可預測的行為或更佳的隱私權。請注意,並非所有系統都會提供備用轉接器。

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

瀏覽器變更

流暢捲軸

這項功能可將 Windows 和 Linux 上的 Chromium 捲軸 (疊加和非疊加) 改為符合 Windows 11 Fluent 設計語言。

在 Linux 和 Windows 中,系統預設會啟用非疊加式 Fluent 捲軸。這項變更也適用於 Linux,因為 Chromium 的 Linux 捲軸設計向來與 Windows 版本一致。我們仍在決定如何公開啟用覆疊式 Fluent 捲軸。

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

來源試用

Audio Output Devices API:setDefaultSinkId()

這項功能會將 setDefaultSinkId() 新增至 MediaDevices,讓頂層影格變更子影格使用的預設音訊輸出裝置。

Origin Trial | ChromeStatus.com 項目 | 規格

讓網頁應用程式瞭解雙模效能時間點

網頁應用程式可能會因網頁應用程式無法控制的因素,導致網頁載入效能呈現雙峰分布。例如:

  • 使用者代理程式首次啟動 (「冷啟動」情境) 時,必須執行許多耗時的初始化工作,這些工作會與系統上的資源競爭。
  • 瀏覽器擴充功能可能會影響網站效能。舉例來說,某些擴充功能會在您造訪的每個網頁上執行額外程式碼,這可能會增加 CPU 用量,導致回應時間變慢。
  • 當機器忙於執行密集工作時,網頁載入速度可能會變慢。

PerformanceNavigationTiming 物件上的新 confidence 欄位可讓開發人員判斷導覽時間是否代表其網路應用程式。

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

更新無框架文字轉譯實作

這不是公開的網路變更。

CanvasRenderingContext2D measureText()fillText()strokeText() 的實作方式有大幅變更。這可能會影響效能,因此我們想執行來源測試,讓大量使用畫布的應用程式能夠試用新實作方式。

Origin Trial | 追蹤錯誤 #389726691 | ChromeStatus.com 項目

淘汰和移除

移除「HTMLFencedFrameElement.canLoadOpaqueURL()

HTMLFencedFrameElement 方法 canLoadOpaqueURL() 已在 2023 年替換為 navigator.canLoadAdAuctionFencedFrame(),自從指向新 API 以來,呼叫此方法會導致淘汰資訊主控台警告。這個方法已從 Chrome 136 中移除。

ChromeStatus.com 項目