Chrome 120 Beta 版

CSS 遮盖、放宽的 CSS 嵌套规则、使用 <details> 元素(Media Session API 的 enterpictureinpicture 操作)创建手风琴模式。

除非另有说明,否则上述更改均适用于最新 Chrome Beta 版(Android、ChromeOS、Linux、macOS 和 Windows)。如需详细了解此处列出的功能,请访问所提供的链接或访问 chromestatus.com 上的列表。Chrome 120 从 2023 年 11 月 1 日起为 Beta 版。您可以访问 Google.com(桌面版)或 Google Play 商店(Android 版)下载最新版本。

CSS

此版本新增了 7 项 CSS 功能。

已注册自定义属性的 CSS <image> 语法

支持将 <image> 语法用于通过 @propertyregisterProperty() 注册的自定义属性。<image> 语法可用于将自定义属性的值限制为 url() 值和生成的图片(如渐变)。

已注册自定义属性的 CSS <transform-function><transform-list> 语法

支持将 <transform-function><transform-list> 语法用于通过 @propertyregisterProperty() 注册的自定义属性。

该语法可用于限制自定义属性的值来表示转换。这样,我们还可以直接在这些已注册的自定义属性上使用过渡和动画。

媒体查询:脚本功能

脚本媒体功能用于查询当前文档是否支持脚本语言(例如 JavaScript)。有效选项包括“enabled”“initial-only”和“none”。然而,“initial-only”不会在浏览器中匹配。

:dir() 伪类选择器

:dir() CSS 伪类选择器会根据方向(根据 HTML dir 属性确定)来匹配元素。

:dir(ltr) 匹配从左到右的文本方向。 :dir(rtl) 匹配文本方向从右到左的元素。

它不等同于 [dir] 属性选择器,因为它与从具有 dir 属性的祖先继承的路线匹配,并且因为它与使用 dir=auto(它根据具有强方向性的文本中的第一个字符确定方向)计算的方向匹配。

CSS 指数函数

添加了 CSS 指数函数:pow()sqrt()hypot()log()exp()(来自 CSS 值和单位级别 4 规范)。

CSS 遮盖

CSS mask 以及相关属性(例如 mask-imagemask-mode)用于通过在特定点遮盖或裁剪图片来隐藏元素(部分或全部)。

此功能会取消 -webkit-mask* 属性的前缀,并使其符合当前规范。其中包括 mask-imagemask-modemask-repeatmask-positionmask-clipmask-originmask-sizemask-composite,以及 mask 简写形式。支持本地 mask-image 引用,序列化现在符合规范,并且接受的值现在也符合规范(例如,对于 mask-composite,使用 add,而不是 source-over。)

放宽的 CSS 嵌套

对 CSS 嵌套实现的这项更改允许嵌套样式规则从元素(例如 h1)开始,而无需在前面添加 & 符号或用 is() 封装。以下示例现已在规范中有效,适用于 Chrome 120。

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

<details> 上使用名称属性的手风琴式折叠模式

借助此功能,您可以使用一系列 HTML <details> 元素构建手风琴。它会向 <details> 元素中添加 name 属性。使用此属性时,多个同名的 <details> 元素会组成一个组。一次最多只能打开组中的一个元素。

Web API

允许将 ArrayBuffer 转换为 VideoFrame、AudioData、EncodedVideoChunk、EncodedAudioChunk、ImageDecoder 构造函数

这样就可以分离数组缓冲区,并在 VideoFrame、ImageDecoder、EncodedVideoChunk、EncodedAudioChunk、AudioData 中使用相应的缓冲区,而无需复制。

CSS 字体加载 API FontFaceSet:check() 方法

FontFaceSetcheck() 方法可验证是否能够使用指定字体显示文本,而无需尝试使用尚未完成加载的 FontFaceSet 中的字体。这样一来,用户便可以安全地使用相应字体,而无需在日后触发字体替换。

关闭请求和 CloseWatcher

“关闭请求”是一个新的概念,涵盖使用桌面设备上的 Esc 键或者 Android 上的返回手势或按钮关闭当前打开的项的请求。将这些 API 集成到 Chrome 中会带来两项更改:

  • CloseWatcher:一个用于直接监听和响应关闭请求的新 API。
  • 升级到 <dialog>popover="",以使用新的关闭请求框架,以便响应 Android 返回按钮。

