Chrome 140

稳定版发布日期:2025 年 9 月 2 日

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

CSS

CSS 类型化算术

借助类型化算术,您可以在 CSS 中编写 calc(10em / 1px)calc(20% / 0.5em * 1px) 等表达式。这在排版方面非常有用,因为它可以让您将已输入类型的值转换为未输入类型的值,并将其重新用于接受数字的属性。另一种使用情形是将无单位值乘以另一种类型。例如,您现在可以从像素转换为度。

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

CSS caret-animation 属性

Chromium 支持 caret-color 属性的动画效果。不过,在动画效果下,光标的默认闪烁行为会干扰动画。

CSS caret-animation 属性有两个可能的值:automanualauto 表示浏览器默认值(闪烁),manual 表示开发者控制光标动画。此外,如果用户对闪烁的视觉效果感到不适或有不良反应,可以使用用户样式表停用闪烁效果。

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

highlightsFromPoint API

借助 highlightsFromPoint API,开发者可以与自定义精彩集锦互动。 它会检测文档中特定位置是否存在突出显示。这种互动性对于多个突出显示可能重叠或存在于 shadow DOM 中的复杂 Web 功能非常有用。该 API 可提供基于精确点的精彩片段检测,使开发者能够更有效地管理与自定义精彩片段的动态互动。例如,开发者可以响应突出显示区域中的用户点击或悬停事件,以触发自定义工具提示、上下文菜单或其他互动功能。

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

ScrollIntoView 容器选项

借助 ScrollIntoViewOptions 容器选项,开发者可以执行仅滚动最近的祖先滚动容器的 scrollIntoView 操作。例如,以下代码段仅滚动 target 的滚动容器以使 target 进入视图,但不会将所有滚动容器滚动到视口:

target.scrollIntoView({container: 'nearest'});

ChromeStatus.com 条目 | 规范

视图过渡:继承更多动画属性

添加了更多动画属性,以便通过视图过渡伪树进行继承:

  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

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

视图过渡伪元素会继承 animation-delay。

除了之前的更新之外,animation-delay 属性现在还可通过视图转换伪树进行继承。

ChromeStatus.com 条目 | 规范

嵌套视图转换组

此功能允许视图转换生成嵌套的伪元素树,而不是扁平的伪元素树。这样一来,视图过渡效果会更符合其原始元素和视觉意图。它支持剪裁、嵌套 3D 转换,并能正确应用不透明度、遮罩和滤镜等效果。

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

从根传播视口 overscroll-behavior

此更改会从根(而非正文)传播 overscroll-behavior

CSS 工作组已决定不将属性从 <body> 传播到视口。相反,视口的属性会从根 (<html>) 元素传播。因此,overscroll-behavior 应从根元素传播。不过,Chrome 存在一个长期存在的问题:它会从 <body> 而不是根传播 overscroll-behavior。此行为与其他浏览器不兼容。此更改使 Chrome 符合规范,并与其他实现实现互操作。

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

content 属性的替代文本中的 CSS counter()counters()

此功能添加了在 content 属性的替代文本中使用 counter()counters() 的功能。这可提供更有意义的信息,以提升无障碍功能。

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

CSS scroll-target-group 属性

scroll-target-group 属性用于指定元素是否为滚动标记组容器。它接受下列值之一:

  • “none”:元素不建立滚动标记组容器。
  • “auto”:元素会建立一个滚动标记组容器,该容器包含所有滚动标记元素,而该元素是这些滚动标记元素最近的祖先滚动标记组容器。

建立滚动标记组容器后,任何具有片段标识符且位于此类容器内的锚 HTML 元素都将成为 ::scroll-marker 伪元素的 HTML 等效项。可以使用 :target-current 伪类设置滚动目标当前位于视图中的锚元素的样式。

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

支持 @font-face 规则中的 font-variation-settings 描述符

