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>
语法用于通过 @property
或 registerProperty()
注册的自定义属性。<image>
语法可用于将自定义属性的值限制为 url()
值和生成的图片(如渐变)。
已注册自定义属性的 CSS <transform-function>
和 <transform-list>
语法
支持将 <transform-function>
和 <transform-list>
语法用于通过 @property
或 registerProperty()
注册的自定义属性。
该语法可用于限制自定义属性的值来表示转换。这样,我们还可以直接在这些已注册的自定义属性上使用过渡和动画。
媒体查询:脚本功能
脚本媒体功能用于查询当前文档是否支持脚本语言(例如 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-image
和 mask-mode
)用于通过在特定点遮盖或裁剪图片来隐藏元素(部分或全部)。
此功能会取消 -webkit-mask*
属性的前缀,并使其符合当前规范。其中包括 mask-image
、mask-mode
、mask-repeat
、mask-position
、mask-clip
、mask-origin
、mask-size
和 mask-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() 方法
FontFaceSet
的 check()
方法可验证是否能够使用指定字体显示文本,而无需尝试使用尚未完成加载的 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 中其他类型的宏(例如 deprecatedReplaceInURN
和 registerAdMacro()
使用的宏)更加一致,除了当前格式之外,我们还在 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 渲染支持:hdrMetadataType
、colorGamut
和 transferFunction
。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 (SAA) 扩展到非 Cookie 存储
我们提议扩展 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 嵌入式强制执行的行为保持一致。