Chrome 120 Beta 版

CSS 巢狀結構的寬鬆規則,可使用 <details> 元素 (Media Session API 的 enterpictureinpicture 動作) 建立摺疊模式。

除非另有註明,否則上述變更將適用於 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版 Chrome 測試版。透過我們提供的連結或 chromestatus.com 提供的清單,進一步瞭解本節介紹的功能。Chrome 120 已於 2023 年 11 月 1 日推出 Beta 版。你可以透過電腦前往 Google.com 下載最新版本,也可以透過 Android 裝置前往 Google Play 商店下載最新版本。

CSS

這個版本新增了七項 CSS 功能。

已註冊自訂屬性的 CSS <image> 語法

支援使用 <image> 語法搭配 @propertyregisterProperty() 註冊的自訂屬性。<image> 語法可用於將自訂屬性的值限制為 url() 值和產生的圖片 (例如漸層)。

已註冊自訂屬性的 CSS <transform-function><transform-list> 語法

支援使用 <transform-function><transform-list> 語法來處理以 @propertyregisterProperty() 註冊的自訂屬性。

這個語法可用於限制自訂屬性的值來代表轉換。這樣一來,您還可直接在這些已註冊的自訂屬性上使用轉場效果和動畫。

媒體查詢:指令碼功能

指令碼媒體功能可用於查詢目前的文件是否支援 JavaScript 等指令碼語言。有效選項包括「已啟用」、「初始專用」和「無」。不過,瀏覽器中的「僅限初始」值一律不會相符。

:dir() 虛擬類別選取器

:dir() CSS 虛擬類別選取器會根據 HTML dir 屬性決定元素,並根據方向比對元素。

:dir(ltr) 用於比對由左至右的文字方向。:dir(rtl) 會以文字方向為由右至左比對元素。

這不等於 [dir] 屬性選取器,因為它與透過 dir 屬性繼承的方向相符,並且與使用 dir=auto 計算的方向 (以具有強烈方向性的情況下,從文字中第一個字元決定方向) 相符。

CSS 指數函式

加入 CSS 指數函式:pow()sqrt()hypot()log()exp() (CSS 值和單元層級 4 規格)。

CSS 遮罩

CSS mask 和相關屬性 (例如 mask-imagemask-mode) 可在特定點遮蓋或裁剪圖片,藉此隱藏元素 (部分或全部)。

這項功能會去除 -webkit-mask* 屬性的開頭,使其符合目前規格。這包括 mask-imagemask-modemask-repeatmask-positionmask-clipmask-originmask-sizemask-composite,以及 mask 簡寫。支援本機 mask-image 參照,序列化現在符合規格,且系統接受的值現在符合規格 (例如,mask-compositeadd,而非 source-over)。

休閒 CSS 巢狀結構

這項變更導入 CSS 巢狀結構,可讓巢狀樣式規則以元素 (例如 h1) 做為開頭,不必在前面要求 & 符號,或納入 is() 包裝。下列範例現已在規格中有效,並且適用於 Chrome 120。

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

<details> 上使用名稱屬性的手風模式

這項功能可讓您使用一連串 HTML <details> 元素來建立和平板。這個 SDK 會將名稱屬性新增至 <details> 元素。使用這個屬性時,多個名稱相同的 <details> 元素會形成一個群組。一次最多只能開啟群組中的一個元素。

網站 API

允許將 ArrayBuffer 轉移至 VideoFrame、AudioData、EncodedVideoChunk、EncodedAudioChunk、ImageDecoder 建構函式

這將允許卸離陣列緩衝區,並在 VideoFrame、ImageDecoder、EncodedVideoChunk、EncodedAudioChunk、AudioData 中不使用複製的情況下,使用對應的緩衝區。

CSS 字型載入 API FontFaceSet:check() 方法

FontFaceSetcheck() 方法會驗證是否能使用指定的字型顯示文字,而不必嘗試在尚未完成載入的 FontFaceSet 中使用字型。如此一來,使用者無須再次觸發字型取代程序,即可放心使用字型。

關閉要求和 CloseWatcher

關閉要求是全新概念,包括使用者在電腦上使用 Esc 鍵或 Android 上的返回手勢或按鈕,要求關閉目前開啟的項目。將其整合至 Chrome 會有兩個變更:

  • CloseWatcher,這是全新的 API,可直接監聽及回應關閉要求。
  • 升級至 <dialog>popover="",即可使用新的關閉要求架構,以便回應 Android 返回按鈕。

專用工作站和 Storage Access API

