除非另有说明,否则以下变更适用于适用于 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: block
、display: list-item
和 display: table-cell
。
如需了解详情,请参阅对块布局和表格布局中的 align-content
的支持。
field-sizing
CSS 属性
使用 field-sizing
属性,开发者可以停用表单控件的固定默认大小,并使其大小取决于内容。这样可以创建自动增长的文本字段。
CSS text-spacing-trim
属性
此属性会将字距调整应用于中文、日文和韩文 (CJK) 标点符号,以便生成 JLREQ(日语文排版要求)和 CLREQ(中文文排版要求)中定义的视觉上令人愉悦的排版。
许多 CJK 标点符号字符都包含字形内部间距。例如,CJK 句号和 CJK 右括号通常在字符空间的右半部分具有字符内部间距,以便它们像其他意符字符一样具有恒定的前进量。但是,当它们显示在一行中时,字形内部的间距会过大。此功能可调整此类过大的间距。
text-spacing-trim
属性接受以下四个值之一:normal
、trim-start
、space-all
和 space-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 API 是 Long Tasks API 的扩展。它会衡量任务及其后续渲染更新,并添加长时间运行的脚本、渲染时间以及在强制布局和样式中花费的时间等信息,这称为布局抖动。
开发者可以通过查找主线程拥塞(通常是 INP 不佳的原因)的原因,将其用作“缓慢”的诊断依据,而“缓慢”是通过 INP 衡量的。
NavigationActivation
NavigationActivation 接口添加了 navigation.activation
。此属性用于存储当前文档激活的时间(例如,初始化时间或从返回/前进缓存恢复的时间)的状态。
这意味着,开发者可以根据用户的导航来源提供自定义页面。例如,如果用户来自首页,则运行不同的动画。
pagereveal 事件
在文档初始加载、从前进后退缓存恢复或从预渲染激活后,系统会在首次呈现机会时对文档的窗口对象触发 pagereveal
事件。
网页作者可以使用它来设置网页进入体验,例如从上一个状态的视图转换。
适用于多触控笔手写的 PointerEvent.deviceId
随着具有高级触控笔输入功能的设备越来越普及,Web 平台必须不断发展,以全面支持这些高级功能,从而为最终用户和开发者提供丰富的体验。其中一个进步是,设备的数字化器能够同时识别与其互动的多部触控笔设备。此功能是对 PointerEvent
接口的扩展,用于添加一个新属性 deviceId
,该属性表示会话持久、文档隔离的唯一标识符,开发者可以可靠地使用该标识符来识别与页面互动的各个触控笔。
针对导航请求的专用网络访问权限检查:仅警告模式
在网站 A 导航到用户专用网络中的另一个网站 B 之前,此功能会执行以下操作:
- 检查请求是否是在安全上下文中发起的。
- 发送预检请求,并检查 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。
移除
Chrome 123 移除了以下功能。
权限和权限政策 window-management
的 window-placement
别名
在 Chrome 111 中,添加了 window-management
,作为 window-placement
权限和权限政策字符串的别名。这只是我们为最终废弃和移除 window-placement
而进行的一项更大计划的一部分。随着 Window Management API 随时间推移而不断演变,术语变更有助于延长描述符的生命周期。
从 Chrome 113 开始,系统会针对 window-placement
别名显示弃用警告,现在该别名将被移除。