Chrome 138 Beta 版

发布时间:2025 年 5 月 28 日

除非另有说明,否则以下变更适用于适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版分支。如需详细了解此处列出的功能,请点击所提供的链接或访问 ChromeStatus.com 上的列表。Chrome 138 自 2025 年 5 月 28 日起处于 Beta 版阶段。您可以在桌面版 Google.com 或 Android 版 Google Play 商店下载最新版本。

CSS 和界面

此版本新增了 6 项 CSS 和界面功能。

CSS stretch 大小调整关键字

CSS 尺寸属性(例如 widthheight)的关键字,可让元素扩大到完全填满其包含块的可用空间。它与 100% 类似,但生成的大小会应用于元素的外边距盒,而不是 box-sizing 指示的盒子。使用此关键字可让元素保留其边距,同时仍尽可能变大。

与符号相关的函数 abs()sign() 会计算与其参数符号相关的各种函数。

用于操作系统级字体放大的 CSS 环境变量

将用户的首选字体比例公开给 CSS。目前,页面无法检测用户是否已使用操作系统的偏好设置更改了首选字体大小。此 CSS 环境变量将反映用户选择的比例。

CSS sibling-index()sibling-count()

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

li {
  animation-delay: calc(0.1s * sibling-index());
}

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

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

Viewport Segments Enumeration API

借助 Viewport Segments API,开发者可以根据目标可折叠设备调整其网页布局。视口细分定义了视口中逻辑上分隔的区域的位置和尺寸。当视口被一个或多个硬件功能(例如单独显示屏之间的折缝或合页)分割时,系统会创建视口细分;细分是视口的区域,可由开发者视为逻辑上不同的区域。

Web API

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

向 WebCodecs 中的各种视频相关接口引入了 rotation: intflip: bool 值,以便开发者可以使用具有屏幕方向的帧源(例如 Android 相机和某些媒体)。VideoFrame 接口增强了创建可任意旋转和翻转的 VideoFrame 的功能,以及 VideoFrame 对象上用于获取此类信息的访问器。VideoDecoderConfig 对象会获得 rotationflip 字段,这些字段会自动在解码的 VideoFrame 对象上发出。VideoEncoder 类获得了用于将旋转和翻转信息从 encode() 传递到 EncodedVideoChunkMetadata 中发出的 VideoDecoderConfig 的机制。如果使用不同屏幕方向的帧调用 encode(),系统会抛出非严重异常。configure() 方法可用于重置允许的屏幕方向。

Crash Reporting API:is_top_levelvisibility_state

此功能会向崩溃报告 API 正文添加 is_top_levelvisibility_state 字符串字段,这些字段会发送到默认报告端点以生成崩溃报告。

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

在序列化时对属性值中的 <> 进行转义。这可降低发生变异 XSS 攻击的风险。当属性值在序列化和重新解析后被解读为起始标记令牌时,就会发生变异 XSS 攻击。

适用于脚本的完整性政策

借助 Subresource-Integrity (SRI),开发者可以确保他们打算加载的资源确实是他们正在加载的资源。不过,目前开发者无法确保其所有脚本都使用 SRI 进行验证。借助 Integrity-Policy 头文件,开发者可以断言给定类型的每个资源都需要进行完整性检查。如果尝试在没有完整性元数据的情况下加载此类资源,则该尝试将失败并触发违规报告。

可预测的报告存储空间配额

对于没有无限存储空间权限的网站,通过 StorageManager 的 Estimate API 报告可预测的存储空间配额。您可以使用报告的存储空间配额来检测用户的浏览模式,因为无痕模式下的可用存储空间比常规模式下的可用存储空间要小得多。

这是一种缓解措施,可防止在具有有限存储权限的网站的所有浏览模式下,使用存储空间 API 检测用户的浏览模式,方法是报告一个人工配额(等于用量 + 最小值(10 GiB,磁盘向上舍入到最近的 1 GiB))。具有无限存储空间权限的网站不会受到影响。强制性配额也不会受到影响。

重新订阅时的 pushsubscriptionchange 事件

如果某个来源之前存在推送订阅,但由于权限变更(从“已授予”变为“拒绝/默认”)而被撤消,当该来源重新获得通知权限时,在服务工件中触发 pushsubscriptionchange 事件。系统会使用空 oldSubscriptionnewSubscription 触发该事件。