專用工作站會繼承父項環境的儲存空間存取狀態。因此,如果文件透過 document.requestStorageAccess() 取得儲存空間存取權,然後建立專屬的工作站,工作站也會擁有儲存空間存取權 (並且可以存取未分區的 Cookie)。

FedCM:Error API 和 AutoSelectedFlag API

專屬的 API 可協助開發人員和使用者進一步瞭解驗證流程。這兩種 API 都會觸發使用者發布操作的權限,進而透過識別資訊提供者登入網站或應用程式 (在這個情況下稱為「依賴方 (RP)」)。換言之,使用者點選「以下列身分繼續」按鈕後。

使用 Error API 時,如果使用者登入失敗,識別資訊提供者可向瀏覽器提供原因,讓使用者和 RP 開發人員保持最新狀態。

有了 AutoSelectedFlag API,識別資訊提供者和 RP 開發人員都能更加瞭解登入使用者體驗,並據此評估效能及區隔指標。

詳情請參閱 FedCM Chrome 120 網誌文章

Fenced Frames 功能更新

Privacy Sandbox 在 Protected Audience API 中,還有另一個格式選項:Protected Audience 廣告大小巨集。選用功能可讓您使用巨集,指定在廣告網址中贏得競價的廣告大小,例如:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

為與 Protected Audience 中其他類型的巨集 (例如 deprecatedReplaceInURNregisterAdMacro() 所使用的巨集) 更加一致,我們在 Chrome 120 版中加入了 ${AD_WIDTH} 和 ${AD_HEIGHT} 做為巨集格式,現在除了現行格式之外,

自動信標現在會傳送到所有已註冊的網址。過去,只有呼叫 setReportEventDataForAutomaticBeacons() 時指定的目的地才會收到自動信標,即使該目的地稱為 registerAdBeacon() 的工作程式中為 reserved.top_navigation 亦然。現在,針對 reserved.top_navigation 呼叫 registerAdBeacon() 的任何目的地都會收到自動信標,但只有 setReportEventDataForAutomaticBeacons() 中指定的目的地才會取得自動信標資料和信標。setReportEventDataForAutomaticBeacons() 中的 once 參數現在會判斷資料是否傳送一次,而非判斷整個信標是否傳送一次。

十字路口觀測器捲動邊界

Intersection Observer scrollMargin 可讓開發人員觀察巢狀捲動容器中的目標,這些目標目前會由捲動容器裁剪。方法是在計算十字路口時,透過 scrollMargin 展開容器的裁剪矩形。

權限政策違規報表

這種做法整合 Permissions Policy API 和 Reporting API,可讓網頁開發人員設定端點,指定要將哪些權限政策違規報告傳送至哪些端點,如此一來,網站擁有者就能查看網頁何時要求禁止的功能。

該標頭也包含 Permissions-Policy-Report-Only 標頭,可讓您根據提議的政策 (類似 Content-Security-Policy-Report-Only) 來傳送報表,以便評估政策變更是否可能毀損,然後才在一般強制執行模式下導入。

Media Session API:enterpictureinpicture 動作

enterpictureinpicture 動作新增至 Media Session API。網站可以註冊動作處理常式,可用來開啟「子母畫面」或「文件子母畫面」視窗。

詳情請參閱「適用於網頁應用程式的自動子母畫面」一文。

WebGPU f16 支援

允許在 WebGPU 著色器 (WGSL) 中使用半精度浮點類型 f16。

開發人員可以使用 WebGPU 規格中的「shader-f16」功能,以及 WGSL 規格中的「f16」擴充功能,存取著色器中的 16 位元浮點變數和 API。

MediaCapabilities:使用 decodingInfo() 查詢 HDR 支援

擴充 Media Capabilities API,透過以下三個新的 VideoConfiguration 字典欄位偵測 HDR 轉譯支援:hdrMetadataTypecolorGamuttransferFunction。Chrome 會實作自己的色調對應演算法,因此針對 HDR10 (smpteSt2086) 靜態中繼資料一律傳回 true。目前不支援 HDR10+ (smpteSt2094-10) 和 Dolby Vision (smpteSt2094-40) 動態中繼資料,因此會傳回 false。我們預計日後將支援動態中繼資料,因此開發人員可以透過這個 API,為取得支援服務的使用者選取適當的內容。

MediaStreamTrack 統計資料 (影片)

針對 MediaStreamTracks 類型影片公開影格計數器 (已放送、捨棄、總計) 的 API。系統將另外推出 Chrome 功能來說明音訊統計資料。

Private Aggregation API:匯總協調器選項