借助 CSS,开发者可以使用各个元素上的 font-variation-settings 属性来调整字体的粗细、宽度、倾斜度和其他轴。不过,基于 Chromium 的浏览器不支持 @font-face 声明中的此属性。此功能支持 CSS 字体级别 4 中定义的基于字符串的 font-variation-settings 语法。根据规范,系统会忽略无效或无法识别的功能标记。不支持二进制或非标准形式。可变字体在性能和排版灵活性方面都越来越受欢迎。在 Chromium 中添加对该描述符的支持可增强控制能力、减少重复,并支持更具可伸缩性的现代 Web 排版方法。

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

DOM

ToggleEvent 来源属性

ToggleEventsource 属性包含触发 ToggleEvent 的元素(如果适用)。例如,如果用户点击设置了 popovertargetcommandfor 属性的 <button> 元素以打开弹出式窗口,则在弹出式窗口上触发的 ToggleEvent 的 source 属性将设置为调用 <button>

ChromeStatus.com 条目 | 规范

独立式 Web 应用 (IWA)

Controlled Frame API(仅适用于 IWA)

此功能添加了仅适用于独立式 Web 应用 (IWA) 的 Controlled Frame API。与在其他平台上具有类似名称的 API 一样,受控框架允许嵌入所有内容,甚至包括无法嵌入到 <iframe> 中的第三方内容。Controlled Frame 还允许使用一系列 API 方法和事件来控制嵌入的内容。如需详细了解独立式 Web 应用,请参阅独立式 Web 应用说明

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

JavaScript

Uint8Array 与 base64 和十六进制之间的转换

Base64 是一种将任意二进制数据表示为 ASCII 的常用方式。JavaScript 具有用于二进制数据的 Uint8Arrays。不过,它缺少将该数据编码为 base64 的内置机制,也缺少获取 base64 数据并生成相应 Uint8Array 的机制。此功能添加了在十六进制字符串和 Uint8Arrays 之间进行转换的功能和方法。

ChromeStatus.com 条目 | 规范

查看转换完成承诺时间变更

当前已完成的 promise 的时序发生在渲染生命周期步骤中。这意味着,因 Promise 解析而运行的代码会在生成移除视图过渡效果的视觉帧之后运行。如果脚本移动样式以保持视觉上相似的状态,则可能会在动画结束时导致闪烁。此变更通过将视图过渡清理步骤移至生命周期完成后异步运行来解决此问题。

跟踪 bug #430018991 | ChromeStatus.com 条目

Web API

ReadableStreamBYOBReader min 选项

此功能为现有的 ReadableStreamBYOBReader.read(view) 方法引入了 min 选项。该方法已接受一个 ArrayBufferView(用于读取数据),但目前无法保证在读取解析之前写入了多少个元素。通过指定 min 值,您可以要求流在至少有相应数量的元素可用之前等待,然后再解析读取。这改进了当前行为,即读取操作可能会解析出比视图可容纳的元素更少的元素。

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

Get Installed Related Apps API (navigator.getInstalledRelatedApps) 可让网站访问其对应的相关应用是否已安装。仅当应用与 Web 来源建立关联后,网站才能使用此 API。

该 API 已在 Chrome 80 中针对 Android 推出。Chrome 140 中新增了对桌面设备上 Web 应用的支持。

文档 | 跟踪 bug #895854 | ChromeStatus.com 条目 | 规范

在某些情况下,在服务器端区分服务器设置的 Cookie 和客户端设置的 Cookie 非常重要。其中一种情况涉及通常始终由服务器设置的 Cookie。不过,意外代码(例如 XSS 漏洞利用、恶意扩展程序或糊涂的开发者的提交)可能会在客户端上设置这些 cookie。此提案添加了一个信号,可让服务器做出此类区分。更具体地说,它定义了 __Http__HostHttp 前缀,可确保不会在客户端使用脚本设置 Cookie。

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

Service Worker

SharedWorker 脚本继承了 blob 脚本网址的控制器

