除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版。如需详细了解此处列出的功能,请通过所提供的链接或 ChromeStatus.com 上的列表详细了解。自 2024 年 2 月 21 日起,Chrome 123 为 Beta 版。您可以从 Google.com 桌面版或 Android 版 Google Play 商店下载最新版本。
CSS
此版本新增了五项 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 画中画显示模式
添加了对 CSS display-mode
媒体功能 picture-in-picture
值的支持。这样,Web 开发者就可以编写特定的 CSS 规则,这些规则仅在 Web 应用(的一部分)以画中画模式显示时应用。
如需详细了解此媒体功能,请参阅画中画文档。
块的 align-content CSS 属性
块容器和表单元格现在支持 align-content
CSS 属性。以前,只有网格和弹性项支持此属性。例如,现在可以使用 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 凭据
借助此功能,网站开发者可以在跨源 iframe 中创建 WebAuthn 凭据(即“公钥”凭据,称为通行密钥)。此新功能需要两个条件:
- iframe 有
publickey-credentials-create-feature
权限政策。 - iframe 有瞬时用户激活。
这样一来,开发者便可以在嵌入式场景中创建通行密钥,例如在依赖方提供联合身份体验的身份升级流程之后。
归因报告功能包
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 集成以用于 JSON 和 CSS 模块时,需要进行一些更改,因此此版本随后已更新为使用 with
。
jitterBufferTarget
jitterBufferTarget
属性允许应用指定 RTCRtpReceiver
抖动缓冲区保留的目标时长(以毫秒为单位)。这会影响用户代理执行的缓冲量,进而影响重新传输和丢包恢复。更改目标值可让应用控制播放延迟和因网络抖动而耗尽音频/视频帧的风险之间的权衡。
动画帧计时较长
Long Animation Frames API 是 Long Tasks API 的扩展项。它会衡量任务及其后续渲染更新,并添加长时间运行的脚本、渲染时间以及强制布局和样式所花时间等信息(称为布局抖动)。
开发者可以将此情况作为“缓慢”的诊断依据,此情况通过 INP 衡量,方法是找出主线程拥塞的原因,而主线程拥塞通常是造成糟糕 INP 的原因。
NavigationActivation
NavigationActivation 接口添加了 navigation.activation
。它会存储有关当前文档的激活时间(例如,初始化时间,或从往返缓存中恢复的时间)的状态。
这意味着,开发者可以根据用户的导航路径提供自定义页面。例如,如果播放来自首页,请运行不同的动画。
pagereveal 事件
在 Document 首次加载、从往返缓存中恢复或通过预渲染激活后,系统会在第一次呈现机会时针对 Document 的窗口对象触发 pagereveal
事件。
网页作者可以使用它来设置页面条目体验,例如从先前状态的视图过渡。
用于多笔手写的 PointerEvent.deviceId
随着具有高级触控笔输入功能的设备越来越普及,Web 平台必须不断发展,全面支持这些高级功能,以便为最终用户和开发者解锁丰富的体验。其中一项进步是设备的数字化器能够识别同时与其交互的多个触控笔设备。此功能是对 PointerEvent
接口的扩展,添加了一个新属性 deviceId
,它表示会话持久性、与文档隔离的唯一标识符,开发者可可靠地使用它来识别与页面交互的各个钢笔。
针对导航请求的专用网络访问权限检查:仅限警告模式
在网站 A 前往用户专用网络中的其他网站 B 之前,此功能会执行以下操作:
- 检查请求是否是从安全上下文发起的。
- 发送预检请求,并检查 B 是否使用允许专用网络访问的标头进行响应。
已经有针对子资源和工作器的功能,但这项新增功能专门用于导航请求。
这些检查是为了保护用户的专用网络。由于此功能为“仅限警告”模式,因此如果任何检查失败,请求不会失败。而是会在开发者工具中显示一条警告,以帮助开发者为即将到来的违规处置做好准备。
Sec-CH-UA-外形规格客户端提示
此提示会指明用户代理或设备的“外形规格”,以便网站可以定制其响应。
Service Worker Static Routing API
此 API 允许开发者配置路由,并允许他们分流 Service Worker 执行的一些简单操作。如果满足条件,导航无需启动 Service Worker 或执行 JavaScript,这可以让网页避免因 Service Worker 拦截而造成性能下降。如需了解详情,请参阅上一篇博文中关于此 API 的博文。
共享存储空间更新
此更新支持运行跨源 Worklet,而无需创建 iframe。
zstd 内容编码
Zstandard(即 zstd)是 RFC8878 中所述的一种数据压缩机制。这是一种快速的无损压缩算法,旨在实现 zlib 级的实时压缩,并具有更好的压缩比。zstd
令牌已作为 IANA 注册的内容编码令牌添加。
添加对 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 随时间的推移而不断发展,术语方面的更改会提升描述符的持久性。
针对 window-placement
别名的弃用警告从 Chrome 113 开始,现在将被移除。