Chrome 121 Beta 版

除非另有说明,否则以下变更适用于最新 Chrome Beta 版(Android、ChromeOS、Linux、macOS 和 Windows)。如需详细了解此处列出的功能,请访问以下链接或 ChromeStatus.com 上的列表。Chrome 121 从 2023 年 12 月 6 日起进入 Beta 版阶段。您可以访问 Google.com(桌面版)或 Google Play 商店(Android 版)下载最新版本。

CSS

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

CSS 突出显示继承

借助 CSS 突出显示继承,CSS 突出显示伪类(例如 ::selection::highlight)会通过伪突出显示链(而非元素链)继承其属性。从而形成一个更直观的突出显示属性继承模型。

这满足了 CSS Pseudos 4 级规范的要求:

“当级联未给任何支持的属性提供值时 ...其指定的值由从其原始元素父元素的相应突出显示伪元素的继承确定。”

CSS 滚动条:scrollbar-colorscrollbar-width

借助 CSS 滚动条规范,开发者可以通过指定滚动条的颜色和粗细来设置滚动条的样式。该规范添加了以下两个属性。scrollbar-color 属性可用于更改滚动条的配色方案,使其更适合网页的特定样式。scrollbar-width 属性允许使用更窄的滚动条(可能更适合某些用例),甚至可以完全隐藏滚动条而不影响可滚动性。

彩色字体的 CSS font-palette 动画

借助 CSS font-palette 属性,您可以选择用于渲染彩色字体的特定调色板。得益于新添加的为此属性添加动画效果的支持,调色板之间的转换不再是离散的步骤,而是在两个选定调色板之间实现平滑过渡。这在 CSS 动画和过渡中随处可用。

CSS 拼写和语法功能

CSS 会突出显示伪元素,用于为用户代理标记为拼写错误或语法错误的文本设置样式;以及添加线条装饰来显示用户代理针对拼写和语法错误的默认装饰。借助这些功能,开发者可以为默认拼写和语法错误选择更清晰的颜色,使用背景颜色或其他装饰来突出显示拼写错误的字词,以及实现与设备体验融为一体的自定义拼写检查功能。

改进了 SVG 的 CSS 遮盖功能

