Chrome 138

稳定版发布日期:2025 年 6 月 24 日

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

CSS 和界面

与符号相关的函数 abs()sign() 用于计算与其自变量符号相关的各种函数。

abs(A) 函数包含一个计算 A,并返回 A 的绝对值,类型与输入相同:如果 A 的数值为正或 0⁺,则返回 A;否则返回 -1 * A。

sign(A) 函数包含一个计算 A,如果 A 的数值为负数,则返回 -1;如果 A 的数值为正数,则返回 +1;如果 A 的数值为 0⁺,则返回 0⁺;如果 A 的数值为 0⁻,则返回 0⁻。返回类型为 <number>,与输入计算的类型保持一致。

MDN 文档:abs() | 跟踪 bug #40253181 | ChromeStatus.com 条目 | 规范

插值进度功能性表示法:CSS progress() 函数

progress() 函数表示法会返回一个 <number> 值,该值表示一次计算(进度值)在另外两次计算(进度起始值和进度结束值)之间的位置。progress() 函数是一个数学函数。

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

CSS sibling-index()sibling-count()

sibling-index()sibling-count() 函数可用作 CSS 属性值中的整数,以根据元素在其同级元素中的位置或同级元素的总数来设置元素样式。这些函数可以直接用作整数值,但更有趣的是在 calc() 表达式中使用。

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

CSS stretch 大小调整关键字

CSS 大小调整属性(例如 widthheight)的关键字,可让元素扩展到正好填满其包含块的可用空间。它与“100%”类似,只不过最终大小会应用于元素的边距框,而不是 box-sizing 所指示的框。使用此关键字可让元素在保持边距的同时尽可能大。-webkit-fill-available 的无前缀版本。

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

用于操作系统级字体缩放的 CSS env 变量

向 CSS 公开用户的首选字体缩放比例。如果没有此属性,网页就无法实际检测到用户是否已使用操作系统偏好设置更改了其首选字体大小。此 CSS 环境变量将反映用户选择的缩放比例。

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

设备

Android 设备上通过蓝牙进行的 Web 序列通信

借助此功能,网页和 Web 应用可以在 Android 设备上通过蓝牙连接到串行端口。

Android 设备上的 Chrome 现在支持通过蓝牙 RFCOMM 使用 Web Serial API。其他平台上的现有企业政策(DefaultSerialGuardSettingSerialAllowAllPortsForUrlsSerialAllowUsbDevicesForUrlsSerialAskForUrlsSerialBlockedForUrls)在 Android 上处于 future_on 状态。启用此功能后,除 SerialAllowUsbDevicesForUrls 之外的所有政策都将启用。 在 Android 提供有线串行端口的系统级支持后,将在未来的发布版本中启用 SerialAllowUsbDevicesForUrls

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

Viewport Segments Enumeration API

借助 Viewport Segments API,开发者可以调整其网页布局,以适配可折叠设备。视口段定义了视口中逻辑上独立的区域的位置和尺寸。当视口被一个或多个充当分隔线的硬件功能(例如折叠或单独显示屏之间的铰链)分割时,就会创建视口段;段是开发者可以视为逻辑上不同的视口区域。

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

JavaScript

QuotaExceededError 更新为 DOMException 派生接口

以前,当 Web 平台想要告知您已超出配额时,它会使用 DOMException,并将特定的 name 属性设置为 QuotaExceededError。不过,这不允许携带其他信息。

此提案建议从内置 DOMException 名称列表中移除“QuotaExceededError”,并从内置 DOMException 列表中创建类名称 QuotaExceededError,同时添加可选属性 quotarequested。我们建议将抛出“QuotaExceededError”DOMException 的所有规范实例升级为抛出 QuotaExceededError。目前,此类规范会将 quotarequested 属性保留为默认值 null,但如果这些数据对相应用例有用(并且不会造成隐私泄露等问题),最终可能会升级为包含这些数据。

ChromeStatus.com 条目 | 规范

Web API

Translator API

一种 JavaScript API,用于为网页提供语言翻译功能。 越来越多的浏览器开始向用户提供语言翻译功能。这种翻译功能对 Web 开发者也很有用。当浏览器的内置翻译功能无法提供帮助时,这种情况尤为明显。您可以使用企业政策 (GenAILocalFoundationalModelSettings) 停用基础模型下载,这样会使此 API 无法使用。

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

Language Detector API

用于检测文本语言的 JavaScript API,可提供置信度。

语言检测是翻译的重要补充。这可以与翻译功能结合使用,例如,接收用户以未知语言输入的文本,并将其翻译成特定的目标语言。如今,浏览器通常已具备语言检测功能,我们希望通过 JavaScript API 将这些功能提供给 Web 开发者,以补充翻译 API。企业政策 (GenAILocalFoundationalModelSettings) 可用于停用基础模型下载,从而使此 API 不可用。

MDN 文档 | ChromeStatus.com 条目 | 规范

Summarizer API

