Chrome 123 Beta 版

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

CSS

此版本新增了 5 项 CSS 功能。

CSS light-dark() 颜色函数

借助 CSS 中的 light-dark() 函数,开发者可以更轻松地根据用户对浅色或深色模式的偏好设置来调整配色方案。

使用 light-dark() 可在单个 CSS 属性中指定两个不同的颜色值。浏览器(或设备)会根据元素的计算 color-scheme 值自动选择适当的颜色。例如,使用以下 CSS:

  • 如果用户选择了浅色主题,.target 元素将采用淡黄色背景。
  • 如果用户选择了深色主题,.target 元素将具有绿色背景。
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

CSS 画中画显示模式

picture-in-picture 值添加了对 CSS display-mode 媒体功能的支持。这样,Web 开发者就可以编写特定的 CSS 规则,这些规则仅在 Web 应用(部分)以画中画模式显示时才会应用。

如需详细了解此媒体功能,请参阅画中画文档

适用于块的 align-content CSS 属性

现在,块容器和表格单元格支持 align-content CSS 属性。以前,只有网格和 Flex 项支持此属性。例如,现在可以使用 align-content 对齐 display: blockdisplay: list-itemdisplay: table-cell

如需了解详情,请参阅对块布局和表格布局中的 align-content 的支持

field-sizing CSS 属性

使用 field-sizing 属性,开发者可以停用表单控件的固定默认大小,并使其大小取决于内容。这样可以创建自动增长的文本字段。

CSS text-spacing-trim 属性

此属性会将字距调整应用于中文、日文和韩文 (CJK) 标点符号,以便生成 JLREQ(日语文排版要求)和 CLREQ(中文文排版要求)中定义的视觉上令人愉悦的排版。

许多 CJK 标点符号字符都包含字形内部间距。例如,CJK 句号和 CJK 右括号通常在字符空间的右半部分具有字符内部间距,以便它们像其他意符字符一样具有恒定的前进量。但是,当它们显示在一行中时,字形内部的间距会过大。此功能可调整此类过大的间距。

text-spacing-trim 属性接受以下四个值之一:normaltrim-startspace-allspace-first。如需了解详情,请参阅CSS 中推出的四项新国际功能

Web API

允许在跨源 iframe 中创建 WebAuthn 凭据

借助此功能,Web 开发者可以在跨源 iframe 中创建 WebAuthn 凭据(即“公钥”凭据,也称为通行密钥)。若要使用这项新功能,需要满足以下两个条件:

  • iframe 具有 publickey-credentials-create-feature 权限政策。
  • iframe 具有暂时性的用户激活。

这样,开发者便可以在嵌入式场景中创建通行密钥,例如在信赖方提供联合身份验证体验的身份验证加强流程之后。

Attribution Reporting 功能套件

Chrome 123 在 Attribution Reporting API 中添加了触发器数据自定义和可汇总值过滤器,重点是:

  • 支持对触发器数据基数和值进行自定义,从而为事件级报告提供额外的 API 可配置性。
  • 通过支持可汇总值中的过滤条件,为摘要报告提供了额外的 API 可配置性。

跨应用和跨网站归因衡量

扩展了 Attribution Reporting API,以便将发生在网站上的转化归因于在浏览器之外的其他应用中发生的事件。

此提案利用了操作系统级对归因的支持。具体而言,它可让开发者选择允许移动网站上的事件与 Android 的 Privacy Sandbox 中的事件联接,但也可以实现对其他平台的支持。

内嵌模块脚本中的 blocking=render

这是一项小变更,用于移除 <script blocking="render"> 中的人为限制。在此更改之前,<script blocking="render"type="module"> 需要 src 属性,即使此 src 是数据 URI 也是如此。这是一个不必要的限制,因为导入其他脚本的内嵌模块脚本应该仍然能够呈现块。

之所以这样做,是因为跨文档视图转换通常依赖于渲染阻塞脚本来进行自定义,因此简化渲染阻塞脚本的编写工作有助于支持此功能。

文档画中画:允许 focus() API 聚焦于打开器

现在,您可以在文档画中画窗口中使用 opener.focus() 将系统级焦点移至拥有文档画中画窗口的标签页。

这样,开发者便可以在需要时将原始标签页重新置于前台。例如,当用户需要访问无法在较小的画中画窗口中显示的界面体验时。

导入属性 with 语法

导入属性是一种 JavaScript 功能,可用于为导入声明添加注解,例如 import xxx from "mod" with { type: "json" }。Chrome 最初发布的提案版本(在 Chrome 91 中)使用 assert 作为关键字。由于在将其与 HTML for JSON 和 CSS 模块集成时需要进行一些更改,因此此版本已更新为使用 with

