Chrome 125

稳定版发布日期:2024 年 5 月 14 日

除非另有说明,否则以下变更适用于适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 125 稳定版。

HTML 和 DOM

声明式 shadow DOM 序列化

一项功能,可让开发者对包含影子根的 DOM 树进行序列化,这是最近在 HTML 标准中标准化的。

跟踪错误 41490936 | ChromeStatus.com 条目 | 规范

CSS

CSS 锚点定位

借助 CSS 锚点定位功能,开发者可以以声明方式将绝对定位的元素绑定到页面上的一个或多个其他元素(即锚点),而无需使用 JavaScript。当锚点可滚动时,锚点定位可以高效地工作。一种常见的使用场景是放置弹出式窗口,例如在调用该窗口的元素旁边显示提示,或者放置选择菜单及其弹出式窗口选项列表。在推出锚点定位功能之前,这些用例需要 JavaScript 动态定位弹出式窗口,并在调用的元素滚动时让弹出式窗口保持锚定状态,这是性能提升且很难保证的结果。借助锚点定位,可以通过声明方式高效地实现这些用例。

锚点定位功能包含大量 CSS 属性。其中一些关键属性如下所示:

  • anchor-name:将某个元素设置为其他元素的锚点。
  • position-anchor:描述锚定元素应用于定位的“默认”锚点。
  • anchor() 函数:用于在定位锚定元素时引用锚点元素的位置。
  • inset-area:定位的简写形式,表示常见的相对位置。

全新推出 CSS Anchor Positioning API | 跟踪错误 #40059176 | ChromeStatus.com 条目 | 规范

CSS 阶梯值函数 - round()mod()rem()

阶梯值函数 round()mod()rem() 均根据另一个“步长值”转换给定值。

round() CSS 函数会根据所选的舍入策略返回一个舍入数字。

mod() CSS 函数会返回第一个参数除以第二个参数时剩余的模数,类似于 JavaScript 余数运算符 (%)。模数是当一个运算数(即被除数)除以第二个运算数(除数)后所剩下的值。它始终使用除数的符号。

rem() CSS 函数会返回在第一个参数除以第二个参数时剩余的余数,类似于 JavaScript 余数运算符 (%)。余数是当一个操作数(即被除数)除以第二个运算数(除数)时剩余的值。它始终使用被除数的符号。

跟踪错误 40253179 | ChromeStatus.com 条目 | 规范

CSS 自定义 :state() 的新语法

CSS 自定义状态允许自定义元素公开自己的伪类。现在,该语法已在 CSSWG 中指定,Chrome 125 现在支持新的语法 :state(foo)。此更改将有一个窗口,Chrome 将在此窗口中同时支持旧语法 (:--foo) 和新语法,以便网站可以切换到新语法。

ChromeStatus.com 条目 | 规范

消除了 Oklab 和 Oklch 颜色的不连续性,使亮度接近 100% 或 0

在进行此变更之前,无论其他两个参数如何,所有亮度值为 100% 的 Lab、LCH、Oklab 和 Oklch 颜色都会渲染为白色。这些空间中亮度值为 0 的所有颜色都渲染为黑色。这两种映射导致了梯度不连续,对 Web 开发者来说是意想不到的。

进行此回滚后,这些颜色将不再人为映射,并且生成的显示颜色将与附近的颜色连续,并取决于显示屏的色域映射。

ChromeStatus.com 条目 | 规范

使用了配色方案根滚动条

如果“页面支持的配色方案”的值为“normal”或未指定,并且根元素的 color-scheme 计算值为 normal,则让浏览器使用用户的首选配色方案来呈现视口滚动条。视口滚动条可以被视为位于 Web 内容之外。因此,如果开发者未明确指定对配色方案的支持,用户代理在呈现视口滚动条时应遵从用户的首选配色方案。

此变更不会阻止开发者控制滚动条的配色方案。新行为使浏览器仅在开发者尚未指定根元素的配色方案时,才会使用用户的首选配色方案来呈现视口非叠加滚动条。

title | 跟踪错误 #40259909 | ChromeStatus.com 条目 | 规范

view-transitions

