Chrome 142 Beta 版

发布时间:2025 年 10 月 1 日

除非另有说明,否则这些变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 142 Beta 版发布版本。如需详细了解这些功能,请访问提供的链接或 ChromeStatus.com。您可以从 Google.com 下载 Chrome 142 桌面版 Beta 版,也可以从 Google Play 商店下载 Android 版 Chrome 142 Beta 版。

CSS 和界面

:target-before:target-after 伪类

这些伪类用于匹配同一滚动标记组中位于有效标记(与 :target-current 匹配)之前或之后的滚动标记,具体取决于扁平树顺序:

  • :target-before:匹配组中位于扁平树顺序中的活动标记之前的所有滚动标记。
  • :target-after:匹配组中扁平树顺序中位于有效标记之后的所有滚动标记。

::view-transition 元素的绝对定位

视图过渡使用元素的伪子树,其中 ::view-transition 是该过渡的根。之前,::view-transition 元素被指定为具有 position: fixed。CSS 工作组已决定将此属性设为 position: absolute,因此 Chrome 现在反映了这一更改。

此更改不应明显,因为无论采用绝对定位还是固定定位,此元素的包含块始终是快照包含块。唯一明显的区别在于 getComputedStyle

文档中的 activeViewTransition 属性

借助 View Transitions API,开发者可以在不同状态之间启动视觉过渡效果。主要 SPA 入口点是 startViewTransition(),它会返回一个过渡对象。此对象包含多个 promise 和用于跟踪过渡进度的功能,并允许您操纵过渡,例如跳过过渡或修改其类型。

从 Chrome 142 开始,开发者不再需要存储此对象。document.activeViewTransition 属性表示此对象,如果没有正在进行的过渡,则表示 null

这也适用于 MPA 过渡,其中对象仅通过 pageswappagereveal 事件提供。在此更新中,document.activeViewTransition 在转换期间设置为此对象。

样式容器查询和 if() 的范围语法

Chrome 通过添加对范围语法的支持,增强了 CSS 样式查询和 if() 函数。

它将样式查询扩展到精确值匹配(例如 style(--theme: dark))之外。开发者可以使用比较运算符(例如 ><)来比较自定义属性、字面量值(例如 10px 或 25%)以及来自替换函数(例如 attr()env())的值。为了进行有效比较,等式两边必须解析为相同的数据类型。它仅限于以下数值类型:<length><number><percentage><angle><time><frequency><resolution>

示例:

将自定义属性与字面长度进行比较:

@container style(--inner-padding > 1em) {
  .card {
    border: 2px solid;
  }
}

比较两个字面值

@container style(1em < 20px) {
  /* ... */
}

if() 中使用样式范围:

.item-grid {
  background-color: if(style(attr(data-columns, type<number>) > 2): lightblue; else: white);
}

兴趣调用者(interestfor 属性)

Chrome 会向 <button><a> 元素添加 interestfor 属性。此属性可为元素添加“兴趣”行为。当用户对元素“表现出兴趣”时,系统会在目标元素上触发操作,例如显示弹出式窗口。用户代理会检测用户何时通过以下方法对元素“表现出兴趣”:将指针悬停在元素上、在键盘上按下特殊的热键,或在触摸屏上长按元素。当显示或失去兴趣时,目标上会触发 InterestEvent,该目标具有弹出式信息框的默认操作,例如显示和隐藏弹出式信息框。

font-language-override 属性

Chrome 引入了对 font-language-override CSS 属性的支持。借助此属性,开发者可以直接在 CSS 中指定一个四字符语言标记,从而替换用于 OpenType 字形替换的系统语言。

它可实现精细的排版控制,对于多语言内容或具有特定于语言的字形变体的字体尤其有用。

SVG <a> 元素中的 download 属性

Chrome 在 SVGAElement 接口上引入了对 download 属性的支持,与 SVG 2 规范保持一致。借助 download 属性,作者可以指定下载 SVG 超链接的目标,而不是前往该目标。这与 HTMLAnchorElement 中已支持的行为相一致。它可促进主要浏览器之间的互操作性,确保 HTML 和 SVG <a> 元素之间的一致行为,并改善开发者体验和用户预期。

部分元素呈现模式在移动设备和桌面设备上的对等性

通过使用 sizemultiple 属性,<select> 元素可以呈现为页面内列表框或带有弹出式菜单的按钮。不过,这些模式在移动版 Chrome 和桌面版 Chrome 中的可用性并不一致。在移动设备上,无法呈现网页内列表框;在桌面设备上,如果存在 multiple 属性,则无法呈现带弹出式窗口的按钮。

此更新为移动设备添加了列表框,为桌面设备添加了多选弹出式窗口,并确保具有 sizemultiple 属性的选择启用在移动设备和桌面设备上产生相同的呈现模式。变更总结如下:

  • size 属性的值大于 1 时,系统始终使用网页内呈现。移动设备之前会忽略此设置。
  • 当设置了 multiple 属性但未设置 size 属性时,系统会使用网页内呈现。移动设备之前使用的是弹出式窗口,而不是网页内列表框。
  • multiple 属性设置为 size=1 时,系统会使用弹出式窗口。桌面设备之前使用过网页内列表框。

