Chrome 99 中的弃用和移除内容

Chrome 99 Beta 版于 2022 年 2 月 3 日发布,预计将于 2022 年 3 月初成为稳定版。

移除了不安全的源上的 Battery Status API

不安全的源(例如 HTTP 网页或嵌入 HTTP 网页中的 HTTPS iframe)不再支持 Battery Status API。借助 Battery Status API,Web 开发者可以访问系统的电池电量以及系统是否正在充电等信息。这是一项已推出十多年的强大功能,因此最初设计时采用了不同的安全限制条件。

移除 font-family -webkit-standard

此版本的 Chrome 不再支持 font-family"-webkit-standard"。此值只是专有关键字 "-webkit-body" 的别名,之所以公开,是因为它继承自 WebKit。移除此属性可提高与 CSS 规范和 Firefox 的一致性。

移除 GamepadList

navigator.getGamepads() 方法现在会返回 Gamepad 对象的数组,而不是 GamepadList。Chrome 已不再支持 GamepadList。这使得 Chrome 能够满足规格要求,并满足 Gecko 和 Webkit 的要求。如需一般关于游戏手柄的信息,请参阅使用游戏手柄玩 Chrome 恐龙游戏

更新 WebCodecs 以符合规范

由于 WebCodecs 规范最近发生了更改,Chrome 移除了两项内容

EncodedVideoChunkOutputCallback() 方法接受 EncodedVideoChunkMetadata 字典。之前,名为 temporalLayerId 的成员位于 EncodedVideoChunkMetadata.temporalLayerId。符合规范,它现在位于 EncodedVideoChunkMetadata.SvcOutputMetadata.temporalLayerId

该规范要求 VideoFrame() 构造函数为不隐式具有时间戳的 CanvasImageSource 类型(例如 HTMLCanvasElement)添加一个时间戳参数 (VideoFrameInit.timestamp)。如果缺少时间戳,应生成 TypeError,但 Chrome 之前将时间戳默认为零。这似乎有帮助,但如果您随后将 VideoFrame 发送到 VideoEncoder,其中时间戳将用于指导比特率控制。

废弃政策

为了保持平台健康,我们有时会从运行其课程的网络平台中移除 API。我们移除 API 的原因可能有很多,例如:

  • 它们已被较新的 API 取代。
  • 我们更新了这些 API,以反映规范的变化,以便与其他浏览器保持一致。
  • 这些是早期实验,在其他浏览器中从未实现过,因此可能会增加 Web 开发者的支持负担。

其中的部分变更只适用于极少数网站。为了提前缓解问题,我们会尽量提前通知开发者,以便他们进行必要的更改,确保网站正常运行。

Chrome 目前有一套 API 的弃用和移除流程,主要包括:

  • blink-dev 邮寄名单上公布。
  • 当在网页上检测到使用情况时,请在 Chrome 开发者工具控制台中设置警告并提供时间刻度。
  • 请耐心等待,监控该功能,然后在使用量下降时移除该功能。

您可以使用已弃用的过滤条件在 chromestatus.com 上查找所有已弃用功能的列表,并通过应用已移除的过滤条件查找已移除的功能。我们还会尝试在这些博文中总结一些更改、推理和迁移路径。