發布日期:2024 年 1 月 15 日
除非另有說明,否則下列變更適用於 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome 公開測試版頻道版本。如要進一步瞭解這裡列出的功能,請點選提供的連結,或參閱 ChromeStatus.com 上的清單。Chrome 133 為 2024 年 1 月 15 日的 Beta 版。你可以前往 Google.com 的電腦版或 Android 版 Google Play 商店下載最新版。
CSS 和 UI
此版本新增了七項 CSS 和 UI 功能。
CSS 進階 attr()
函式
實作 CSS 5 級中指定的 attr()
擴充功能,允許使用 <string>
以外的類型,並在所有 CSS 屬性中使用 (除了現有的半形元素 content
支援)。
如要進一步瞭解,請參閱「CSS attr()
升級了」。
CSS :open
虛擬類別
:open
擬造類別會在 <dialog>
和 <details>
處於開啟狀態時相符,並在 <select>
和 <input>
處於有選取器且選取器顯示的模式時相符。
CSS 捲動狀態容器查詢
使用容器查詢,根據容器的捲動狀態為容器的子項設定樣式。
查詢容器可能是捲動容器,或是受捲動容器捲動位置影響的元素。可查詢的狀態如下:
stuck
:固定位置容器會卡在捲動方塊的其中一側。snapped
:捲動對齊容器目前已水平或垂直對齊。scrollable
:捲動容器是否可在查詢方向中捲動。
新的 container-type: scroll-state
可讓您查詢容器。
#sticky {
position: sticky;
container-type: scroll-state;
}
@container scroll-state(stuck: top) {
#sticky-child {
font-size: 75%;
}
}
如要進一步瞭解,請參閱 CSS scroll-state()
。
CSS text-box
、text-box-trim
和 text-box-edge
為了讓文字內容達到最佳平衡,text-box-trim
和 text-box-edge
屬性以及 text-box
簡寫屬性可讓您更精確地控制文字的垂直對齊方式。
text-box-trim
屬性會指定要裁剪的邊緣 (上方或下方),而 text-box-edge
屬性則會指定邊緣的裁剪方式。
這些屬性可讓您使用字型規格精確控制垂直間距。詳情請參閱 CSS text-box-trim。
popover
屬性的 hint
值
Popover API 會指定 popover
屬性的兩個值的行為:auto
和 manual
。這項功能會說明第三個值 popover=hint
。提示通常與「工具提示」類型行為相關,但行為略有不同。主要差異在於,hint
在開啟巢狀堆疊式彈出式視窗時,會從屬於 auto
。因此,在 auto
彈出式視窗仍開啟的情況下,可以開啟不相關的 hint
彈出式視窗。
標準範例是開啟 <select>
挑選器 (popover=auto
) 並顯示懸停觸發的工具提示 (popover=hint
)。這項操作不會關閉 <select>
選擇器。
改善彈出式視窗叫用器和錨點位置
新增強制方式,可透過 popover.showPopover({source})
設定彈出式視窗之間的叫用端關聯。啟用叫用端關聯,以建立隱含的錨定元素參照。
在叫用器內巢狀的彈出式視窗不應重新叫用
在下列情況中,按一下按鈕會正確啟用彈出式視窗,但在按下後點選彈出式視窗本身,不應關閉彈出式視窗。
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
之前會發生這種情況,是因為彈出式視窗的點擊會傳送至 <button>
並啟用叫用器,進而切換彈出式視窗關閉的狀態。這項行為現已改為預期的行為。
網站 API
Animation.overallProgress
為開發人員提供方便且一致的表示方式,無論時間軸的性質為何,都能呈現動畫在疊代期間的進度。如果沒有 overallProgress
屬性,您必須手動計算動畫進度,並考量動畫的疊代次數,以及動畫的 currentTime
是總時間的百分比 (例如捲動驅動動畫) 或絕對時間量 (例如時間驅動動畫)。
Atomics
物件的 pause()
方法
將 pause()
方法新增至 Atomics
命名空間物件,向 CPU 提示目前的程式碼正在執行 spinlock。
指令碼的 CSP 雜湊值回報
複雜的網路應用程式通常需要追蹤下載的子資源,以確保安全性。
特別是,即將推出的業界標準和最佳做法 (例如 PCI-DSS 4.0) 要求網路應用程式保留所有下載及執行的腳本清單。
這項功能會建構 CSP 和 Reporting API,回報文件載入的所有指令碼資源的網址和雜湊值 (適用於 CORS/相同來源)。
DOM 狀態保留搬移
新增 DOM 原始元素 (Node.prototype.moveBefore
),讓您在 DOM 樹狀結構中移動元素,而無須重設元素的狀態。
移動而非移除和插入時,會保留下列狀態:
<iframe>
元素仍會載入。- 有效元素仍會保留焦點。
- 彈出式視窗、全螢幕和互動式對話方塊會保持開啟狀態。
- CSS 轉場效果和動畫會繼續執行。
在 <area>
上公開 attributionsrc
屬性
將 <area>
上 attributionsrc
屬性的曝光情形,與該屬性現有的處理行為保持一致,即使該屬性未曝光也一樣。
此外,在 <area>
上支援屬性也是合理的做法,因為該元素是頂級導覽介面,而 Chrome 已在 <a>
和 window.open
的其他介面上支援這項功能。
在元素時間和 LCP 中公開粗略的跨來源 renderTime
(不論 Timing-Allow-Origin
為何)
元素時間和 LCP 項目都含有 renderTime
屬性,與繪製圖片或文字的首個影格保持一致。
這項屬性目前會要求圖片資源包含 Timing-Allow-Origin
標頭,以便保護跨來源圖片。不過,這項限制很容易解決 (例如在同一個框架中顯示同源和跨來源圖片)。
由於這會造成混淆,因此我們打算移除這項限制,並在文件未隔離跨來源時,將所有轉譯時間粗略估算為 4 毫秒。這似乎足夠粗略,可避免洩漏任何關於跨來源圖片的實用解碼時間資訊。
FileSystemObserver
介面
FileSystemObserver
介面會通知網站檔案系統的變更。網站會在使用者的本機裝置或 Bucket 檔案系統 (也稱為 Origin 私人檔案系統) 中,觀察使用者先前已授予權限的檔案和目錄變更,並收到基本變更資訊的通知,例如變更類型。
在節能模式下凍結
當省電模式啟用時,如果其中任何同源框架的子群組超過 CPU 使用量門檻,Chrome 就會凍結已隱藏且靜默超過五分鐘的「瀏覽內容群組」,除非:
- 提供音訊或視訊會議功能 (透過識別麥克風、攝影機或螢幕/視窗/分頁擷取畫面,或具有「open」RTCDataChannel 或「live」MediaStreamTrack 的 RTCPeerConnection 偵測)。
- 控制外部裝置 (透過 WebUSB、Web Bluetooth、WebHID 或 Web Serial 偵測)。
- 保留 Web Lock 或 IndexedDB 連線,以阻擋版本更新或其他連線上的交易。
凍結是指暫停執行。這個值已在 Page Lifecycle API 中正式定義。
在省電模式啟用時,CPU 使用量門檻會經過校正,以便將大約 10% 的背景分頁凍結。
多個匯入對應
匯入地圖目前必須在任何 ES 模組之前載入,且每份文件只能有一個匯入地圖。這會使其變得脆弱,且在實際情境中使用時可能會變慢:任何在上述模組之前載入的模組都會導致整個應用程式發生錯誤,而在有許多模組的應用程式中,由於所有可能模組的整個對應項目都需要先載入,因此這些模組會成為大型封鎖資源。
這項功能可讓每份文件匯入多個匯入地圖,並以一致且確定的方式合併這些地圖。
儲存空間存取標頭
為已驗證的嵌入內容提供其他方式,讓使用者選擇啟用未分割的 Cookie。這些標頭會指出未分割的 Cookie 是否已 (或可) 納入特定網路要求,並允許伺服器啟用已授予的「storage-access」權限。提供啟用「storage-access」權限的替代方法,可讓非 iframe 資源使用這項權限,並減少經過驗證的嵌入項目的延遲時間。
支援使用 Promise<DOMString>
建立 ClipboardItem
ClipboardItem
是異步剪貼簿 write()
方法的輸入內容,現在除了 Blob 外,建構函式也接受字串值。ClipboardItemData
可以是 Blob、字串或解析為 Blob 或字串的 Promise。
WebAssembly Memory64
memory64 提案新增支援線性 WebAssembly 記憶體,大小超過 2^32 位元。它不會提供新的指令,而是擴充現有指令,允許記憶體和資料表使用 64 位元索引。
Web Authentication API:PublicKeyCredential getClientCapabilities()
方法
PublicKeyCredential getClientCapabilities()
方法可讓您判斷使用者的用戶端支援哪些 WebAuthn 功能。這個方法會傳回支援功能的清單,讓開發人員可根據用戶端的特定功能,調整驗證體驗和工作流程。
WebGPU:1 個元件的頂點格式 (以及 unorm8x4-bgra)
新增 WebGPU 初始版本中因缺乏支援或舊版 macOS (已不再受任何瀏覽器支援) 而未提供的額外頂點格式。1 個元件的頂點格式可讓應用程式只要求必要資料,而過去在 8 位元和 16 位元資料類型中,應用程式必須要求至少兩倍的資料。使用 unorm8x4-bgra 格式時,您可以同時保留相同的著色器,稍微更方便地載入 BGRA 編碼的頂點顏色。
Web Cryptography API 的 X25519 演算法
「X25519」演算法提供工具,可使用 [RFC7748] 中指定的 X25519 函式執行金鑰協議。在 SubtleCrypto 介面中,您可以使用「X25519」演算法 ID 存取已實作的作業:generateKey、importKey、exportKey、deriveKey 和 deriveBits。
新的來源試用
在 Chrome 133 中,您可以選擇加入下列新的來源測試。
選擇在節能模式下不凍結
這項停用試驗可讓網站停用 Chrome 133 中提供的「節能模式」凍結行為。
淘汰和移除
這個版本的 Chrome 會淘汰及移除下列項目。 請造訪 ChromeStatus.com,查看已計劃淘汰、目前淘汰和先前移除的功能清單。
這個版本的 Chrome 已淘汰一項功能。
淘汰 WebGPU maxInterStageShaderComponents
限制
maxInterStageShaderComponents limit
已淘汰,原因是多種因素綜合考量。預計在 Chrome 135 版中移除。
maxInterStageShaderVariables
的冗餘:這個限制已用於類似的用途,可控制著色器階段之間傳遞的資料量。- 些微差異:雖然兩種限制的計算方式略有差異,但差異不大,且可在
maxInterStageShaderVariables
限制內有效管理。 - 簡化:移除
maxInterStageShaderComponents
可簡化著色器介面,並降低開發人員的複雜度。這樣一來,他們就能專注於更適當命名且更全面的maxInterStageShaderVariables
,而非管理兩個有細微差異的獨立限制。
這個版本的 Chrome 移除了兩項功能。
移除 <link rel=prefetch>
五分鐘規則
先前,當資源使用 <link rel=prefetch>
進行預先擷取時,Chrome 會在五分鐘內首次使用時忽略快取語意 (即 max-age
和 no-cache
),以免重新擷取。如今,Chrome 已移除這項特殊情況,並使用一般 HTTP 快取語意。
也就是說,網頁開發人員必須加入適當的快取標頭 (Cache-Control 或 Expires),才能享有 <link rel=prefetch>
的優點。
這也會影響非標準的 <link rel=prerender>
。
移除 Chrome 歡迎頁面,並使用初始偏好設定啟動首次執行的分頁
在 initial_preferences
檔案的 first_run_tabs
屬性中加入 chrome://welcome
現在不會產生任何效果。我們移除了這個頁面,因為在電腦平台上觸發的初次執行體驗,已取代了這個頁面。