Chrome 129 Beta 版

除非另有说明,否则以下变更适用于适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版分支。如需详细了解此处列出的功能,请点击所提供的链接或查看 ChromeStatus.com 上的列表。自 2024 年 8 月 21 日起,Chrome 129 进入 Beta 版阶段。您可以在桌面版 Google.com 或 Android 版 Google Play 商店下载最新版本。

CSS

此版本新增了两项 CSS 功能,并更新了三项功能。

CSS interpolate-size propertycalc-size() 函数

借助 CSS interpolate-size 属性,页面可以在 CSS 内在尺寸关键字(例如 automin-contentfit-content)可呈现动画效果的情况下,选择为这些关键字启用动画和转场效果。

CSS calc-size() 函数是一种类似于 calc() 的 CSS 函数,但它还支持对恰好一个受支持的尺寸关键字执行操作。目前支持的尺寸关键字包括 automin-contentmax-contentfit-content。未来可能支持的其他大小调整关键字包括 stretch(目前支持前缀为 -webkit-fill-available)和 contain。此函数用于表示 interpolate-size 属性允许的动画中间的值。

将 CSS 锚点定位 inset-area 重命名为 position-area

CSSWG 决定将此属性从 inset-area 重命名为 position-area。Chrome 129 提供 position-areainset-area 名称将在未来的版本中移除。

CSS 锚点定位:未封装 inset-area()

直接在 position-try-fallbacks 中将 inset-area() 函数替换为内嵌区域值。例如,使用 position-try-fallbacks:top,而不要使用 position-try-fallbacks:inset-area(top)

更新 CSS backdrop-filter 以使用镜像 edgeMode

backdrop-filter CSS 属性可将一个或多个滤镜应用于元素的背景幕。背景是位于元素后面的绘制内容。常见的滤镜是模糊处理,可让设计师构建“磨砂玻璃”对话框框、视频叠加层、半透明导航栏标题等。

此功能最初的实现方式与常规模糊处理相同,但采样超出元素边缘会导致边缘的颜色渗入。通过复制边缘像素,规范已更改为采样背景边缘外的像素。不过,这会导致内容进入背景边缘时出现极端闪烁。最新的规范变更会在超出边缘采样时镜像背景,从而允许在边缘处平滑渐进地引入新颜色,而不会过度强调单行颜色。

Web API

WebRTC 数据通道中的 Blob 支持

实现了 RTCDataChannel.send(Blob),并且 onMessage 事件现在可以选择使用 binaryType 属性接收类型为 Blob 的数据。

除了支持发送字符串和 ArrayBuffer 之外,您现在还可以选择发送 Blob,前提是其大小低于 WebRTC 规范中所述的 SCTP 传输 maxMessageSize

binaryType 属性设置为 "blob" 后,onMessage 事件数据属性的类型将为 Blob,而不是目前支持的 ArrayBuffer

Compute Pressure WebDriver 扩展程序命令

公开 WebDriver 命令,用于为虚拟压力源创建、移除和更新压力源样本。此类压力源不依赖于底层硬件或操作系统支持,并且可用于测试。

Intl.DurationFormat

提供一种格式化时长的方法,例如“1 小时 40 分钟 30 秒”,支持多种语言区域。

Private Aggregation API:客户端贡献合并

修改了 Private Aggregation API,以便在将直方图贡献值嵌入可汇总报告的加密载荷之前,合并具有相同分桶和过滤 ID 的贡献值。

私密汇总会对单个可汇总报告中可嵌入的贡献数量施加限制,任何其他贡献都会被舍弃。通过尽可能合并贡献,我们可以充分利用此限制。请注意,除了忽略多余贡献之外,合并这类贡献对最终输出(例如摘要报告)应该没有任何影响。

scheduler.yield()

提供一种向浏览器让出控制权的方法,可用于拆分长任务。等待 scheduler.yield() 返回的 Promise 会导致当前任务让出,并在新的浏览器任务中继续。这可用于解决由长时间运行的任务导致的响应速度问题。系统会优先使用接续,以减少现有替代方案的性能问题。

Web Authentication API:JSON 序列化方法

借助 WebAuthn PublicKeyCredential.toJSON()parseCreationOptionsFromJSON()parseRequestOptionsFromJSON() 方法,开发者可以将 WebAuthn 响应序列化为 JSON 对象,或将 WebAuthn 请求对象从其 JSON 表示法反序列化。

WebGPU 扩展范围 (HDR) 支持

向 WebGPU 画布配置添加了色调映射参数,并添加了 standard(将内容限制在显示屏的 SDR 范围内的当前行为)作为默认选项,以及 extended(不强加此限制)作为新行为。这样,WebGPU 内容就可以使用显示屏的整个范围。

正在进行的源试用

在 Chrome 129 中,您可以选择参与以下新的源代码试用

FileSystemObserver 接口

FileSystemObserver 接口会通知网站文件系统发生的更改。网站会监控用户本地设备(如 WICG/file-system-access 中所述)或存储分区文件系统(如 fs.spec.whatwg.org 中所述)中文件和目录的更改,并会收到更改类型等基本更改信息的通知。

注册 FileSystemObserver 源试用版

废弃和移除

此版本的 Chrome 引入了下列已废弃和已移除的功能。如需查看计划弃用、当前弃用和之前移除的功能的列表,请访问 ChromeStatus.com

此版本的 Chrome 弃用了一项功能。

废弃了专用网络访问的 0.0.0.0

在完全推出专用网络访问 (PNA) 之前,Chrome 会阻止访问 IP 地址 0.0.0.0

按照 PNA 规范,Chrome 将弃用从公共网站直接访问专用网络端点的功能。根据规范,在 localhost (127.0.0.0/8) 上监听的服务被视为私有服务。可以使用 IP 地址 0.0.0.0 绕过 Chrome 的 PNA 保护,以访问在 macOS 和 Linux 上监听本地主机的服务。

攻击者还可能会在针对监听本地主机的 Web 应用的 DNS 重新绑定攻击中滥用此功能。

此版本的 Chrome 移除了三项功能。

移除了 DOMParser 上的 includeShadowRoots 参数

includeShadowRoots 参数是 DOMParser.parseFromString() 函数的一个从未标准化的参数,用于允许对包含声明式 shadow DOM 的 HTML 内容进行命令式解析。此功能在 Chrome 90 中发布,是声明式 shadow DOM 的初始版本的一部分。

现在,setHTMLUnsafe()parseHTMLUnsafe() 方法提供此功能的标准化版本,因此非标准 includeShadowRoots 参数将被移除。代码应更新为:

来替代:

((new DOMParser()).parseFromString(html,'text/html',{includeShadowRoots: true});

使用:

Document.parseHTMLUnsafe(html);

移除了非标准的声明式 shadow DOM 序列化

声明式 shadow DOM 的原型实现包含一个名为 getInnerHTML() 的方法,用于序列化包含影子根的 DOM 树。该原型中的这部分未与声明式阴影 DOM 的其余部分一起标准化,而是设计了替代项 getHTML()

因此,旧的 getInnerHTML() 方法现已从 Chrome 中移除,您应改用 getHTML(),后者很快将支持跨浏览器互操作。

从不安全的情境中移除 PointerEvent.getCoalescedEvents()

四年前,指针事件工作组将 PointerEvent.getCoalescedEvents() 限制为仅在安全上下文中使用,从而将该 API 从不安全的上下文中移除。Chrome 最初发布的是旧行为,由于兼容性问题,并未立即遵循规范变更。

由于在不安全情境中的 Chrome 使用率非常低,我们现在将从不安全情境中移除此功能。