专用工作器和 Storage Access API

专用工作器将继承父级上下文的存储空间访问权限状态。因此,如果某个文档通过 document.requestStorageAccess() 获取存储空间访问权限,然后创建专用 worker,则该 worker 也将拥有存储空间访问权限(并且能够访问未分区 Cookie。)

FedCM:Error API 和 AutoSelectedFlag API

可帮助开发者和用户更好地了解身份验证流程的专用 API。这两个 API 会在用户授予登录身份提供方网站或应用(在此上下文中称为依赖方 [RP])的权限后触发。也就是说,在用户点击继续登录按钮之后。

借助 Error API,如果用户的登录尝试失败,身份提供方可以与浏览器分享相关原因,让用户和 RP 开发者及时掌握最新动态。

借助 AutoSelectedFlag API,身份提供方和 RP 开发者可以更好地了解登录用户体验,并相应地评估效果和细分指标。

有关详情,请参阅 FedCM Chrome 120 博文

围栏框架功能更新

Privacy Sandbox 中的 Protected Audience API 中有一个适用于 Protected Audience 广告尺寸宏的额外格式选项。借助选择启用功能,您可以使用宏将赢得竞价的广告的尺寸指定为广告网址,例如:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

为了与 Protected Audience 中其他类型的宏(例如 deprecatedReplaceInURNregisterAdMacro() 使用的宏)更加一致,除了当前格式之外,我们还在 Chrome 120 中添加了将 ${AD_WIDTH} 和 ${AD_HEIGHT} 用作宏格式的功能。

自动信标现在会发送到所有已注册的网址。以前,只有在调用 setReportEventDataForAutomaticBeacons() 时指定的目标才会收到自动信标,即使其 Worklet 中针对 reserved.top_navigation 调用 registerAdBeacon() 的目标也是如此。现在,任何针对 reserved.top_navigation 调用 registerAdBeacon() 的目的地都将获得自动信标,但只有 setReportEventDataForAutomaticBeacons() 中指定的目的地才会获得自动信标数据以及信标。setReportEventDataForAutomaticBeacons() 中的 once 参数现在将确定是否发送一次数据,而不是确定整个信标是否发送一次。

相交观察器滚动边距

Intersection Observer scrollMargin 可让开发者观察嵌套滚动容器内当前被滚动容器裁剪的目标。具体做法是,在计算交集时,将容器的裁剪矩形扩展为 scrollMargin

权限政策违规问题报告

这可将 Permissions Policy API 与 Reporting API 集成,从而使 Web 开发者能够配置接收权限政策违规报告的端点,以便网站所有者了解何时会在其页面上请求使用不允许的功能。

它还包含 Permissions-Policy-Report-Only 标头,可以根据建议的政策(类似于 Content-Security-Policy-Report-Only)发送报告,以便先评估政策更改是否存在潜在破坏,然后再在常规强制模式下实施这些更改。

Media Session API:enterpictureinpicture 操作

向 Media Session API 添加 enterpictureinpicture 操作。网站可以注册一个操作处理程序,该处理程序可用于打开“画中画”窗口或文档画中画窗口。

如需了解详情,请参阅为 Web 应用自动启用画中画功能

支持 WebGPU f16

允许在 WebGPU 着色器 (WGSL) 中使用半精度浮点类型 f16。

开发者可以使用 WebGPU 规范中的“shader-f16”功能和 WGSL 规范中的“f16”扩展来访问其着色器中的 16 位浮点变量和 API。

MediaCapabilities:使用 decodingInfo() 查询 HDR 支持

扩展了 Media Capabilities API,以允许通过三个新的 VideoConfiguration 字典字段检测 HDR 渲染支持:hdrMetadataTypecolorGamuttransferFunction。Chrome 会实现自己的色调映射算法,因此对于 HDR10 (smpteSt2086) 静态元数据将始终返回 true。目前不支持 HDR10+ (smpteSt2094-10) 和杜比视界 (smpteSt2094-40) 动态元数据,因此将返回 false。我们预计将来会添加对动态元数据的支持,以便开发者能够通过该 API 为获得支持的用户选择适当的内容。

MediaStreamTrack 统计信息(视频)

公开 MediaStreamTrack 类型视频的帧计数器(已传送、已丢弃、总计)的 API。音频统计信息将在单独发布的 Chrome 功能中提供。

