Chrome 125

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

除非另有说明,否则以下变更适用于 Chrome 125 稳定版 渠道版本。

HTML 和 DOM

声明式 shadow DOM 序列化

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

跟踪 bug #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 取余运算符 (%)。余数是指当一个运算数(被除数) 除以第二个操作数(除数)。它始终采用被除数的符号。

跟踪 bug #40253179 | ChromeStatus.com 条目 | 规范

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

CSS 自定义状态可让自定义元素公开自己的伪类。通过 CSSWG 中现已指定语法,而 Chrome 125 现在支持新的 语法 :state(foo)。在此次变更生效之前,Chrome 将同时支持旧语法 (:--foo) 和新语法,以便网站能够切换到新语法。

ChromeStatus.com 条目 | 规格

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

在此更改之前,所有亮度值为 100% 的 Lab、LCH、Oklab 和 Oklch 颜色都会呈现为白色,无论其他两个参数如何。在这些色彩空间中,亮度值为 0 的所有颜色都呈现为黑色。这两个映射导致了渐变中断,这对 Web 开发者来说是意料之外的。

回滚后,系统便不会再人为映射这些颜色, 显示的颜色将与相邻的颜色相连接,并取决于 显示屏的色域映射。

ChromeStatus.com 条目 | 规范

使用了配色方案根滚动条

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

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

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

view-transitions

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

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

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

正在加载

在构建 WebSocket 时接受 HTTP 和 HTTPS 网址

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

跟踪 bug #325979102 | ChromeStatus.com 条目 | 规范

Web API

Attribution Reporting API 中的新增内容

Attribution Reporting API 中新增了一些功能, 通过支持解析失败调试报告实现调试功能,改进 API 通过支持字段来指定首选注册平台来满足工效学设计需求;以及 加强隐私保护。

ChromeStatus.com 条目

Compute Pressure API

Compute Pressure API 提供表示系统 CPU 负载的高级状态。它允许 使用合适的底层硬件指标,确保用户 可以充分利用可供他们使用的所有处理能力,但前提是 系统并没有无法控制的压力。

Intel 主导了此 API 的设计和实现工作, 这样,视频会议应用就可以 性能

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

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

跟踪 bug #40282415 | ChromeStatus.com 条目 | 规范

ID 断言端点的 FedCM CORS 要求

FedCM API 中的提取难以推断,因为其属性 它们的必要性。虽然我们仍在就账号端点进行讨论,但大多数人也认为 ID 断言端点应使用 CORS。此次更新使此次提取的安全属性更贴近 网络平台中的其他抓取操作。

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

FedCM 现在会使用 CORS 发送 ID 断言请求。这项变更意味着,Chrome 不再向 ID 断言端点发送 SameSite=Strict Cookie,但仍会发送 SameSite=None。由于发送 将一组不同的 Cookie 添加到账号端点和 ID 断言 那么此更改会使其保持一致。

不发送 SameSite=Strict Cookie 也与 requestStorageAccess 行为和一般跨网站请求一致。

跟踪 bug #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 适用于第 1 个替代方案 ((?<year>[0-9]{4})-[0-9]{2}) 或第 2 个替代方案 ([0-9]{2}-(?<year>[0-9]{4}))。

ChromeStatus.com 条目 | 规范

Chrome 应用

Chrome 应用中的 Direct Sockets API

此更新通过在 Chrome 应用中启用直接套接字,让网络应用能够与网络设备和系统建立直接传输控制协议 (TCP) 和用户数据报协议 (UDP) 通信,从而帮助专用应用从 Chrome 应用顺利过渡到隔离的 Web 应用。

ChromeStatus.com 条目 | 规范

新的来源试用

FedCM Button Mode API 和使用其他 Account API

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

借助 Button Mode API,网站可以在点击按钮时调用 FedCM,例如 点击 Sign-in to IdP(登录 IdP)按钮。这要求 FedCM 保证始终以可见的界面响应,而非采用 widget 模式(在用户退出登录时不会显示界面)。在 中调用 FedCM API 按钮模式会让用户在对话框窗口中登录 IdP, 未登录账号。

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

通过使用“使用其他账号”API,身份提供者可以让用户登录 其他账号。

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

可折叠设备 API

此源试用包括 Device Posture API 和视口细分 Enumeration API。这些 API 旨在帮助开发者定位到可折叠设备。

源代码测试 | 可折叠设备 API 的源代码测试 | ChromeStatus.com 条目 | 规范

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

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

Origin Trial | ChromeStatus.com 条目

跳过预加载扫描

跳过预加载扫描器,以探索没有提取子资源的网页的性能权衡。

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

对于希望通过减少此开销来获益的高级 Web 用户,此实验提供了网页级控件来停用预加载扫描器。通过此实验收集的数据可以评估修改后的 API 或 HTML 预加载扫描器的其他实现是否有用。

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

弃用和移除

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

移除了权限和权限政策“window-management”的“window-placement”别名。这是我们为最终废弃并移除“window-placement”而进行的一项更大计划的一部分。术语更改可延长描述符的寿命,因为 Window Management API 一直在不断发展。

title | 跟踪 bug #40842072 | ChromeStatus.com 条目 | 规范

移除 Enterprise 政策:NewBaseUrlInheritanceBehaviorAllowed

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

ChromeStatus.com 条目

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

带前缀的 HTMLVideoElement 全屏 API 已被弃用, Chrome 38。它们已被 Element.requestFullscreen() 取代,后者首次在 2018 年的 Chrome 71 中以不带前缀的形式发布。

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

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen()(请注意, FullScreen)
  • webkitExitFullScreen()

如果您的网站仍在使用这些功能,并且您需要更多时间来更新代码,请注册本帖子中列出的弃用试用计划

ChromeStatus.com 条目

深入阅读

希望了解更多信息?请查看以下其他资源。

下载 Google Chrome

下载 Android桌面版iOS 版 Chrome。