Chrome 125 Beta 版

除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版。如需详细了解此处列出的功能,请通过所提供的链接或 ChromeStatus.com 上的列表详细了解。Chrome 125 Beta 版自 2024 年 4 月 17 日起进入 Beta 版阶段。您可以访问 Google.com(桌面版)或 Google Play 商店(Android 版)下载最新版本。发布为稳定版后,其中包含的所有功能都可以在版本说明中找到。

CSS

此版本新增了两项 CSS 功能,并进行了两项与 CSS 相关的更改。

CSS 锚点定位

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

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

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

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

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

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

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

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

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

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

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

使用了配色方案根滚动条

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

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

HTML

支持键盘聚焦的滚动容器

通过使用顺序焦点导航使滚动容器可聚焦,改进了无障碍功能。在此变更之前,除非 tabIndex 明确设置为 0 或更大值,否则 Tab 键不会聚焦滚动条。

将滚动条默认设置为可聚焦后,无法(或不想)使用鼠标的用户将可以使用键盘的 Tab 键和箭头键聚焦于剪辑的内容。仅当滚动条不含任何键盘可聚焦的子项时,系统才会启用此行为。

这是一项持续进行的发布,从 Chrome 124 开始,应该已面向 Chrome 125 中的所有用户推出。详细了解键盘可聚焦滚动条

声明式 shadow DOM 序列化

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

Web API

Attribution Reporting API 的新增内容

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

Compute Pressure API

Compute Pressure API 可提供表示系统 CPU 负载的概要状态。它允许实现使用正确的底层硬件指标,以确保用户能够利用所有可用的处理能力,前提是系统不会承受过多的压力。Intel 主导了该 API 的设计和实现工作,该 API 可让视频会议应用动态平衡功能和性能。

构建 WebSocket 时接受 HTTP(S) 网址

此更新在 WebSocket 构造函数中启用 HTTP(s) 架构,因此也允许开发者使用相对网址。系统会将这些架构标准化为 ws:wss: 内部架构。

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

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

FedCM API 中的提取很难推断,因为其必需的属性。虽然关于帐号端点正在讨论,但大家也基本一致地认为,ID 断言端点应使用 CORS。此更新使此提取操作的安全属性与 Web 平台中的其他提取更加一致。如需详细了解 CORS 要求的工作原理,请参阅 FedCM 更新:Button Mode API 源试用、CORS 和 SameSite

可互操作的 mousemove 默认操作

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

Shared Storage API 更新

此更新增加了对运行跨源 Worklet 而不必创建 iframe 的支持。

Chrome 应用

Chrome 应用中的 Direct Sockets API

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

新的源试用

从 Chrome 125 开始,您可以选择启用以下新的源试用

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,身份提供方允许用户登录其他帐号。

注册 FedCM 源试用

Foldable API

此源试用包括 Device Posture API 和 Viewportsegment Enumeration API。这些 API 旨在帮助开发者以可折叠设备为目标。如需了解详情,请参阅 Foldable API 源试用

注册可折叠 API 源试用

选择停用媒体预览

此反向源试用将使网站无法发布媒体预览。

Chrome 打算在网站请求摄像头和麦克风权限时,提供摄像头和麦克风输入的实时预览。您也可以通过网站的 pageinfo 查看这些信息。

此外,拥有多台设备的用户将能够在请求权限时选择摄像头和麦克风,除非网站已通过 getUserMedia() 请求使用特定设备。

此功能正在与另一个权限相关项目“页面嵌入式权限控制 (PEPC)”一起开发。用户将按照涉及单独的源试用或网站特定实验的独立启动流程接触 PEPC。

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

通过这次弃用试用,如果您需要更多时间来调整代码,可以选择重新支持带前缀的 HTMLVideoElement 属性和方法。如需查看已移除的属性和方法的完整详情,请参阅弃用和移除

注册以弃用带前缀的视频全屏 API 的试用版

跳过预加载扫描

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

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

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

注册跳过预加载扫描源试用

弃用和移除

请访问 ChromeStatus.com,查看计划弃用、当前弃用和之前移除的内容列表。

此版本的 Chrome 移除了以下三个功能。

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

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

移除企业政策:NewBaseUrlInheritanceBehaviorAllowed

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

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

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

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

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

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