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 bug

弃用了 FTP 支持

Chrome 中当前的 FTP 实现不支持加密连接 (FTPS) 也不支持代理。浏览器中的 FTP 使用率非常低,因此我们无法再投资于改进现有 FTP 客户端。此外,所有受影响的平台上都提供功能更强大的 FTP 客户端。

Chrome 72 移除了对通过 FTP 提取文档子资源和呈现顶级 FTP 资源的支持。目前,访问 FTP 网址会显示目录列表或下载内容,具体取决于资源类型。Google Chrome 74 及更高版本中存在一个 bug,导致不再支持通过 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 命令行标志开启。

Chrome 82(2020 年 4 月发布的稳定版)

我们将完全移除对 FTP 的支持。

移除意图 | Chrome 平台状态 | Chromium bug

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

页面在卸载期间可能无法再使用 window.open() 打开新页面。Chrome 弹出式窗口拦截器之前就已禁止此行为,但现在无论是否启用了弹出式窗口拦截器,此行为都将被禁止。

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

移除意图 | Chromestatus 跟踪器 | Chromium bug

移除了非原始清洁 ImageBitmap 序列化和传输

现在,如果脚本尝试序列化或传输非源清洁 ImageBitmap,则会引发错误。非来源清洁 ImageBitmap 是指包含未经 CORS 逻辑验证的跨源图片数据的 ImageBitmap。

移除意图 | Chrome 平台状态 | Chromium bug

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

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

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

移除意图 | Chrome 平台状态 | Chromium bug

移除了 Web Components v0

Web Components v0 现已从 Chrome 中移除。Web Components v1 API 是一项 Web 平台标准,已在 Chrome、Safari、Firefox 和(即将推出的)Edge 中发布。如需升级方面的指导,请参阅 Web 组件更新:升级到 v1 API 的时间更充裕。以下功能现已移除。此次弃用涵盖下列内容。

自定义元素

移除意图 | Chrome 平台状态 | Chromium bug

HTML 导入

移除意图 | Chrome 平台状态 | Chromium bug

Shadow DOM

移除意图 | Chrome 平台状态 | Chromium bug

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

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

移除意图 | Chrome 平台状态 | Chromium bug

废弃政策

为了确保平台的正常运行,我们有时会从网站平台中移除已完成生命周期的 API。我们移除 API 的原因有很多,例如:

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

其中一些更改将对极少数网站产生影响。为了提前缓解问题,我们会尽量提前通知开发者,以便他们进行必要的更改来确保其网站正常运行。

Chrome 目前 有 API 废弃和移除流程,具体如下:

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

您可以使用 已废弃的过滤条件 在 chromestatus.com 上查找所有已废弃的功能,也可以应用已移除的过滤条件查找已移除的功能。我们还会尝试在这些帖子中总结一些变更、原因和迁移路径。