发布时间:2025 年 6 月 25 日
除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版渠道版本。如需详细了解此处列出的功能,请点击提供的链接或访问 ChromeStatus.com 上的列表。截至 2025 年 6 月 25 日,Chrome 139 仍处于 Beta 版阶段。您可以前往 Google.com 下载桌面版,也可以在 Android 设备上前往 Google Play 商店下载最新版。
CSS
此版本新增了六项 CSS 和界面功能。
短路 var()
和 attr()
如果不采用回退,var()
和 attr()
函数在评估时不会查找该回退中的循环。以下 CSS 有效,因为 --green
和 --blue
存在。
--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));
CSS caret-animation
属性
Chrome 之前已支持 caret-color
属性的动画效果,但当添加动画效果时,光标的默认闪烁行为会干扰动画效果。CSS caret-animation
属性有两个可能的值:auto
和 manual
,其中 auto
表示浏览器默认值(闪烁),manual
表示网页开发者正在控制光标动画。该属性还允许用户使用用户样式表停用闪烁。
边角成型
通过指定角部的形状或曲率,在现有 border-radius
的基础上启用角部样式设置。这样一来,您就可以创建圆角正方形、刘海屏和水滴屏等形状,并在这些形状之间实现动画效果。如需了解详情,请参阅 Amit Sheen 的这篇博文。
在切换到初始过渡值时继续运行过渡。
当与过渡相关的属性发生更改时,它们应该只会影响新开始的过渡。这意味着,如果您更改过渡属性,除非您还更改了具有有效过渡动画的属性,否则这些过渡动画将继续使用之前指定的时长、缓动等。当过渡属性设置为“none”时,Blink 错误地取消了过渡,即使您仅更改了 transition-duration,它也不会取消过渡。借助此功能,Blink 将与 WebKit 和 Gecko 保持一致,从而允许有效过渡继续运行,除非或直到其属性值发生变化并触发新的过渡更新。
CSS 自定义函数
自定义函数与自定义属性类似,但它们不是返回单个固定值,而是根据其他自定义属性、参数和条件返回值。
@function --negate(--value) {
result: calc(var(--value) * -1);
}
div {
--gap: 1em;
margin-top: --negate(var(--gap));
}
支持将 width
和 height
用作嵌套 <svg>
元素上的展示属性
支持通过 SVG 标记和 CSS 将 width
和 height
作为展示属性应用于嵌套的 <svg>
元素。这种双重方法可提供更大的灵活性,让您在复杂的设计中更高效地管理和设置 SVG 元素的样式。
Web API
Web 应用清单:指定更新资格条件,图标网址为 Cache-Control: immutable
在清单规范中指定更新资格算法。这使得更新过程更具确定性和可预测性,让开发者能够更好地控制是否(以及何时)应将更新应用于现有安装,并允许移除用户代理目前需要实现的“更新检查节流”机制,以避免浪费网络资源。
WebXR 深度感测性能改进
公开了多种新机制,用于自定义 WebXR 会话中深度感测功能的行为,旨在提高深度缓冲区的生成或使用性能。公开的关键机制包括:能够请求原始或平滑的深度缓冲区;能够请求运行时停止或恢复提供深度缓冲区;能够公开与用户视图不完全对齐的深度缓冲区,这样用户代理就不必每帧都执行不必要的重新投影。
允许在 JavaScript DOM API 中使用更多字符
HTML 解析器一直(或很长时间以来)允许元素和属性具有各种有效的字符和名称,但创建相同元素和属性的 JavaScript DOM API 更加严格,与解析器不匹配。此更改放宽了对 JavaScript DOM API 的验证,以与 HTML 解析器保持一致。
request-close
调用方命令
对话框元素可以通过多种机制关闭,有时开发者希望能够阻止关闭。为此,对话框会触发取消事件。最初,此事件仅通过关闭请求(例如,按下 Esc
键)触发,最近添加了一个 requestClose()
JS 函数,该函数也会触发取消事件。request-close
命令将这一新功能引入了声明性调用方命令 API。
WebGPU:支持 BC 和 ASTC 压缩格式的 3D 纹理
texture-compression-bc-sliced-3d
和 texture-compression-astc-sliced-3d
WebGPU 功能分别添加了对 BC 和 ASTC 压缩格式的 3D 纹理支持。
安全付款确认:浏览器绑定密钥
在安全付款确认断言和凭据创建过程中添加额外的加密签名。相应的私钥未在设备之间同步。这有助于 Web 开发者满足支付交易的设备绑定要求。
安全付款确认:用户体验更新
更新了 Android Chrome 上 SPC 对话框的界面元素。除了用户体验呈现之外,还添加了以下内容:
- 允许商家提供与将显示的付款相关的付款实体徽标的可选列表。
- 根据用户是否希望在不使用 SPC 的情况下继续交易或取消交易,向商家返回不同的输出状态。
- 向支付方式添加了一个新的支付详细信息标签字段,以便文本显示在两行中。
WebGPU core-features-and-limits
core-features-and-limits
功能表示 WebGPU 适配器和设备支持规范的核心功能和限制。
滚动锚定优先级候选修复
目前,滚动锚定算法会在优先候选对象可用作锚定目标时选择它们。优先级候选对象目前是聚焦的可编辑元素和页面内搜索突出显示。如果存在一个大型的可聚焦 contenteditable 元素,其内容在屏幕外发生了更改,则可能会导致用户体验欠佳(光标最终会因此而发生偏移)。此修复更改了算法:不再选择优先级最高的候选对象作为锚点,而是将候选对象用作常规锚点选择算法的范围或根,该算法会选择屏幕上最深的元素作为锚点。
支持 SVG <script>
元素的 async
属性
SVG 2.0 中的 SVGScriptElement
接口引入了 async
属性,与 HTMLScriptElement
类似。此属性允许异步执行脚本,从而提高使用 SVG 的 Web 应用的性能和响应能力。
设备端 Web Speech API
此功能为 Web Speech API 添加了设备端语音识别支持,使网站能够确保音频和转写的语音都不会发送到第三方服务进行处理。网站可以查询设备端语音识别功能是否支持特定语言,提示用户安装设备端语音识别所需的资源,并根据需要选择使用设备端语音识别或基于云的语音识别。
针对切换浏览上下文群组的跨网站导航清除 window.name
window.name
属性的值目前在整个标签页生命周期内都会保留,即使导航切换了浏览上下文组也是如此,这可能会泄露信息并可能被用作跟踪向量。清除 window.name
属性即可解决此问题。这应该是一项低风险的更改,因为如果浏览上下文位于另一个浏览上下文组中,则按名称查找浏览上下文已无法正常运行,因此该名称实际上并无用处。
企业版政策:ClearWindowNameCrossSiteBrowsing
(将在 Chrome 142 中停止运行)。
Web 应用范围扩展
添加了 "scope_extensions"
Web 应用清单字段,使 Web 应用能够将其作用域扩展到其他源站。
这使得控制多个子网域和顶级网域的网站能够以单个 Web 应用的形式呈现。需要列出的来源使用 .well-known/web-app-origin-association
配置文件确认与 Web 应用的关联。
符合规范的 JSON MIME 类型检测
Chromium 现在可以识别 WHATWG mimesniff 规范定义的所有有效 JSON MIME 类型。这包括子类型以 +json
结尾的任何 MIME 类型,以及传统的 application/json
和 text/json
。此更改可确保依赖于 JSON 检测的 Web API 和功能与 Web 平台标准和其他浏览器保持一致的行为。此项更改的主要目的是修复 JSON 模块导入行为,之前有效的 JSON MIME 类型(如 text/html+json
和 image/svg+json
)无法作为模块加载。
Private Aggregation API:汇总错误报告
使用 Private Aggregation API 时可能会遇到各种错误情况。例如,隐私预算可能会用尽,从而阻止任何进一步的直方图贡献。此功能允许开发者注册仅在发生特定类型的错误时才应发送的直方图贡献。此功能支持衡量错误条件的频率,并根据相关的开发者指定维度(例如已部署代码的版本)拆分这些衡量结果。由于错误本身可能是跨网站信息,因此我们无法简单地将其公开给没有第三方 Cookie 的用户。相反,此功能通过 Aggregation Service 重用现有的汇总型含噪报告流水线。
崩溃报告 API:指定崩溃报告,以仅接收崩溃报告
此功能通过指定名为 crash-reporting
的端点,确保开发者仅接收到崩溃报告。默认情况下,崩溃报告会传递到 default
端点,该端点除了接收崩溃报告之外,还会接收许多其他类型的报告。开发者可以为名为 crash-reporting
的知名端点提供单独的网址,以将崩溃报告定向到该端点,而不是 default
端点。
减少 Accept-Language
标头信息中的指纹收集
减少 Accept-Language
标头值字符串在 HTTP 请求和 navigator.languages
中公开的信息量。无需在每个 HTTP 请求中通过 Accept-Language
标头发送用户的完整首选语言列表。我们现在会在 Accept-Language
标头中发送用户的首选语言。为了最大限度地降低兼容性风险,初始发布版本减少了 HTTP 标头中的信息,我们将在未来减少相关的 navigator.languages
JavaScript getter。
针对 CSP 阻止的工作器,触发错误事件而不是抛出异常
如果被内容安全政策 (CSP) 阻止,Chrome 目前会从 Worker 和 SharedWorker 的构造函数中抛出 SecurityError
。该规范要求将 CSP 作为提取的一部分进行检查,并在脚本运行 new
Worker(url)
或 new SharedWorker(url)
时异步触发错误事件,而不是抛出异常。此更改使 Chrome 符合规范:在构造函数期间不抛出异常,并异步触发错误事件。
RTC 编码帧的音频电平
向 Web 公开使用 RTCPeerConnection
传输并使用 WebRTC 编码转换公开的编码帧的音频电平。
新的源试用
在 Chrome 139 中,您可以选择加入以下新的源试用。
Prompt API
提示 API 旨在通过文本、图片和音频输入与 AI 语言模型进行交互。它支持各种使用情形,从生成图片说明和执行视觉搜索,到转写音频、对声音事件进行分类、按照特定指令生成文本,以及从文本中提取信息或数据洞见。它支持结构化输出,可确保回答遵循预定义的格式(通常以 JSON 架构表示),从而提高回答的一致性,并有助于与需要标准化输出格式的下游应用无缝集成。此 API 也可在 Chrome 扩展程序中使用。此源试用适用于在网络上展示。
全帧速率呈现屏蔽属性
我们建议向阻塞属性添加新的渲染阻塞令牌 full-frame-rate。当渲染器被全帧速率令牌阻塞时,渲染器将以较低的帧速率运行,以便为加载预留更多资源。
WebGPU 兼容模式
添加了可运行较旧的图形 API(例如 OpenGL 和 Direct3D11)的 WebGPU API 的选择性加入、轻度受限子集。通过选择加入此模式并遵守其限制,开发者可以将 WebGPU 应用的覆盖范围扩展到许多没有核心 WebGPU 所需的现代显式图形 API 的旧设备。对于简单应用,唯一需要进行的更改是在调用 requestAdapter
时指定 "compatibility"
featureLevel。对于更高级的应用,可能需要进行一些修改才能适应该模式的限制。由于兼容性模式是 WebGPU Core 的子集,因此生成的应用也是有效的 WebGPU Core 应用,即使在不支持兼容性模式的用户代理上也能运行。
弃用和移除
此版本的 Chrome 引入了以下弃用和移除功能。 如需查看计划弃用、当前弃用和之前移除的功能列表,请访问 ChromeStatus.com。
此版本的 Chrome 移除了两项功能。
移除对 macOS 11 的支持
Chrome 138 是支持 macOS 11 的最后一个版本。从 Chrome 139 开始,macOS 11 不再受支持,因为其已超出 Apple 的支持期限。在受支持的操作系统上运行对于维护安全性至关重要。在运行 macOS 11 的 Mac 上,Chrome 将继续运行,并显示警告信息栏,但不会再进行任何更新。如果用户希望更新 Chrome,则需要将计算机更新到受支持的 macOS 版本。对于 Chrome 139 及更高版本的新安装,需要使用 macOS 12 或更高版本。
移除 HTML 中 ISO-2022-JP 字符集的自动检测功能
ISO-2022-JP 的字符集自动检测功能存在已知的安全问题。鉴于该字符集的使用率非常低,且 Safari 不支持自动检测 ISO-2022-JP,Chrome 移除了对该字符集的支持,以消除安全问题。