Private Aggregation API:选择汇总协调器

修改了 Private Aggregation API,以提供一种机制(从供应商指定的许可名单中选择)用于载荷加密的协调者。您可以通过 run()selectURL() SharedStorage 调用以及 runAdAuction()joinAdInterestGroup() Protected Audience 调用中的附加选项来选择服务。宽泛的方法与 Attribution Reporting API 的方法基本一致。

FedCM 中的 Login Status API

借助 Login Status API(以前称为 IdP Sign-in Status API),身份提供方可以在用户登录或退出账号时向浏览器发出信号。

FedCM 使用它来解决静默计时攻击,从而允许 FedCM 在完全不使用第三方 Cookie 的情况下运行。

未来,此 API 可能会适用于更多用例。

如需了解详情,请参阅公告博文

视图转换:使回调不可为 null

startViewTransition 调用目前接受可选的可为 null 回调类型,其默认值为 null:startViewTransition(optional UpdateCallback? callback = null)

此功能会将其更改为不可为 null 的类型:startViewTransition(optional UpdateCallback callback)

适用于 TLS 的 X25519Kyber768 密钥封装

通过部署 Kyber768 防量子密钥协议算法,保护当前的 Chrome TLS 流量免受未来的量子密码分析的影响。这是基于 IETF 标准的混合 X25519 + Kyber768 密钥协议。此规范和发布不在 W3C 的讨论范围之内。此密钥协议将以 TLS 加密方式发布,并且应向用户公开。

正在进行源试用

在 Chrome 120 中,您可以选择启用以下新的源试用

“优先级”HTTP 请求标头

此功能会为所有 HTTP 请求添加 priority 请求标头,该标头具有发送请求时请求的优先级信息。

RFC 9218(HTTP 可扩展优先级方案)定义了一个“优先级”HTTP 请求标头,用于向源站(和中间方)表明请求优先级。还为 HTTP/2 和 HTTP/3 定义了协商过程和协议级帧,以便传递相同的优先级信息。标头只能在首次请求时发出资源的初始优先级信号,而基于帧的机制允许在事后修改优先级。标头可以在源服务器中端到端地运行(并提供一种机制,让源站在能被中介识别的情况下覆盖优先级),而帧仅限于在链路级别运行。此功能专门用于支持基于标头的优先级方案。

我们提议扩展 Storage Access API(向后兼容),以允许在第三方上下文中访问未分区(Cookie 和非 Cookie)的存储空间。

拥有专用网络访问权限,可放宽混合内容

为了与本地网络中不具备全局唯一名称并因而无法获得 TLS 证书的设备建立连接,此功能为 fetch() 引入了一个新选项,用于声明开发者与此类设备通信的意图、一项由政策控制的新功能,用于限制每个网站对此功能的访问;以及为服务器预检响应提供额外元数据的新标头。

不妨报名参加专用网络访问权限提示源试用

不受限制地访问 performance.measureUserAgentSpecificMemory()

将 performance.measureUserAgentSpecificMemory() 指定为仅在跨域隔离的环境中可用(在 COOP/COEP 后面)。此功能消除了 COOP/COEP 限制,允许在无法完全部署 COOP/COEP 的情况下进行回归测试和衡量影响。请注意,performance.memory(旧版 API)不能用于此目的,因为从未在工作器上启用过。

performance.measureUserAgentSpecificMemory()

该功能添加了用于估算网页内存用量的 performance.measureUserAgentSpecificMemory() 函数。网站需要跨源隔离才能使用 API。

弃用和移除

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

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

废弃并移除 Theora 支持

由于新出现的安全风险,Chrome 将在桌面版 Chrome 中弃用并停止对 Theora 视频编解码器的支持。Theora 的低使用量(现在往往不正确)已不再能证明支持大多数用户。

此版本的 Chrome 移除了两项功能。

移除数据:SVGUseElement 中的网址

在 SVGUseElement 中分配 data: 网址 可能会导致 XSS。这也会导致系统绕过 Trusted Types。因此,我们计划弃用并取消对此功能的支持。

取消了 CSPEE 中的同源一揽子授权

从 CSP 嵌入式强制执行中移除了对同源 iframe 的特殊处理。这与对跨源 iframe 和同源 iframe 强制执行 CSP 嵌入式强制执行的行为保持一致。