Chrome 116 Beta 版

CSS 动画路径、往返缓存 NotRestoredReason API、文档画中画等。

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

CSS

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

CSS 动态路径

动画路径允许作者沿着开发者指定的路径放置任何图形对象,并为其添加动画效果。这样一来,就可以实现许多强大的新转换,例如使用极坐标(通过 ray() 函数)定位,而不是使用 translate() 函数使用的标准矩形坐标定位,或沿着定义的路径为元素添加动画效果。这样可以更轻松地定义复杂而又美观的 2D 空间过渡效果。路径可以指定为 circle()ellipse()rect()inset()xywh()polygon()ray()url()

显示和内容可见性动画

Chrome 116 支持在关键帧动画中使用 displaycontent-visibility 属性。通过这项支持,开发者可以创建退出动画,之后元素会自动变为 display: nonecontent-visibility: hidden,而无需在动画播放完毕后编写任何 JavaScript 来处理该切换。这允许纯粹在 CSS 中添加元素的退出动画。

Web API

AbortSignal.any()

返回在任意来源信号被取消时中止的信号。开发者可以使用此方法合并独立的中止来源(例如,使用 AbortSignal.timeout() 指定的超时以及与 AbortController 关联的信号),并将它们传递给 fetch() 等异步 API。

对 Fetch 的 BYOB 支持

Chrome 的 ReadableStream 实现支持对可读字节流使用自带缓冲区 (BYOB) 读取器。现在,Response.body 也是一个可读字节流,而不是“默认”可读流。这使得 Fetch API 可以与 BYOB 读取器一起使用,减少垃圾回收开销和副本,并提高用户响应能力。Blob.stream()现在也会从这项优化中受益。

往返缓存 NotRestoredReason API

NotRestoredReason API 通过 PerformanceNavigationTiming API 以框架树结构的形式报告网页没有从 BFcache 提供的原因列表。

文档画中画

文档画中画添加了一个新 API,用于打开始终开启的窗口,该窗口可填充任意 HTMLElements。这是对现有 HTMLVideoElement API 的扩展,仅允许将 HTMLVideoElement 放入画中画 (PiP) 窗口中。这样一来,Web 开发者便可以为用户提供更好的画中画体验。

权限政策来源中的扩展通配符

许可名单中的子域名通配符可以提供一些宝贵的灵活性,但与现有通配符解析器不同,并且需要新的代码和规范工作。此 intent 可重复使用现有内容安全政策规范的某些部分,并将 scheme + wildcard domainwildcard port 列入许可名单,从而减少这种开销。具体来说,此 intent 将采用许可名单定义中的主机来源和架构来源的定义,而不是来源,同时要求路径部分为空(因为权限政策适用于匹配的来源)。

FedCM 软件包:Login Hint API、User Info API 和 RP Context API

此捆绑式更新支持自定义使用 Federated Credential Management API (FedCM) 的联合登录流程。

借助 Login Hint API,依赖方 (RP) 可以指定有关他们希望在 FedCM 界面中显示的用户帐号的提示。这主要用于为回访用户提供更出色的用户体验。

借助 User Info API,身份提供方 (IdP) 可以提取用户信息,以便能够为回访用户提供个性化登录体验,例如通过个性化的“使用 IdP 登录”按钮。

借助 RP Context API,RP 可以请求 FedCM 对话框将标题“登录”替换为“注册”“使用”或“继续”,以便与用户的实际意图保持一致。

未组合的鼠标和指针进入/离开事件

使 mouseentermouseleavepointerenterpointerleave 事件 "false" 中的 event.composed 属性符合规范并修复互操作性差异。鼠标事件的界面事件规范和指针事件规范均将这些事件定义为非组合事件。这两项规范在几年前已经放弃了最初的定义:https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461。除了解决互操作性缺口之外,这项更改还修复了当 Chromium 监听 DOM 主机时,

移除 document.open 沙盒继承

目前,当 document.open 以其他窗口为目标时,调用方的沙盒标志会应用于被调用方。在此次变更之后,情况将不再如此。

报告因 NavigationTiming 中导致重启的严重 CH

网站可以通过在 Critical-CH HTTP 响应标头中添加特定客户端提示,来表明它对该网页至关重要。如果 Critical-CH HTTP 响应标头中列出的提示可以(但并不包含)包含在最初发送的 HTTP 请求中,则这样做会触发连接重启。此 intent 建议向 PerformanceNavigationTiming 接口添加 readonly attribute DOMHighResTimeStamp criticalCHRestart;

正在进行源试用

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

COOP:限制属性

Cross-Origin-Opener-Policy 用于切断弹出式窗口和打开程序之间的关系,以提高安全性。"restrict-properties" 建议的值可以限制关系,而不是彻底切断关系。与 COEP 配对后,它将启用 crossOriginIsolated。

注册以试用 COOP 限制属性源试用

FedCM 登录状态 API

借助 Federated Credential Management API (FedCM) 的 IdP Sign-in Status API,身份提供方 (IdP) 可以在用户登录/退出时向浏览器发出信号,以便 FedCM 通过优化用户体验来提高其隐私属性。

注册参加 FedCM 登录状态源试用

EditContext API

EditContext API 简化了将 Web 应用与高级文本输入法(例如 VK 形状撰写、手写面板、语音识别和 IME 组合)集成的过程。该 API 可以改进无障碍功能和性能,并解锁基于网络的编辑器的新功能。

注册 EditContext API 源试用

动画帧时间长

这是对长任务的扩展。它会衡量任务及其后续渲染更新,从而添加长时间运行的脚本、渲染时间和强制布局和样式所花费的时间等信息(称为布局抖动)。

开发者可以将此情况用作“迟缓”的诊断依据,此数据由 INP 衡量,方法为找出主线程拥塞的原因,而主线程拥塞通常是导致 INP 出错的原因。

注册参加 Long Animation Frame Timing 源试用