这是对 Chrome 120 中经过改进的 CSS 蒙版支持的后续操作,为 SVG 添加了新的蒙版支持(多个蒙版,以及 mask-modemask-compositemask-positionmask-repeat)。此外,现在还支持远程 SVG 蒙版(例如 mask: url(masks.svg#star))。

Ruby 特定的显示值

添加了新的 CSS 显示属性值 rubyruby-text<ruby><rt> 的默认显示值分别更改为 rubyruby-text,ruby 布局会遵循这些显示值。Web 作者可以通过设置新的 display 值,使用 <div> 等任何元素来呈现 ruby。

Web API

归因报告功能组合:减少汇总延迟时间、事件级报表 Epsilon 字段、预留键

Chrome 对 Attribution Reporting API 进行了一些更改,侧重于:

  • 通过支持减少汇总报告延迟来减少传输损失。
  • 通过支持事件级报告 epsilon 字段,提供额外的 API 可配置性。
  • 遇到预留键时注册失败,提高了 API 的可扩展性。

往返缓存 notRestoredReason API

notRestoredReason API 报告未使用 PerformanceNavigationTiming API 从 bfcache 提供某个网页的原因列表。

在文档画中画中,需要用户手势来调整 API 的大小

这会针对文档画中画窗口启用 resizeBy()resizeTo() 方法,但增加了对用户手势要求的限制,以降低滥用的可能性。

EditContext API

EditContext API 简化了将 Web 应用与高级文本输入法(例如 VK 形状撰写、手写面板、语音识别和 IME 组合)集成的过程。它可以改进无障碍功能和性能,并解锁基于网络的编辑器的新功能。

针对受支持的剪贴板格式进行功能检测

您现在可以检查 Async Clipboard API 是否支持特定的 MIME 类型,方法是调用新的 supports() 函数,并将 MIME 类型作为实参(例如 ClipboardItem.supports('image/png'))传递。

HTMLSelectElement showPicker()

借助 HTMLSelectElement 的 showPicker() 方法,开发者能够按照 input.showPicker() 模式以编程方式打开 <select> 元素的选项选择器。

MediaCapabilities:使用 decodingInfo() 查询 HDR 支持

扩展了 Media Capabilities API,以允许通过三个新的 VideoConfiguration 字典字段检测 HDR 渲染支持:hdrMetadataType、colorGamut、transferFunction。

Chromium 会实现自己的色调映射算法,因此对于 HDR10 (smpteSt2086) 静态元数据,将始终返回 true。目前不支持 smpteSt2094-40 (HDR10+) 和 smpteSt2094-10 动态元数据,因此将返回 false。

Private Aggregation API:选择汇总协调器

对 Private Aggregation API 的这项修改提供了一种机制,用于选择使用哪个协调器进行载荷加密(从供应商指定的许可名单中)。可通过在共享存储空间的 run()selectURL() 调用以及 Protected Audience 的 runAdAuction()joinAdInterestGroup() 调用中使用附加选项来选择服务。宽泛的方法与 Attribution Reporting API 的方法基本一致。

桌面设备上的 Remote Playback API

此 API 扩展了 HTMLMediaElement,可用于从网页控制媒体的远程播放。此版本已在 Android 上通过 Chrome 56 提供,从 Chrome 121 开始支持桌面设备。

推测规则 API

我们发布了 Speculation Rules API 的新功能。

支持文档规则:这是对推测规则语法的扩展,可让浏览器从页面的 <a> 元素中获取用于推测性加载的网址列表。其中可能会说明可以使用哪些链接的条件。再加上针对推测规则的新“eagerness”字段,让开发者可以在鼠标指针悬停或鼠标按下时立即自动预提取或预呈现网页上的链接。

另一项更改允许指定使用 Speculation-Rules HTTP 响应标头(作为使用内嵌 <script> 元素的替代方案)的推测规则。此标头的值必须是指向 MIME 类型为 "application/speculationrules+json" 的文本资源的网址。资源的规则将添加到文档的规则集中。

最后,No-Vary-Search 提示可让推测性预提取匹配,即使网址查询参数发生变化也是如此。No-Vary-Search HTTP 响应标头声明为了匹配,可以忽略网址查询的部分或全部部分。它可以声明查询参数键的顺序不应阻止匹配,特定查询参数不应阻止匹配,或者只有某些已知的查询参数会导致不匹配。

SpeechSynthesis 和 SpeechSynthesisVoice 接口对象

SpeechSynthesisSpeechSynthesisVoice 的接口对象添加到已支持的功能。这样便可使用 SpeechSynthesisVoice.prototype 进行特征检测。

Storage 存储分区 API

借助存储分区,网站能够将设备上的数据整理到单独的“存储分区”中,这样用户代理就可以单独逐出分组数据,而不受其他存储分区中的数据的影响,而且网站能够根据人体工程学管理相关的数据。每个存储分区都可以包含与已建立的存储 API(例如 IndexedDB 和 CacheStorage)关联的数据。

网址格式:向左继承,通配符向右

使用基准网址和/或构造函数字符串语法构建的模式的行为会发生变化,但不会对在没有基准网址的情况下单独明确指定组件的任何模式进行更改。

如果明确指定了“更早”的组成部分,则相应组件不会从基准网址继承。 在字符串格式中,未指定的“后面的”组件使用隐式通配符通配符,而非必须为空(端口除外,端口始终在主机名时指定)。 从不隐式指定或继承用户名和密码。

这样一来,在可能需要使用通配符的情况下,模式就会比之前更加扩展。

网址Pattern:正则表达式 v 标志,而不是 u

网址格式 API 允许开发者指定格式字符串。这些内容在内部转换为正则表达式。

首次实现该 API 时,这些正则表达式使用 u 标记进行编译。Chrome 121 会将其更新为 v 标志,从而启用 Unicode 集。

新增 WebGPU

WebGPU 现在允许开发者在创建管道时省略着色器模块的入口点,从而提升了工效学设计。如果未找到默认入口点,系统会照常触发 GPUValidationError。

借助 WebGPU 时间戳查询,WebGPU 应用能够精确测量(精确到纳秒)其 GPU 命令的执行时间,尤其是在传递开始和结束时。时间戳查询被广泛用于深入了解 GPU 工作负载的性能和行为。

虽然出于时间攻击方面的顾虑,WebGPU 规范将时间戳查询作为可选功能,但我们相信,时间戳查询量化可降低计时器的精度(分辨率为 100 微秒),以提供很好的中间效果。

适用于 TLS 的 X25519Kyber768 密钥封装

通过部署 Kyber768 防量子密钥协议算法,保护当前的 Chrome TLS 流量免受未来的量子密码分析的影响。这是基于 IETF 标准的混合 X25519 + Kyber768 密钥协议。此规范和发布不在 W3C 的讨论范围之内。此密钥协议将以 TLS 加密方式发布,并且应向用户公开。

正在进行源试用

在 Chrome 121 中,您可以选择启用以下新的源试用

Element Capture API

Element Capture API 提供了用于捕获 DOM 子树的方法。

假设有一个视频 MediaStreamTrack 是通过现有方式来启动标签页捕获,元素捕获允许改变轨道,以便仅捕获从给定元素开始的 DOM 子树。

此 API 与 Region Capture API 有一些相似之处,但为应用提供了更大的灵活性,因为捕获和被遮盖的内容都会被排除在捕获之外。

注册参加 ElementCapture 源试用

现有行为的变更

Chrome 121 对现有行为做出了以下更改,我们在此列出这些更改,以便开发者了解相应更改。

舍弃输入事件到最近移动的跨源 iframe

如果跨源 iframe 最近在其嵌入网页中移动过,那么 Chrome 会静默地舍弃定位到该 iframe 的事件。其原因在于,如果 iframe 最近移动了,很可能是因为用户没有打算点击或点按。

这项变更在 2019 年以小范围的形式发布:这仅影响了包含使用 IntersectionObserver 2 版功能(即遮挡或效果检测)的脚本的 iframe。此次发布的版本会将此行为扩展到所有跨源 iframe,并且先在 Chrome 121 中进行小范围实验,然后再逐步推广。