Chrome 52 中的 API 弃用和移除

Joe Medley
Joe Medley

在几乎每个版本的 Chrome 中,我们都会对该产品及其性能以及 Web 平台的功能进行大量更新和改进。本文介绍了 Chrome 52 中的变更。截至 6 月 9 日,Chrome 52 处于 Beta 版阶段。此列表随时都可能发生变化。

弃用 MediaStream ended 事件和属性以及 onended 属性

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

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

ended 事件和 onended 事件处理程序已从 WebRTC 规范中移除大约三年。想要监控事件的开发者应使用 MediaStreamTracks,而不是 MediaStreams

预计会在 Chrome 53 中移除。

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

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

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

与相应的鼠标事件相比,触摸事件在本质上可能比较模糊。例如,如果用户在屏幕上滑动手指,是滑动切换开关还是滚动视图?iframe 中的某些第三方内容利用了这种模糊性,故意停用包含页面的滚动功能。

为解决此问题,系统将禁止对来自跨源 iframe 的触摸事件执行弹出式窗口和其他敏感操作。touchend 事件将继续按原样运行。

废弃 postMessage() 的过载

要点postMessage() 接口的一个不必要且鲜少使用的变体(即 postMessage(message, transferables, targetOrigin))即将被弃用。

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

postMessage() 方法是一种在不同来源的网页脚本之间安全通信的方式。WebKit/Blink 支持以下三个版本:

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

此列表中的最后一项是规范演变和实现历史的意外产物。由于很少使用,因此该功能将被弃用,日后也会被移除。这同时适用于 window.postMessage()worker.postMessage()

预计会在 Chrome 54 中移除。

移除了对 X-Frame-Options 的支持 标记

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

移除意图 | Chromium bug

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

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

移除非主要按钮点击事件

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

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

为了使 Chrome 符合 UIEvents 规范,我们将移除非主鼠标按钮的点击事件。非主按钮因设备而异。通常,这意味着除鼠标右键和左键以外的任何按钮。请注意,您可能仍可以使用发送到 mousedownmouseup 等事件的 MouseEvent.button 属性检索点击的确切按钮。

移除了 requestAutocomplete()

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

移除意图