规范指出,worker 应继承 blob 网址的控制器。不过,现有代码仅允许专用工作器继承控制器,而共享工作器则不允许。此问题修复了 Chrome 的行为,使其与规范保持一致。SharedWorkerBlobURLFixEnabled 企业政策控制着此功能。

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

添加ServiceWorkerStaticRouterTimingInfo

此功能为 ServiceWorker Static routing API 添加了时间信息,这些信息在导航时间 API 和资源时间 API 中公开,供开发者使用。ServiceWorker 提供时间信息来标记特定时间点。

此功能添加了两条与静态路由 API 相关的计时信息:

  • RouterEvaluationStart:开始将请求与已注册的路由器规则进行匹配的时间。
  • CacheLookupStart:如果来源为 "cache",则开始查找缓存存储的时间。

此外,此功能还添加了两条路由器来源信息:匹配的路由器来源和最终路由器来源。

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

源试用

启用“来电通知”

此功能扩展了 Notifications API,使已安装的 PWA 可以发送来电通知,即带有通话风格按钮和铃声的通知。此扩展程序可帮助 VoIP Web 应用打造更具吸引力的体验,让用户更轻松地识别和接听来电通知。此外,此功能还有助于弥合同时具有原生实现和 Web 实现的应用之间的差距。

源试用 | 跟踪 bug #detail?id=1383570 | ChromeStatus.com 条目 | 规范

崩溃报告键值 API

此功能引入了一个新的键值对 API(暂定为 window.crashReport),该 API 由一个每文档映射提供支持,用于保存附加到崩溃报告的数据。

如果网站上发生任何渲染器进程崩溃,则放置在此 API 的后备映射中的数据会在 CrashReportBody 中发送。这样,开发者就可以调试应用中的哪些特定状态可能会导致给定的崩溃。

源试用 | 跟踪 bug #400432195 | ChromeStatus.com 条目 | 规范

添加 clipboardchange 事件

每当 Web 应用或任何其他系统应用更改系统剪贴板内容时,都会触发 clipboardchange 事件。这样,远程桌面客户端等 Web 应用便可使其剪贴板与系统剪贴板保持同步。它提供了一种高效的替代方案,可避免使用 JavaScript 轮询剪贴板以检测更改。

源试用 | 跟踪 bug #41442253 | ChromeStatus.com 条目 | 规范

在 Android 设备上启用 SharedWorker

长期以来,人们一直要求在 Android 上支持 SharedWorker,这源于 Web 开发者表达的以下几项需求:

  • 资源共享和效率:开发者旨在跨多个标签页共享单个 WebSocket 或服务器发送的事件 (SSE) 连接,从而节省资源。
  • 持久资源管理:需要在标签页之间共享和持久保存资源,特别是对于基于 WASM 的 SQLite 等技术。
  • 弥合功能差距:其他主要移动浏览器(包括 iOS 上的 Safari 和 Android 上的 Firefox)已支持 SharedWorker,因此 Android 上的 Chrome 成为最后一个弥合此差距的主要浏览器。

源试用 | ChromeStatus.com 条目 | 规范

移除

停止从预提取和预渲染发送 Purpose: prefetch 标头

预提取和预渲染现在使用 Sec-Purpose 标头,因此旧版 Purpose: prefetch 标头将被移除。

这将限定于推测规则 prefetch、推测规则 prerender<link rel=prefetch> 和 Chromium 的非标准 <link rel=prerender>

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

弃用某些元素内针对 H1 的特殊字号规则

HTML 规范包含一组特殊规则,用于处理嵌套在 <article><aside><nav><section> 标记中的 <h1> 标记:

这些特殊规则已弃用,因为它们会导致无障碍性问题。也就是说,它们在视觉上缩小了嵌套 <h1> 元素的字体大小,使其看起来像 <h2> 元素,但无障碍功能树中没有任何内容反映这种降级。

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