Chrome 52 中的 API 弃用和移除

Joe Medley
Joe Medley

在几乎所有版本的 Chrome 中,我们都会看到大量的更新, 产品改进、性能以及 Web 功能 平台。本文介绍了 Chrome 52(测试版)中 更新至 6 月 9 日。此列表随时可能更改。

废弃了 MediaStream 结束事件和属性以及处理的属性

要点ended 事件和属性以及 onended 事件处理脚本已被弃用,因为它们已从媒体捕获和流式传输规范中移除。

打算移除 | Chromestatus Tracker | Chromium bug

ended 事件和 onended 事件处理脚本在大约三年内都没有纳入 WebRTC 规范。想要监控事件的开发者应使用 MediaStreamTracks,而不是 MediaStreams

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

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

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

打算移除 | Chromestatus Tracker | Chromium bug

就其本质而言,触摸事件与其对应的鼠标事件相比可能并不明确。例如,如果用户在屏幕上滑动手指,那么说的是用户滑动切换开关还是滚动视图?iframe 中的一些第三方内容已利用这种不明确之处,有意地在包含网页上停用滚动功能。

为防止出现这种问题,系统将禁止针对来自跨源 iframe 的触摸事件显示弹出式窗口和其他敏感操作。touchend 事件的行为仍和之前一样。

弃用了 postMessage() 的重载

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

打算移除 | Chromestatus Tracker | Chromium bug

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

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

此列表中的最后一项内容是该规范发展和实现历史中的意外事件。由于很少使用,因此我们会将其弃用并稍后移除。这同时适用于 window.postMessage()worker.postMessage()

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

不再支持 标记

要点:为了遵守该规范并提高与其他浏览器的一致性,我们将移除 <meta> 标记内对 X-Frame-Options 的支持。

打算移除 | Chromium bug

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

为了既符合该规范,又提高了与其他浏览器的一致性,我们将移除对 <meta> 标记内 X-Frame-Options 的支持。

移除非主按钮点击事件

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

打算移除 | Chromestatus Tracker | Chromium bug

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

移除 requestAutocomplete()

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

打算移除