修改 Private Aggregation API,提供用於選取酬載加密使用的協調器 (來自供應商指定的許可清單)。選擇該服務時,您必須在 run()selectURL() SharedStorage 呼叫,以及 runAdAuction()joinAdInterestGroup() Protected Audience 呼叫中擇一使用。廣泛的做法與 Attribution Reporting API 的方法一致。

FedCM 中的 Login Status API

Login Status API (原為 IdP Sign-in Status API) 可讓識別資訊提供者在使用者登入或登出時,向瀏覽器發出信號。

FedCM 會使用這項資訊來因應靜音時間攻擊,這可讓 FedCM 完全在不使用第三方 Cookie 的情況下運作。

日後,這個 API 可能會開放給更多用途。

詳情請參閱公告網誌文章

查看轉換:使回呼不可為空值

startViewTransition 呼叫目前接受可選為空值的回呼類型,預設值為空值:startViewTransition(optional UpdateCallback? callback = null)

這項功能會將此類型變更為不可為空值的類型:startViewTransition(optional UpdateCallback callback)

傳輸層安全標準 (TLS) 適用的 X25519Kyber768 金鑰封裝

部署 Kyber768 量子防量子金鑰協議演算法,避免目前的 Chrome TLS 流量受到日後的量子密碼分析攻擊。這是根據 IETF 標準所製定的混合型 X25519 + Kyber768 金鑰協議。此規格和推出內容不在 W3C 的範圍內。這份金鑰協議將以傳輸層安全標準 (TLS) 加密形式發布,並對使用者公開透明。

正在進行來源試用

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

「優先順序」HTTP 要求標頭

這項功能會針對所有 HTTP 要求新增 priority 要求標頭,並附上要求傳送時的優先順序資訊。

RFC 9218 (HTTP 的可擴充優先順序配置) 定義「優先順序」HTTP 要求標頭,用於向來源 (和中介商) 發出信號要求優先順序。此外,它也會定義 HTTP/2 和 HTTP/3 的交涉程序和通訊協定層級頁框,以傳遞相同的優先順序資訊。標頭只能在首次要求資源時表示初始優先順序,而以影格為基礎的機制允許在事後修改優先順序。標頭可以端對端運作至原始伺服器,並提供機制,讓來源能在經由連結層級辨識時覆寫優先順序。這項功能是特別支援標頭式優先順序配置。

我們建議 Storage Access API 的延伸 (回溯相容),以允許在第三方環境中存取未分區 (Cookie 和非 Cookie) 儲存空間。

具備私人網路存取權,可放寬複合型內容的存取權

為了與沒有全域專屬名稱的區域網路上裝置建立連線,導致無法取得 TLS 憑證,這項功能推出了 fetch() 的新選項,用於宣告開發人員要與這類裝置通訊的意圖、透過政策控管功能控管每個網站對這項功能的存取權,並為伺服器的預檢回應提供額外的中繼資料。

申請試用私人網路存取權提示提示來源試用

無限制存取 Performance.measureUserAgentSpecificMemory()

Performance.measureUserAgentSpecificMemory() 只適用於跨來源隔離環境 (位於 COOP/COEP 後方)。這項功能會移除 COOP/COEP 限制,以便在無法完整部署 COOP/COEP 時進行迴歸測試,並評估影響成效。請注意,由於工作站上從未啟用這項功能,Performance.memory (舊版 API) 無法用於此用途。

performance.measureUserAgentSpecificMemory()

這項功能會新增 performance.measureUserAgentSpecificMemory() 函式,預估網頁的記憶體用量。網站需要跨來源隔離才能使用這個 API。

淘汰和移除

這個版本的 Chrome 推出了下列淘汰和移除功能。請造訪 ChromeStatus.com,查看預定淘汰事項、目前淘汰功能以及先前移除項目的清單。

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

淘汰並移除 Theora 支援

由於新興的安全性風險,Chrome 將淘汰並停止支援電腦版 Chrome 的 Theora 視訊轉碼器。Theora 的使用率偏低 (而且現在經常是錯誤) 使大多數使用者都無法獲得支援。

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

移除資料:SVGUseElement 中的網址

指派資料:SVGUseElement 中的網址可能會產生 XSS。這也讓受信任的類型可略過。因此,我們計劃淘汰並停止支援這項功能。

移除 CSPEE 中的相同來源大量強制執行

從 CSP 嵌入式違規處置系統中移除相同來源 iframe 的特殊處理方式。如此一來,系統就能針對跨來源 iframe 和相同來源 iframe,強制執行 CSP 嵌入式違規處置的行為。