您可以通过新的 CSS 属性 view-transition-class 指定一个或多个视图转换类。然后,您可以使用这些类(例如 ::view-transition-group(*.class))选择 ViewTransition 伪元素。

这是对 ViewTransition API 的扩展,可简化视图转换伪元素的样式设置,方式类似于 CSS 类简化常规 DOM 元素的样式设置。

跟踪错误 41492972 | ChromeStatus.com 条目 | 规范

正在加载

构建 WebSocket 时接受 HTTP 和 HTTPS 网址

此更新在 WebSocket 构造函数中启用了 HTTP 和 HTTPS 架构,因此开发者可以使用相对网址。这些架构已标准化为 ws:wss: 内部架构。

跟踪错误 325979102 | ChromeStatus.com 条目 | 规范

Web API

Attribution Reporting API 的新增内容

Attribution Reporting API 中新增了一些功能,以便通过支持解析失败调试报告来创建额外的调试功能,通过支持字段来指定首选注册平台来改进 API 工效学设计,以及加强隐私保护。

ChromeStatus.com 条目

Compute Pressure API

Compute Pressure API 可提供表示系统 CPU 负载的概要状态。它允许实现使用正确的底层硬件指标,以确保用户能够利用所有可用的处理能力,前提是系统不会承受过多的压力。

Intel 主导了该 API 的设计和实现工作,该 API 使视频会议应用能够动态平衡功能和性能。

Compute Pressure API | 跟踪错误 #40683064 | ChromeStatus.com 条目 | 规范

这将启动拟定的 Storage Access API 扩展项(向后兼容,并已进行源试用),以允许在第三方环境中访问未分区的 Cookie 和非 Cookie 存储。当前的 API 仅提供对 Cookie 的访问权限,Cookie 的使用场景与非 Cookie 存储不同。

跟踪错误 40282415 | ChromeStatus.com 条目 | 规范

针对 ID 断言端点的 FedCM CORS 要求

FedCM API 中的提取很难推断,因为其必需的属性。虽然关于帐号端点正在讨论,但大家也基本一致地认为,ID 断言端点应使用 CORS。此更新使此提取操作的安全属性与 Web 平台中的其他提取更加一致。

FedCM 更新:Button Mode API 源试用、CORS 和 SameSite | 跟踪错误 #40284123 | ChromeStatus.com 条目

FedCM 现在使用 CORS 发送 ID 断言请求。这项变更意味着,Chrome 不再向 ID 断言端点发送 SameSite=Strict Cookie,但 Chrome 仍会发送 SameSite=None。由于向帐号端点和 ID 断言端点发送一组不同的 Cookie 没有意义,因此这项更改使它们保持一致。

总体而言,不发送 SameSite=Strict Cookie 与 requestStorageAccess 行为和跨网站请求也是一致的。

跟踪错误 329145816 | ChromeStatus.com 条目 | 规范

可互操作的 mousemove 默认操作

Chrome 允许取消 mousemove 事件,以防止文本选择(过去甚至包含拖放)等其他 API。这不符合其他主要浏览器;也不符合界面事件规范。现在,文本选择将不再是 mousemove 的默认操作。您仍然可以通过分别取消 selectstartdragstart 事件来阻止文本选择和拖放。

从 Chrome 125 开始,此功能将逐步推出,预计在 Chrome 126 之前将面向所有用户提供。

演示 | 跟踪 bug 40078978 | ChromeStatus.com 条目 | 规范

正则表达式修饰符

正则表达式修饰符增加了在本地修改模式中的 ims 标志的功能。

如需为子表达式启用标志,请使用 (?X:subexpr),其中 Xims 中的一个。如需停用子表达式的标志,请使用 (-X:subexpr)

例如,对于不区分大小写的 i 标志:

const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false

const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false

ChromeStatus.com 条目 | 规范

正则表达式重复命名的捕获组

通过重复的已命名捕获组,您可以在多个备选方案中使用相同的捕获组名称。例如:

const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;

在这种情况下,year 对第一个备选项 ((?<year>[0-9]{4})-[0-9]{2}) 或第二个备选项 ([0-9]{2}-(?<year>[0-9]{4})) 都有效。

ChromeStatus.com 条目 | 规范

