除非另有说明,否则以下变更适用于最新的 Chrome Beta 渠道版本(Android、ChromeOS、Linux、macOS 和 Windows)。如需详细了解此处列出的功能,请通过所提供的链接或 ChromeStatus.com 上的列表详细了解。Chrome 121 的 Beta 版已于 2023 年 12 月 6 日截止。您可以访问 Google.com(桌面版)或 Google Play 商店(Android 版)下载最新版本。
CSS
此版本新增了六项 CSS 功能。
CSS 突出显示沿用
使用 CSS 突出显示继承功能时,CSS Highlight 伪类(例如 ::selection
和 ::highlight
)会通过伪突出显示链(而非元素链)继承其属性。从而为突出显示中属性继承构建了一个更直观的模型。
这实现了 CSS Pseudos 4 级规范中的要求:
"当级联未给任何支持的属性提供值时...其指定的值取决于从其源元素父元素的相应突出显示伪元素的继承情况。"
CSS 滚动条:scrollbar-color
和 scrollbar-width
借助 CSS 滚动条规范,开发者可以通过指定滚动条的颜色和粗细来设置滚动条的样式。本规范添加了以下两个属性。scrollbar-color
属性可让您更改滚动条的配色方案,使其更适合网页的特定样式。scrollbar-width
属性允许使用较窄的滚动条(可能更适合某些用例),甚至完全隐藏滚动条而不影响可滚动性。
彩色字体的 CSS font-palette
动画
借助 CSS font-palette
属性,您可以选择用于渲染彩色字体的特定调色板。新添加了对为此属性添加动画的支持后,调色板之间的转换不再是一个离散步骤,而是可以在两个所选调色板之间平滑过渡。这在 CSS 动画和过渡效果中的各个位置都适用。
CSS 拼写和语法功能
CSS 突出显示了伪元素,用于为用户代理标记为拼写错误或语法错误的文本设置样式,以及显示用户代理针对拼写和语法错误的默认装饰的线条装饰。借助这些功能,开发者可以为默认拼写和语法错误选择更清晰的颜色,使用背景颜色或其他装饰突出显示拼写错误的字词,以及实现与设备体验融为一体的自定义拼写检查功能。
改进了 SVG 的 CSS 遮盖功能
这是 Chrome 120 中经过改进的 CSS 遮罩支持的后续功能,为 SVG(多个遮罩,以及 mask-mode
、mask-composite
、mask-position
和 mask-repeat
)添加了新的遮罩支持。此外,现在还支持远程 SVG 遮罩(例如 mask: url(masks.svg#star)
)。
Ruby 专用的显示值
添加了新的 CSS 显示属性值 ruby
和 ruby-text
。<ruby>
和 <rt>
的默认显示值分别更改为 ruby
和 ruby-text
,而 ruby 布局会遵循这些显示值。网页作者可以通过设置新的显示值,使用任何元素(例如 <div>
)来呈现红宝石。
Web API
归因报告功能包:减少汇总延迟、事件级报告 Epsilon 字段、预留键
Chrome 对 Attribution Reporting API 进行了一些更改,侧重于以下方面:
- 通过支持缩短汇总报告延迟时间来减少传输损失。
- 通过支持事件级报告 epsilon 字段,提供额外的 API 可配置性。
- 通过在遇到预留密钥时失败注册,提高了 API 的可扩展性。
往返缓存 notRestoredReason API
notRestoredReason API 使用 PerformanceNavigationTiming API 报告了未使用 bfcache 从 bfcache 提供的原因列表。
在文档画中画中,需要用户手势来调整 API 的大小
这会在文档画中画窗口中启用 resizeBy()
和 resizeTo()
方法,但增加了对用户手势要求的限制,以降低潜在的滥用问题。
EditContext API
EditContext API 简化了 Web 应用与高级文本输入法(例如 VK 形状写入、手写面板、语音识别和 IME 组合)集成的过程。改进了无障碍功能和性能,并为基于网络的编辑器解锁了新功能。
针对支持的剪贴板格式的功能检测
现在,您可以调用新的 supports()
函数,以参数形式(例如 ClipboardItem.supports('image/png')
)传递 MIME 类型,从而检查 Async Clipboard API 是否支持某种 MIME 类型。
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>
元素获取用于推测加载的网址列表。其中可能会包含这些链接的使用条件。通过该功能,结合新的推测规则“紧急程度”字段,开发者可以立即在网页上自动预提取或预呈现链接,无论用户悬停鼠标还是按下鼠标都可以。
另一项更改允许使用 Speculation-Rules
HTTP 响应标头指定推测规则,以作为使用内嵌 <script>
元素的替代方案。此标头的值必须是指向 MIME 类型为 "application/speculationrules+json"
的文本资源的网址。该资源的规则将添加到该文档的规则集中。
最后,No-Vary-Search
提示让推测性预提取能够进行匹配,即使网址查询参数发生变化也不受影响。No-Vary-Search
HTTP 响应标头声明为了匹配,可以忽略网址查询的部分或全部部分。它可以声明查询参数键的顺序不应阻止匹配,特定查询参数不应阻止匹配,或者只有某些已知查询参数会导致不匹配。
SpeechSynthesis 和 SpeechSynthesisVoice 接口对象
将 SpeechSynthesis
和 SpeechSynthesisVoice
的接口对象添加到已支持的功能。这样便可使用 SpeechSynthesisVoice.prototype 进行功能检测。
Storage 存储分区 API
存储分区使网站能够将设备上的数据整理到单独的“存储分区”中,这使得用户代理能够逐出分组数据,而不受其他存储分区中的数据的影响,使网站能够按照人体工程学管理语义相关数据。每个存储分区都可包含与 IndexedDB 和 CacheStorage 等已建立的存储 API 相关联的数据。
网址Pattern:在左侧沿用,在右侧沿用通配符
使用基础网址和/或构造函数字符串语法构建的模式的行为会发生变化,但不包括在没有基准网址的情况下单独明确指定组件的任何模式。
如果明确指定了“更早”的组成部分,则相应组成部分不会从基准网址继承。 在字符串格式中,未指定的“稍后”组成部分会隐式触发通配符,而非必须为空(端口除外,该端口始终在主机名时被指定)。 用户名和密码绝不会隐式指定或继承。
在可能需要使用通配符的情况下,这会使模式比以前更加扩展。
网址Pattern:正则表达式 v
标志,而非 u
网址 Pattern 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 有一些相似之处,但能够为应用提供更大的灵活性,因为被遮挡和被遮挡的内容都会被排除在捕获范围之外。
现有行为的变更
Chrome 121 对现有行为做出了以下更改(在此处列出),以便开发者了解相应更改。
舍弃输入事件至最近移动的跨源 iframe
如果跨源 iframe 最近在其嵌入页面中移动过,那么 Chrome 会静默地舍弃定位到该 iframe 的事件。这样做的原因是,如果 iframe 最近移动了,那么可能是用户没有打算点击或点按该 iframe。
这项变更已于 2019 年以有限形式发布:它仅影响了包含脚本且使用 IntersectionObserver 2 版功能(即遮挡或效果检测)的 iframe。此次发布的版本会将此行为扩展到所有跨源 iframe,并且会先在 Chrome 121 中进行小范围实验,然后再逐步扩大。