发布时间: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 过渡,其中对象仅通过 pageswap
和 pagereveal
事件提供。在此更新中,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>
元素之间的一致行为,并改善开发者体验和用户预期。
部分元素呈现模式在移动设备和桌面设备上的对等性
通过使用 size
和 multiple
属性,<select>
元素可以呈现为页面内列表框或带有弹出式菜单的按钮。不过,这些模式在移动版 Chrome 和桌面版 Chrome 中的可用性并不一致。在移动设备上,无法呈现网页内列表框;在桌面设备上,如果存在 multiple
属性,则无法呈现带弹出式窗口的按钮。
此更新为移动设备添加了列表框,为桌面设备添加了多选弹出式窗口,并确保具有 size
和 multiple
属性的选择启用在移动设备和桌面设备上产生相同的呈现模式。变更总结如下:
- 当
size
属性的值大于1
时,系统始终使用网页内呈现。移动设备之前会忽略此设置。 - 当设置了
multiple
属性但未设置size
属性时,系统会使用网页内呈现。移动设备之前使用的是弹出式窗口,而不是网页内列表框。 - 当
multiple
属性设置为size=1
时,系统会使用弹出式窗口。桌面设备之前使用过网页内列表框。
在同源渲染器发起的导航中,用户激活状态保持不变
在网页导航到另一个同源网页后,Chrome 会保留粘滞用户激活状态。由于导航后的页面中缺少用户激活,因此无法实现某些使用情形,例如在自动聚焦时显示虚拟键盘。这阻碍了想要基于 SPA 构建 MPA 的开发者。
这不包括浏览器发起的导航请求(重新加载、历史记录导航、在地址栏中输入的网址等)。
Web API
WebGPU:primitive_index
功能
WebGPU 添加了一项新的可选功能,该功能公开了一个新的 WGSL 着色器内置函数 primitive_index
。它在受支持的硬件上为片段着色器提供每个图元的索引,类似于 vertex_index
和 instance_index
内置函数。基元索引对于虚拟化几何图形等高级图形技术非常有用。
WebGPU:纹理格式层级 1 和层级 2
通过渲染附件、混合、多重采样、解析和 storage_binding 等功能扩展 GPU 纹理格式支持。
针对 insertFromPaste
、insertFromDrop
和 insertReplacementText
输入事件的 DataTransfer 属性
使用 insertFromPaste
、insertFromDrop
和 insertReplacementText
的 inputType
值填充输入事件的 dataTransfer
属性,以便在 contenteditable 元素中进行编辑操作期间访问剪贴板和拖放数据。
dataTransfer
对象包含 beforeinput
事件期间可用的相同数据。
此功能仅适用于 contenteditable 元素。对于表单控件((textarea
、input
),行为保持不变。
此属性使 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.com
和 b.example.com
)分组到一个渲染器进程中。
借助源隔离功能,每个单独的源(例如 https://foo.example.com
)都会在自己的渲染器进程中隔离。它通过将进程边界与基于来源的 Web 基本安全模型相协调,增强了 Chrome 的安全架构,从而更好地防范网站中潜在的漏洞。
仅在安全上下文中公开的可互操作的 pointerrawupdate
事件
PointerEvents 规范在 2020 年将 pointerrawupdate
限制为安全上下文,从而向不安全上下文隐藏事件触发和全局事件监听器。在此更新中,Chrome 符合更新后的规范,并可与其他主流浏览器互操作。
正在进行的源试用
在 Chrome 142 中,您可以选择加入以下新的源试用。
设备绑定会话凭据
一种让网站能够安全地将会话绑定到单个设备的方式。
它可让服务器将某个会话安全地绑定到设备。当服务器请求时,浏览器会定期续订会话,并提供私钥的所有权证明。
每个顶级网域的 TCP 套接字池
此实验评估了以下更改的影响:将每个配置文件的 TCP 套接字池大小从 256(默认值)更改为 513,同时添加每个顶级网站 256 的上限(以确保没有两个标签页可以耗尽池)。我们研究了将每个配置文件的限制提高到 512 的可行性,结果表明不会产生负面影响。每个顶级网域的上限为 256,与每个配置文件的默认限制相同,因此不应会对性能产生负面影响。这些限制是针对 WebSocket 池和常规 (HTTP) 套接字池分别施加的。
如果未出现负面影响,则直接启动此实验。