Chrome 应用

Chrome 应用中的 Direct Sockets API

此更新在 Chrome 应用中启用直接套接字,让 Web 应用能够与网络设备和系统建立直接传输控制协议 (TCP) 和用户数据报协议 (UDP) 通信,从而帮助从 Chrome 应用轻松转换到独立 Web 应用。

ChromeStatus.com 条目 | 规范

新的源试用

FedCM Button Mode API 和 Use Other Account API

此源试用包含以下两个 FedCM API。

借助 Button Mode API,网站可以在点击按钮时(例如点击 Sign-in to IdP 按钮)内调用 FedCM。这需要 FedCM 保证它始终使用可见的界面进行响应,这与 widget 模式相反,在 widget 模式下,当用户退出登录时不会显示界面。在按钮模式下调用 FedCM API 时,系统会在用户退出后,让用户登录 IdP(在对话框窗口中)。

此外,由于系统会在显式用户手势中调用按钮模式,因此与 widget 模式中的界面(没有此类明确的 intent)相比,界面可能更显眼(例如,居中和模态界面)。如需详细了解 Button Mode API 的工作原理,请参阅 FedCM 更新:Button Mode API 源试用、CORS 和 SameSite

借助 Use Other Account API,身份提供方允许用户登录其他帐号。

源试用 | 演示 | 跟踪错误 40284792 | ChromeStatus.com 条目 | 规范

Foldable API

此源试用包括 Device Posture API 和 Viewportsegment Enumeration API。这些 API 旨在帮助开发者以可折叠设备为目标。

源试用 | 可折叠 API 源试用 | ChromeStatus.com 条目 | 规格

弃用带有前缀的 HTMLVideoElement Fullscreen 属性和方法的试用版

通过这次弃用试用,如果您需要更多时间来调整代码,可以选择重新支持带前缀的 HTMLVideoElement 属性和方法。

源试用 | ChromeStatus.com 条目

跳过预加载扫描

跳过预加载扫描程序,探索不提取子资源的网页的性能权衡。

预加载扫描程序步骤通过实现推测性预提取,提高包含子资源提取的网页的性能。不过,对于此步骤无法获益的网页(即没有子资源的网页),这是额外的处理开销,几乎没有什么好处。

对于希望通过减少这种开销并从中受益的高级 Web 用户,此实验提供一种网页级控件,用于停用预加载扫描程序。通过本实验收集的数据,您可以评估修改后的 API 或其他 HTML 预加载扫描程序实现是否有帮助。

源试用 | 跟踪错误 330802493 | ChromeStatus.com 条目 | 规范

弃用和移除

移除了权限和权限政策“window-management”的“window-placement”别名

移除了权限和权限政策“window-management”的“window-placement”别名。通过最终废弃并移除“window-placement”,我们对字符串进行了重命名,这项工作是其中的一项工作。随着 Window Management API 随时间的推移而不断发展,术语变化会提升描述符的持久性。

title | 跟踪错误 40842072 | ChromeStatus.com 条目 | 规范

移除“企业”政策:NewBaseUrlInheritanceBehaviorAllowed

自 2023 年 8 月 (Chrome 118) 起,这项企业政策覆盖功能已实现在稳定版本中启用的底层代码更改(启用新的基准网址继承行为)。由于已知问题已得到解决,因此该企业政策已从 Chrome 125 中移除。

ChromeStatus.com 条目

移除了带前缀的 HTMLVideoElement Fullscreen 属性和方法

从 Chrome 38 开始,带有前缀 HTMLVideoElement 的全屏 API 已被废弃。这些 API 已被 Element.requestFullscreen() 取代,后者于 2018 年在 Chrome 71 中首次推出了不带前缀的功能。

以下属性和方法将从 HTMLVideoElement 中移除:

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen()(请注意“S”在全屏模式中的大小写不同)
  • webkitExitFullScreen()

如果您的网站仍依赖于这些功能,并且您需要更多时间来更新代码,请注册参加本博文中列出的弃用试用

ChromeStatus.com 条目

深入阅读

希望了解更多信息?查看这些其他资源。

下载 Google Chrome

下载 Android 版、桌面版iOS 版 Chrome。