Chrome 80 中的弃用和移除内容

Joe Medley
Joe Medley

禁止在页面关闭过程中使用同步 XMLHTTPRequest()

现在,当用户离开页面或将其关闭时,Chrome 不允许在页面关闭期间对 XMLHTTPRequest() 进行同步调用。这适用于 beforeunloadunloadpagehidevisibilitychange

为确保在网页卸载时将数据发送到服务器,建议使用 sendBeacon()Fetch keep-alive。目前,企业用户可以使用 AllowSyncXHRInPageDismissal 政策标志,而开发者可以使用源试用标志 allow-sync-xhr-in-page-dismissal 来允许在页面卸载期间发出同步 XHR 请求。这是一项临时的“用户选择不出售”措施,我们预计会在 Chrome 88 中移除此标志。

如需详细了解此方法以及替代方案,请参阅禁止在页面关闭过程中使用同步 XMLHTTPRequest()

打算移除 | Chrome 平台状态 | Chromium 错误

FTP 支持已弃用

Chrome 中的当前 FTP 实现不支持加密连接 (FTPS) 和代理。在浏览器中的 FTP 使用率已足够低,因此无法再投资改进现有的 FTP 客户端。此外,所有受影响的平台上都可以使用更强大的 FTP 客户端。

Chrome 72 不再支持通过 FTP 提取文档子资源以及呈现顶级 FTP 资源。当前导航到 FTP 网址时,结果中显示的是目录列表或下载内容,具体取决于资源类型。 Google Chrome 74 及更高版本中的一个错误导致不再支持通过 HTTP 代理访问 FTP 网址。Google Chrome 76 已完全取消对 FTP 的代理支持。

Google Chrome 的 FTP 实现的其余功能仅限于显示目录列表或通过未加密连接下载资源。

我们暂时按如下方式弃用弃用时间表:

Chrome 80(2020 年 2 月推出稳定版)

默认情况下,FTP 在非企业客户端上处于停用状态,但可以使用 --enable-ftp--enable-features=FtpProtocol 命令行标志启用。或者,您也可以通过 chrome://flags 中的 #enable-ftp 选项启用该功能。

Chrome 81(2020 年 3 月推出稳定版)

默认情况下,对于所有 Chrome 安装,FTP 处于停用状态,但可以使用 --enable-ftp--enable-features=FtpProtocol 命令行 flag 启用 FTP。

Chrome 82(2020 年 4 月推出稳定版)

FTP 支持将被彻底取消。

打算移除 | Chrome 平台状态 | Chromium 错误

禁止在页面卸载期间显示弹出式窗口

在卸载期间,网页无法再使用 window.open() 打开新网页。Chrome 弹出式窗口拦截器已经禁止了这一行为,但现在,无论是否启用该拦截器,它都被禁止了。

企业可以使用 AllowPopupsDuringPageUnload 政策标志允许在卸载期间显示弹出式窗口。Chrome 预计会在 Chrome 82 中移除此标志。

意图移除 | Chromestatus Tracker | Chromium 错误

移除了非源简洁的 ImageBitmap 序列化和传输

现在,当脚本尝试序列化或传输非源干净的 ImageBitmap 时,将引发错误。非源简洁的 ImageBitmap 包含未经 CORS 逻辑验证的跨源图片的数据。

打算移除 | Chrome 平台状态 | Chromium 错误

协议处理现在需要一个安全上下文

registerProtocolHandler()unregisterProtocolHandler() 方法现在需要安全上下文。这些方法能够重新配置客户端状态,以允许通过网络传输潜在敏感数据。

registerProtocolHandler() 方法为网页提供了一种机制,可在用户同意后自行注册以处理协议。例如,基于网络的电子邮件应用可以注册来处理 mailto: 架构。相应的 unregisterProtocolHandler() 方法允许网站放弃其协议处理注册。

打算移除 | Chrome 平台状态 | Chromium 错误

移除了 Web 组件 v0

Web Components v0 现已从 Chrome 中移除。Web Components v1 API 是一种 Web 平台标准,Chrome、Safari、Firefox 和(即将推出)Edge 已提供此功能。如需升级方面的指导,请阅读 Web 组件更新:有更多时间升级到 v1 API。以下功能现已移除。此弃用涵盖以下各项。

自定义元素

打算移除 | Chrome 平台状态 | Chromium 错误

HTML 导入

打算移除 | Chrome 平台状态 | Chromium 错误

阴影 DOM

打算移除 | Chrome 平台状态 | Chromium 错误

针对任意元素移除了 -webkit-appearance:button

更改了 -webkit-appearance:button,使其仅适用于 <button><input> 按钮。如果为不受支持的元素指定了 button,则该元素将具有默认外观。所有其他 -webkit-appearance 关键字已具有这种限制。

打算移除 | Chrome 平台状态 | Chromium 错误

废弃政策

为了确保平台健康运行,我们有时会从 Web 平台中移除一些 API,这些 API 已经开始正常运行。我们移除 API 的原因可能有很多,例如:

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

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

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

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

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