jitterBufferTarget

借助 jitterBufferTarget 属性,应用可以指定 RTCRtpReceiver 抖动缓冲区要保留的媒体目标时长(以毫秒为单位)。这会影响用户代理进行的缓冲量,进而影响重传和数据包丢失恢复。通过更改目标值,应用可以控制播放延迟与因网络抖动而导致音频或视频帧耗尽的风险之间的权衡。

长动画帧时间设置

Long Animation Frames APILong Tasks API 的扩展。它会衡量任务及其后续渲染更新,并添加长时间运行的脚本、渲染时间以及在强制布局和样式中花费的时间等信息,这称为布局抖动

开发者可以通过查找主线程拥塞(通常是 INP 不佳的原因)的原因,将其用作“缓慢”的诊断依据,而“缓慢”是通过 INP 衡量的。

NavigationActivation 接口添加了 navigation.activation。此属性用于存储当前文档激活的时间(例如,初始化时间或从返回/前进缓存恢复的时间)的状态。

这意味着,开发者可以根据用户的导航来源提供自定义页面。例如,如果用户来自首页,则运行不同的动画。

pagereveal 事件

在文档初始加载、从前进后退缓存恢复或从预渲染激活后,系统会在首次呈现机会时对文档的窗口对象触发 pagereveal 事件。

网页作者可以使用它来设置网页进入体验,例如从上一个状态的视图转换。

适用于多触控笔手写的 PointerEvent.deviceId

随着具有高级触控笔输入功能的设备越来越普及,Web 平台必须不断发展,以全面支持这些高级功能,从而为最终用户和开发者提供丰富的体验。其中一个进步是,设备的数字化器能够同时识别与其互动的多部触控笔设备。此功能是对 PointerEvent 接口的扩展,用于添加一个新属性 deviceId,该属性表示会话持久、文档隔离的唯一标识符,开发者可以可靠地使用该标识符来识别与页面互动的各个触控笔。

针对导航请求的专用网络访问权限检查:仅警告模式

在网站 A 导航到用户专用网络中的另一个网站 B 之前,此功能会执行以下操作:

  1. 检查请求是否是在安全上下文中发起的。
  2. 发送预检请求,并检查 B 是否使用允许专用网络访问的标头进行响应。

系统已经提供了针对子资源和 worker 的功能,但此次新增的功能专门针对导航请求。

这些检查旨在保护用户的专用网络。由于此功能处于“仅发出警告”模式,因此即使任何检查都失败,请求也不会失败。而是会在 DevTools 中显示警告,以帮助开发者为即将实施的违规处置做好准备。

Sec-CH-UA-Form-Factor 客户端提示

此提示表示用户代理或设备的“外形规格”,以便网站量身定制其响应。

Service Worker 静态转送 API

借助此 API,开发者可以配置路由,并将服务工件执行的简单操作分流到其他进程。如果条件匹配,系统会在不启动服务工件或执行 JavaScript 的情况下进行导航,从而避免因服务工件拦截而导致性能下降。如需了解详情,请参阅上一篇介绍此 API 的博文

共享存储空间更新

此更新支持运行跨源 worklet,而无需创建 iframe。

zstd Content-Encoding

Zstandard(或 zstd)是 RFC8878 中所述的数据压缩机制。这是一种快速的无损压缩算法,可在 zlib 级别实现实时压缩场景并提供更高的压缩比率。zstd 令牌已添加为 IANA 注册的 Content-Encoding 令牌。

添加对 zstd 作为 Content-Encoding 的支持有助于加快网页加载速度、减少使用的带宽,并减少在服务器上进行压缩所需的时间、CPU 和电量,从而降低服务器费用。

新的来源试用

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

WebAssembly JavaScript promise 集成

为了支持使用 WebAssembly 编写的自适应应用,必须提供允许 WebAssembly 程序暂停和恢复的功能。

Promise 集成的主要初始用例是允许源代码依赖于同步 API 的 WebAssembly 程序使用在 Web 平台上越来越常见的异步 API。

注册参加 Promise 集成源试用

移除

Chrome 123 移除了以下功能。

权限和权限政策 window-managementwindow-placement 别名

在 Chrome 111 中,添加了 window-management,作为 window-placement 权限和权限政策字符串的别名。这只是我们为最终废弃和移除 window-placement 而进行的一项更大计划的一部分。随着 Window Management API 随时间推移而不断演变,术语变更有助于延长描述符的生命周期。

从 Chrome 113 开始,系统会针对 window-placement 别名显示弃用警告,现在该别名将被移除。