Chrome 52 中的 API 弃用和移除

Joe Medley
Joe Medley

在几乎每个版本的 Chrome 中,我们都看到了针对产品及其性能以及网络平台功能的大量更新和改进。本文介绍了自 6 月 9 日起 Chrome 52(Beta 版)中的变化。此列表随时可能发生变化。

废弃了 MediaStream 已结束事件和属性以及 onended 属性

要点:我们即将弃用 ended 事件和属性以及 onended 事件处理脚本,因为它们已从媒体捕获和视频流规范中移除。

意图移除 | Chromestatus Tracker | Chromium 错误

大约三年来,ended 事件和 onended 事件处理脚本都没有纳入 WebRTC 规范。想要观看活动的开发者应使用 MediaStreamTracks 而非 MediaStreams

我们预计会在 Chrome 53 中将其移除。

在触摸事件期间(点按手势除外),阻止来自跨源 iframe 的弹出式窗口

要点:Chrome 将开始禁止针对与跨源 iframe 内的点按不对应的触摸事件执行弹出式窗口和其他敏感操作。

意图移除 | Chromestatus Tracker | Chromium 错误

就触摸事件本身而言,与对应的鼠标事件相比,触摸事件可能不明确。例如,如果用户在屏幕上滑动手指,可以说是滑动切换开关还是滚动视图?iframe 中的某些第三方内容利用了这种不明确性,故意禁止在包含网页的滚动操作。

为解决此问题,对于来自跨源 iframe 的触摸事件,将禁止出现弹出式窗口和其他敏感操作。触摸结束事件的行为方式与以前一样。

废弃了 postMessage() 的重载

TL;DR:我们即将弃用 postMessage() 接口的一个不需要且很少使用的变体,具体来说就是 postMessage(message, transferables, targetOrigin)

意图移除 | Chromestatus Tracker | Chromium 错误

postMessage() 方法可在不同源的网页脚本之间安全地进行通信。WebKit/Blink 支持三个版本:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

此列表中的最后一项是规范发展历程中的意外事件。由于该功能很少使用,因此稍后会被弃用。这适用于 window.postMessage()worker.postMessage()

我们预计会在 Chrome 54 中将其移除。

取消了对 X-Frame-Options 的支持 tags

要点:为了符合该规范并提高与其他浏览器的一致性,我们将不再支持 <meta> 标记内的 X-Frame-Options

意图移除 | Chromium 错误

X-Frame-Options HTTP 响应标头指示浏览器是否可以使用 <frame><iframe><object> 标记呈现网页。这样,网站就可以避免点击劫持,因为此类网页无法嵌入到其他网站中。当前版本的 X-Frame-Options 规范明确限制用户代理在 <meta> 标记内支持此字段。

为了符合此规范并提高与其他浏览器的一致性,我们将不再支持在 <meta> 标记中使用 X-Frame-Options

移除非主要按钮点击事件

要点:非主要鼠标点击不再触发点击事件,但 MouseEvent.button 仍然可用。

意图移除 | Chromestatus Tracker | Chromium 错误

为了使 Chrome 符合 UIEvents 规范,我们将移除非主要鼠标按钮的点击事件。非主要鼠标按钮因设备而异。一般来说,这是指除鼠标右键或左键之外的任何内容。请注意,可能仍会使用发送到 mousedownmouseup 等事件的 MouseEvent.button 属性来检索点击的确切按钮。

移除 requestAutocomplete()

requestAutocomplete() 函数允许通过浏览器的自动填充功能按需填写表单。然而两年多,此功能仅在 Blink 中受支持,且使用率较低。因此,我们从 Chrome 52 中移除了 requestAutocomplete()

意图移除