推测规则:向 Clear-Site-Data 标头添加了 prefetchCacheprerenderCache

Clear-Site-Data 标头添加了两个新值:prefetchCacheprerenderCache,以帮助开发者有针对性地清除预渲染和预提取缓存。这些数据可以随任何请求一起发送,而无需在文档请求中提供(例如,它们可以在添加到购物车或登录和退出 API 调用响应中返回,以清除对状态更改的猜测)。

推测规则:target_hint 字段

这扩展了推测规则语法,以允许开发者指定 target_hint 字段。此字段提供一个提示,用于指明最终将激活预渲染网页的目标可导航项。将 _blank 指定为提示后,系统可以为由 window.open() 打开的可导航页面激活预渲染页面。该字段不支持预加载。

Storage Access API 的严格同源政策

调整了 Storage Access API 语义,以便在安全方面严格遵循同源政策。也就是说,默认情况下,在框架中使用 document.requestStorageAccess() 只会将 Cookie 附加到对 iframe 源(而非网站)的请求。

Summarizer API

这是一个 JavaScript API,可生成输入文本的摘要,并由 AI 语言模型提供支持。浏览器和操作系统越来越需要获得对语言模型的访问权限。通过公开此内置模型,我们可以避免每个网站都需要下载自己的数 GB 语言模型,或将输入文本发送到第三方 API。其中,摘要生成器 API 尤其提供了一个高级 API,用于与语言模型交互,以便以不依赖于相关具体语言模型的方式为各种用例总结输入。企业政策 (GenAILocalFoundationalModelSettings) 可用于停用导致此 API 不可用的底层模型下载功能。

如需了解详情,请参阅使用内置 AI 生成简洁的摘要

Language Detector API

这是一个 JavaScript API,用于检测特定文本所使用的语言以及相应的置信度。语言检测是翻译的重要补充,可与 Translator API 搭配使用。例如,接受用户以未知语言输入的内容,确定其语言,然后将其翻译为特定目标语言。虽然浏览器通常已经具有语言检测功能,但此 API 可为 Web 开发者提供 JavaScript API 的相同功能,从而对 Translation API 起到补充作用。

您可以使用企业政策 (GenAILocalFoundationalModelSettings) 禁止下载底层模型,这会导致此 API 不可用。

如需了解详情,请参阅检测内置 AI 使用的语言

Translator API

一种 JavaScript API,用于为网页提供语言翻译功能。 虽然浏览器越来越多地向用户提供语言翻译服务,但此类翻译功能对 Web 开发者来说也非常有用。当浏览器的内置翻译功能无法提供帮助时,尤其如此,例如在直播和互动服务中。企业政策 (GenAILocalFoundationalModelSettings) 可用于停用导致此 API 不可用的底层模型下载功能。

如需了解详情,请参阅利用内置 AI 进行翻译

Web 应用范围扩展

添加了 "scope_extensions" Web 应用清单字段,可让 Web 应用将其范围扩展到其他来源。这样,控制多个子网域和顶级网域的网站便可作为单个 Web 应用显示。需要列出的来源使用 .well-known/web-app-origin-association 配置文件确认与 Web 应用的关联。

Android 设备上的蓝牙 Web 串行

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

废弃和移除

此版本的 Chrome 引入了以下弃用和移除功能。 如需查看计划弃用、当前弃用和之前移除的功能的列表,请访问 ChromeStatus.com。

此版本的 Chrome 弃用了两项功能。

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

媒体源标准早已更改,不允许定义含糊不清的涉及异步范围移除的行为:

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

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

移除了 SwiftShader 回退

允许自动回退到由软件渲染程序 SwiftShader 支持的 WebGL 已废弃,WebGL 上下文创建将会失败,而不是回退到 SwiftShader。之所以这样做,主要有以下两个原因:

  1. 由于在 Chromium 的 GPU 进程中运行 JIT 编译的代码,SwiftShader 存在较高的安全风险。
  2. 从高性能 GPU 支持的 WebGL 回退到 CPU 支持的实现时,用户体验会很差。用户无法控制此行为,并且很难在 bug 报告中对其进行描述。

在弃用期间,如果创建了 WebGL 上下文并由 SwiftShader 提供支持,Chrome 开发者工具控制台中会显示一条警告。传递 --enable-unsafe-swiftshader 将移除此警告消息。