Summarizer API 是一种 JavaScript API,用于生成输入文本的摘要,由 AI 语言模型提供支持。浏览器和操作系统越来越需要访问语言模型。通过公开此内置模型,我们避免了每个网站都需要下载自己的数 GB 语言模型或将输入文本发送到第三方 API 的情况。具体而言,总结器 API 会公开一个高级 API,用于与语言模型进行交互,以便针对各种用例(GitHub)总结输入内容,而这种方式不依赖于所讨论的特定语言模型。企业政策 (GenAILocalFoundationalModelSettings) 可用于停用基础模型下载,从而使此 API 不可用。

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

在序列化时转义属性中的 <>

在序列化时转义属性值中的 <>

这样可以降低发生突变型 XSS 攻击的风险。当属性的值在序列化和重新解析后被解释为起始标记令牌时,就会发生突变型 XSS 攻击。

ChromeStatus.com 条目 | 规范

Crash Reporting API:is_top_levelvisibility_state

此功能向发送到崩溃报告默认报告端点的崩溃报告 API 正文中添加了 is_top_levelvisibility_state 字符串字段。

ChromeStatus.com 条目 | 规范

在重新订阅时触发 pushsubscriptionchange 事件

当之前存在推送订阅但因权限更改(从“已授予”变为“拒绝”/“默认”)而被撤消的源重新获得通知权限时,在服务工作线程中触发 pushsubscriptionchange 事件。

系统将触发一个事件,其中包含空的 oldSubscription 和 newSubscription。

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

多媒体

向 WebCodecs 添加了对视频帧方向元数据的支持

在 WebCodecs 的各种视频相关接口中引入了 rotation: intflip: bool 值,以便开发者处理具有方向的帧来源(例如,Android 相机、某些媒体)。

VideoFrame 接口增强了创建具有任意旋转和翻转的 VideoFrames 的能力,并为 VideoFrame 对象上的此信息添加了访问器。

VideoDecoderConfig 对象获得了在解码的 VideoFrame 对象上自动发出的旋转和翻转字段。

VideoEncoder 类获得了用于将旋转和翻转信息从 encode() 传递到作为 EncodedVideoChunkMetadata 一部分发出的 VideoDecoderConfig 的机制。如果使用不同方向的帧调用 encode(),则会抛出非致命异常。configure() 可用于重置允许的屏幕方向。

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

性能

prefetchCacheprerenderCache 添加到 Clear-Site-Data 标头

Clear-Site-Data 标头新增了两个值,可帮助开发者指定清除预渲染和预提取缓存:"prefetchCache""prerenderCache"

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

推测规则:target_hint 字段

此功能扩展了推测规则语法,使开发者可以指定 target_hint 字段。

此字段提供一个提示,用于指示预渲染页面最终将激活的目标可导航位置。例如,当 _blank 被指定为提示时,可以为通过 window.open() 打开的可导航窗口激活预渲染的页面。该字段对预提取没有影响。

规范允许此字段接受任何有效的可导航目标名称或关键字字符串作为值,但此发布版本仅支持 "_self""_blank" 字符串。如果未指定提示,则系统会将其视为指定了 "_self"

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

安全

脚本的诚信政策

借助子资源完整性 (SRI),开发者可以确保他们打算加载的资源确实是他们正在加载的资源。但目前,开发者无法确保其所有脚本都通过 SRI 进行了验证。

借助 Integrity-Policy 标头,开发者可以断言给定类型的每个资源都需要进行完整性检查。如果尝试在没有完整性元数据的情况下加载相应类型的资源,该尝试将失败并触发违规报告。

ChromeStatus.com 条目 | 规范

Service Worker

ServiceWorker 对 Speculation Rules 预提取的支持

此功能可实现由 ServiceWorker 控制的预提取,即对由 ServiceWorker 控制的网址进行推测规则预提取。以前,在检测到控制 Service Worker 时,预提取会被取消,因此后续导航到预提取目标会通过非预提取路径提供。此功能将使预取请求通过 Service Worker 的提取处理程序,并且通过 Service Worker 拦截的响应会缓存到预取缓存中,从而使后续导航由预取缓存提供。使用企业政策 PrefetchWithServiceWorkerEnabled 控制此功能。

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

弃用和移除

WebGPU:弃用 GPUAdapter isFallbackAdapter 属性

弃用了 WebGPU 中的 GPUAdapter isFallbackAdapter 布尔值属性,该属性与 GPUAdapterInfo isFallbackAdapter 布尔值属性重复。

即将进行的移除是一项次要的破坏性变更,因为任何浏览器尚未实现对回退适配器的支持,因此 isFallbackAdapter 属性始终返回假值。

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

弃用媒体源扩展的异步范围移除功能

媒体源标准很久以前就已更改,不再允许涉及异步范围移除的模糊定义的行为:

  • SourceBuffer.abort() 不再中止 SourceBuffer.remove() 操作。
  • 设置 MediaSource.duration 不再截断当前缓冲的媒体。

现在,在这两种情况下都会抛出异常。

Safari 和 Firefox 长期以来一直采用这种行为,Chromium 是唯一仍采用旧行为的浏览器。使用计数器显示大约 0.001%-0.005% 的网页加载命中已弃用的行为。如果某个网站遇到此问题,播放功能可能会无法正常运行。

使用 abort() 取消移除的情况越来越多,因此在出现更多不兼容的用法之前,最好先解决此弃用问题。

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