在同源渲染器发起的导航中,用户激活状态保持不变

在网页导航到另一个同源网页后,Chrome 会保留粘滞用户激活状态。由于导航后的页面中缺少用户激活,因此无法实现某些使用情形,例如在自动聚焦时显示虚拟键盘。这阻碍了想要基于 SPA 构建 MPA 的开发者。

这不包括浏览器发起的导航请求(重新加载、历史记录导航、在地址栏中输入的网址等)。

Web API

WebGPU:primitive_index 功能

WebGPU 添加了一项新的可选功能,该功能公开了一个新的 WGSL 着色器内置函数 primitive_index。它在受支持的硬件上为片段着色器提供每个图元的索引,类似于 vertex_indexinstance_index 内置函数。基元索引对于虚拟化几何图形等高级图形技术非常有用。

WebGPU:纹理格式层级 1 和层级 2

通过渲染附件、混合、多重采样、解析和 storage_binding 等功能扩展 GPU 纹理格式支持。

针对 insertFromPasteinsertFromDropinsertReplacementText 输入事件的 DataTransfer 属性

使用 insertFromPasteinsertFromDropinsertReplacementTextinputType 值填充输入事件的 dataTransfer 属性,以便在 contenteditable 元素中进行编辑操作期间访问剪贴板和拖放数据。

dataTransfer 对象包含 beforeinput 事件期间可用的相同数据。

此功能仅适用于 contenteditable 元素。对于表单控件((textareainput),行为保持不变。

此属性使 Chrome 可与 Safari 和 Firefox 互操作。

媒体会话:向 enterpictureinpicture 操作详情添加原因

向媒体会话 API 中发送到 enterpictureinpicture 操作的 MediaSessionActionDetails 添加了 enterPictureInPictureReason。这样一来,开发者就可以区分用户明确触发的 enterpictureinpicture 操作(例如,通过用户代理中的按钮触发)和用户代理因内容被遮挡而自动触发的 enterpictureinpicture 操作。

Web Speech API 上下文偏差

此更新通过向 Web Speech API 添加识别短语列表,使网站能够支持语音识别的情境纠偏。

开发者可以提供短语列表并更新这些短语,以便使语音识别模型偏向于识别这些短语。这有助于提高特定领域和个性化语音识别的准确性和相关性。

针对 JSON 模块实施更严格的 *+json MIME 令牌验证

如果 JSON 模块脚本响应的 MIME 类型(类型或子类型)包含非 HTTP 令牌代码点(例如空格),则在与 *+json 匹配时拒绝该响应。这与 MIME 类型检测规范和其他引擎保持一致。它是 Interop2025 模块重点领域的一部分。

FedCM - 支持在界面中显示第三方 iframe 源

在 Chrome 142 之前,FedCM 始终在其界面中显示顶级网站。

当 iframe 在概念上属于第一方时,此方法效果很好(例如,foo.com 可能具有 iframe foostatic.com,这对用户来说没有意义)。

但如果 iframe 实际上是第三方 iframe,最好在界面中显示 iframe 源,以便用户更好地了解他们要与谁分享自己的凭据。例如,照片编辑器可能嵌入在图书出版 Web 应用中,并且可能希望让用户访问之前使用该照片编辑器存储的文件。此功能现已推出。

以源为键的进程隔离

将进程隔离政策从将进程锁定到网站(例如 example.com)更改为将进程锁定到特定源(例如 foo.example.com)。

为了进一步增强安全性,Chrome 正在改用一种更精细的进程隔离模型,称为“源隔离”。Chrome 采用“网站隔离”功能,将同一网站的不同源站(例如 a.example.comb.example.com)分组到一个渲染器进程中。

借助源隔离功能,每个单独的源(例如 https://foo.example.com)都会在自己的渲染器进程中隔离。它通过将进程边界与基于来源的 Web 基本安全模型相协调,增强了 Chrome 的安全架构,从而更好地防范网站中潜在的漏洞。

仅在安全上下文中公开的可互操作的 pointerrawupdate 事件

PointerEvents 规范在 2020 年将 pointerrawupdate 限制为安全上下文,从而向不安全上下文隐藏事件触发和全局事件监听器。在此更新中,Chrome 符合更新后的规范,并可与其他主流浏览器互操作。

正在进行的源试用

在 Chrome 142 中,您可以选择加入以下新的源试用

设备绑定会话凭据

一种让网站能够安全地将会话绑定到单个设备的方式。

它可让服务器将某个会话安全地绑定到设备。当服务器请求时,浏览器会定期续订会话,并提供私钥的所有权证明。

每个顶级网域的 TCP 套接字池

此实验评估了以下更改的影响:将每个配置文件的 TCP 套接字池大小从 256(默认值)更改为 513,同时添加每个顶级网站 256 的上限(以确保没有两个标签页可以耗尽池)。我们研究了将每个配置文件的限制提高到 512 的可行性,结果表明不会产生负面影响。每个顶级网域的上限为 256,与每个配置文件的默认限制相同,因此不应会对性能产生负面影响。这些限制是针对 WebSocket 池和常规 (HTTP) 套接字池分别施加的。

如果未出现负面影响,则直接启动此实验。