稳定版发布日期:2025 年 5 月 27 日
除非另有说明,否则以下变更适用于适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 137 稳定版。
CSS 和界面
CSS if()
函数
CSS if()
函数提供了一种简洁的方式来表达条件值。它接受一系列以分号分隔的条件-值对。该函数会依序评估每个条件,并返回与第一个为 true 的条件关联的值。如果所有条件的计算结果均为 false,则该函数会返回一个空令牌流。这样,您就可以以简单简洁的方式表达复杂的条件逻辑。
示例:
div {
color: var(--color);
background-color: if(style(--color: white): black; else: white);
}
.dark {
--color: black;
}
.light {
--color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>
跟踪 bug #346977961 | ChromeStatus.com 条目 | 规范
CSS reading-flow
、reading-order
属性
reading-flow
CSS 属性用于控制 Flex、网格或块布局中的元素向无障碍功能工具显示和使用 Tab 键盘焦点导航进行聚焦的顺序。
借助 reading-order
CSS 属性,作者可以手动替换阅读流容器内的顺序。它是一个整数,默认值为 0
。
如需详细了解这些属性,请参阅使用 CSS 阅读流实现逻辑顺序的焦点导航,并试用一些示例。
跟踪 bug #40932006 | ChromeStatus.com 条目 | 规范
忽略手写体字母间距
此功能添加了逻辑,以便根据规范忽略开发者为手写体指定的字母间距设置,以确保字母间距不会破坏字词结构,并旨在为依赖手写体的用户提供更好的用户体验。
借助此功能,Chrome 可确保手写体文本清晰可辨且间距适当,即使字体不具备高级排版功能也是如此。
在 Chromium 中,这适用于以下脚本:阿拉伯语、哈尼菲罗兴亚语、曼达语、蒙古语、N'Ko、Phags Pa 和叙利亚语,因为这些脚本根据规范被视为草书。
跟踪 bug #40618336 | ChromeStatus.com 条目 | 规范
选择 API getComposedRanges
和 direction
此功能为 Selection API 提供了两个新的 API 方法:
Selection.direction
,用于返回选择的方向(none
、forward
或backward
)Selection.getComposedRanges()
,用于返回 0 或 1 个组合StaticRange
的列表
组合 StaticRange
可以跨越阴影边界,而普通 Range
则不能。
例如:
const range = getSelection().getComposedRanges({ shadowRoots: [root] });
如果所选内容跨越 shadowRoots
列表中未提供的阴影根边界,则 StaticRange
的端点将重新限定范围,使其位于该树之外。这样可以确保 Chrome 不会公开未知的阴影树。
跟踪 bug #40286116 | ChromeStatus.com 条目 | 规范
支持 offset-path: shape()
支持 offset-path: shape()
,以允许使用响应式形状设置动画路径。
跟踪 bug #389713717 | ChromeStatus.com 条目 | 规范
在 SVGSVGElement
上支持 transform
属性
借助此功能,您可以使用 <svg>
的 transform
属性直接将转换属性(例如缩放、旋转、平移和倾斜)应用于 <svg>
根元素。借助这项增强功能,您可以整体操控整个 SVG 坐标系或其内容,从而在创建动态、响应式和交互式矢量图形时获得更大的灵活性。通过支持此属性,您无需额外的封装容器元素或复杂的 CSS 权宜解决方法,即可转换 <svg>
元素,从而简化构建可伸缩且带动画效果的 Web 图形的过程。
跟踪 bug #40313130 | ChromeStatus.com 条目 | 规范
accent-color
属性的系统强调色
这样,您就可以为表单元素使用操作系统的强调色。通过使用 accent-color
CSS 属性,您可以确保复选框、单选按钮和进度条等表单元素自动采用用户操作系统定义的强调色。自 2021 年起,macOS 就支持此功能,现在 Windows 和 ChromeOS 也支持了。
跟踪 bug #40764875 | ChromeStatus.com 条目 | 规范
允许 <use>
通过省略 fragment 来引用外部文档的根元素。
此功能通过放宽引用要求来简化 SVG <use>
元素。在 Chrome 137 之前,您必须在 SVG 文档中明确引用 fragment。如果未指定 fragment ID,<use>
将无法解析目标,并且不会呈现或引用任何内容。
例如:使用 fragment 标识符引用外部文件的 <use>
元素:
<svg>
<use xlink:href="myshape.svg#icon"></use>
</svg>
在此示例中,#icon
是指向 myshape.svg
中 id="icon"
元素的 fragment 标识符。
不使用 fragment 标识符:
<svg>
<use xlink:href="myshape.svg"></use>
</svg>
借助此功能,您可以省略 fragment 或仅提供外部 SVG 文件名,系统就会自动引用根元素,这样您就不必仅仅为了向根元素分配 ID 而修改引用的文档。这项增强功能简化了手动编辑流程并提高了效率。
跟踪 bug #40362369 | ChromeStatus.com 条目 | 规范
画布浮点颜色类型
引入了在 CanvasRenderingContext2D
、OffscreenCanvasRenderingContext2D
和 ImageData
中使用浮点像素格式(而不是 8 位固定点)的功能。
对于高精度应用(例如医学可视化)、高动态范围内容和线性工作色彩空间,这是必不可少的。
跟踪 bug #40245602 | ChromeStatus.com 条目 | 规范
view-transition-name: match-element
match-element
值会根据元素的身份生成唯一 ID,并为此元素重命名。在单页应用场景中,如果元素在移动,并且您希望使用视图转换为其添加动画效果,则可以使用此方法。
跟踪 bug #365997248 | ChromeStatus.com 条目 | 规范
付款
对为 payment
创建 WebAuthn 凭据而抛出的错误类型进行了调整:SecurityError
变为 NotAllowedError
更正了为 payment
凭据创建 WebAuthn 凭据期间抛出的错误类型。由于历史规范不一致,在无需用户激活的情况下,在跨源 iframe 中创建 payment
凭据会抛出 SecurityError
,而不是为非付款凭据抛出的 NotAllowedError
。
这是一项重大变更,但影响面较小。之前检测到抛出错误类型(例如 e instanceof SecurityError
)的代码会受到影响。仅在创建凭据期间一般处理错误的代码(例如 catch (e)
)将继续正常运行。
跟踪 bug #41484826 | ChromeStatus.com 条目 | 规范
Web API
Blob 网址分区:提取/导航
作为存储分区的延续,Chrome 实现了按存储键(顶级网站、框架源和 has-cross-site-ancestor 布尔值)对 Blob 网址访问进行分区,但顶级导航除外,顶级导航将继续仅按框架源进行分区。此行为与 Firefox 和 Safari 目前实现的行为类似,并使 Blob 网址用法与其他存储空间 API 在存储空间分区中使用的分区方案保持一致。此外,Chrome 现在会对呈现程序发起的 Blob 网址顶级导航强制执行 noopener,其中相应网站与执行导航的顶级网站属于不同的网站。这与 Safari 中的类似行为保持一致,相关规范已更新以反映这些更改。
跟踪 bug #40057646 | ChromeStatus.com 条目
来自无响应网页的崩溃报告中的调用堆栈
当网页因 JavaScript 代码运行无限循环或其他非常长的计算而变得无响应时,此功能会捕获 JavaScript 调用堆栈。这有助于开发者更轻松地找出无响应的原因并加以修正。如果原因是无响应,崩溃报告 API 中会包含 JavaScript 调用堆栈。
跟踪 bug #1445539 | ChromeStatus.com 条目 | 规范
Document-Isolation-Policy
借助 Document-Isolation-Policy
,文档可以为自身启用 crossOriginIsolation
,而无需部署 COOP 或 COEP,并且无论网页的 crossOriginIsolation
状态如何。该政策由进程隔离机制支持。此外,文档的非 CORS 跨源子资源将在没有凭据的情况下加载,或者需要具有 CORP 标头。
跟踪 bug #333029146 | ChromeStatus.com 条目 | 规范
网络加密中的 Ed25519
此功能在 Web Cryptography API 中添加了对 Curve25519
算法的支持,即签名算法 Ed25519
跟踪 bug #1370697 | ChromeStatus.com 条目 | 规范
HSTS 跟踪防范
使用 HSTS 缓存来减少第三方跟踪用户的情况。
此功能仅允许对顶级导航进行 HSTS 升级,并阻止对子资源请求进行 HSTS 升级。这样一来,第三方网站就无法使用 HSTS 缓存来跨网站跟踪用户。
跟踪 bug #40725781 | ChromeStatus.com 条目
WebAssembly
JavaScript promise 集成
JavaScript Promise 集成 (JSPI) 是一种 API,可让 WebAssembly 应用与 JavaScript Promise 集成。
它允许 WebAssembly 程序充当 Promise 的生成器,并允许 WebAssembly 程序与具有 Promise 的 API 进行交互。
具体而言,当应用使用 JSPI 调用具有 Promise 的 (JavaScript) API 时,WebAssembly 代码会被挂起;并且 WebAssembly 程序的原始调用方会收到一个 Promise,该 Promise 将在 WebAssembly 程序最终完成时得到执行。
WebAssembly 分支提示
通过告知引擎特定分支指令很可能采用特定路径,从而改进编译的 WebAssembly 代码的性能。
这样,引擎就能做出更明智的代码布局(提高指令缓存命中率)和寄存器分配决策。
WebGPU
GPUTextureView
用于 externalTexture
绑定
现在,在创建 GPUBindGroup
时,允许将 GPUTextureView
用于 externalTexture
绑定。
跟踪 bug #398752857 | ChromeStatus.com 条目 | 规范
copyBufferToBuffer
过载
GPUCommandEncoder
copyBufferToBuffer()
方法现在包含一种更简单的方法,可使用带有可选偏移量和大小参数的新过载来复制整个缓冲区。
企业
IP 地址日志记录和报告
Chrome 企业版通过收集和报告本地和远程 IP 地址,并将这些 IP 地址发送到安全调查日志 (SIT),从而增强安全监控和突发事件响应功能。此外,Chrome 企业版还允许管理员选择通过 Chrome 企业版报告连接器将 IP 地址发送给第一方和第三方 SIEM 提供商。
此功能适用于 Chrome 企业核心版客户。
源试用
全帧速率呈现屏蔽属性
向阻塞属性添加了新的呈现阻塞令牌 full-frame-rate
。
当渲染程序因 full-frame-rate
令牌而被阻塞时,渲染程序将以较低的帧速率运行,以便为加载预留更多资源。
跟踪 bug #397832388 | ChromeStatus.com 条目
在未呈现的 iframe 上暂停媒体播放
添加了 media-playback-while-not-rendered
权限政策,以允许嵌入网站暂停未呈现的嵌入 iframe 的媒体播放(即将其 display
属性设为 none
)。这样一来,开发者就可以让浏览器处理用户看不到的内容的播放,从而打造更人性化的体验,并提升性能。
Origin Trial | 跟踪 bug #351354996 | ChromeStatus.com 条目
Rewriter API
Rewriter API 可根据请求以所需方式转换和重写输入文本,并由设备端 AI 语言模型提供支持。开发者可以使用此 API 移除文本中的重复内容以符合字数限制,改写消息以适应目标受众群体,或者在发现消息使用了有害语言时改写消息以使其更具建设性,改写帖子或文章以使用更简单的字词和概念,等等。
Origin Trial | 跟踪 bug #358214322 | ChromeStatus.com 条目 | 规范
Writer API
Writer API 可用于根据写作任务提示撰写新内容,并由设备端 AI 语言模型提供支持。开发者将能够使用此 API 生成结构化数据的文本说明,根据评价或商品说明撰写商品帖子,将优点和缺点列表展开为完整视图,等等。