Chrome 59 中的弃用和移除功能

Joe Medley
Joe Medley

在几乎每个版本的 Chrome 中,我们都会对该产品及其性能以及 Web 平台的功能进行大量更新和改进。本文介绍了 Chrome 59 中已废弃和移除的功能。Chrome 59 自 4 月 27 日起处于 Beta 版阶段。此列表随时都可能发生变化。

暂时为某些 Blob 停用 navigator.sendBeacon()

navigator.sendBeacon() 函数自 Chrome 39 起可用。在最初的实现中,该函数的 data 参数可以包含任何类型不属于 CORS 安全列表的任意 blob。我们认为这是一个潜在的安全威胁,但尚无人尝试利用它。由于我们没有合理的即时修复方法,因此暂时无法再对类型不在 CORS 安全名单中的 Blob 调用 sendBeacon()

虽然这项变更已在 Chrome 60 中实现,但此后又合并回到了 Chrome 59。

Chromium bug

从 WebVR 中移除未包含在修订版规范中的功能

WebVR 的当前实现(最初在 Chrome 52 中实现)包含一些方法和属性,这些方法和属性不会出现在最终规范中。从 Chrome 56 开始,我们为这些功能添加了废弃消息,以便在源代码试用版中使用。这些功能现已被移除。具体包括:

  • VRDisplay.getPose()
  • VRDisplay.resetPose()
  • VRDisplay.isConnected
  • VRDisplayCapabilities.hasOrientation
  • VREyeParameters.fieldOfView

意向进行实验 | Chromestatus Tracker | Chromium bug | 到目前为止的源试用结果

从服务工件中移除 FileReaderSync

服务工件规范一直都有一条(非规范性)备注,即“不得在服务工件内发起任何类型的同步请求”,以避免阻塞服务工件(因为阻塞服务工件会阻塞来自受控网页的所有网络请求)。不过,服务工件中仍然可以使用 FileReaderSync 等同步 API。FileReaderSync 已在 Chrome 57 中废弃。该功能已在 Chrome 59 中移除。

废弃意图 | Chromestatus 跟踪器 | Chromium bug

移除了非标准 DeviceOrientation 事件初始化函数

一段时间以来,浏览器 API 的一个普遍趋势是,不再使用初始化函数,而是使用对象构造函数。最新版本的 DeviceOrientation 事件规范遵循了这一趋势,要求为 DeviceOrientationEventDeviceMotionEvent 提供构造函数。

由于 Chrome 在 Chrome 59 中默认启用这些构造函数,因此还移除了旧版初始化函数 initDeviceMotionEvent()initDeviceOrientationEvent()。Edge 已废弃初始化函数,Firefox 已发布构造函数。

移除意图 | Chromium bug

移除了悬停/任何悬停媒体查询的“on-demand”值

大约一年前,hover/any-hover 媒体查询的“on-demand”值已从规范中移除。因此,Chrome 59 中移除了这些媒体查询。

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

移除了 MediaStreamTrack.remote

在 Chrome 48 中,添加了 MediaStreamTrack.remote 属性以支持 Media Capture and Streams API,目的是让 JavaScript 能够知道 WebRTC MediaStreamTrack 是来自远程来源还是本地来源。

自那时起,此属性已从规范中移除。从 Chrome 59 开始,此属性不再受支持。

Chromium bug

移除了使用 document.createEvent() 创建 ProgressEvent 的支持

早期版本的 DOM 规范需要实现 document.createEvent("ProgressEvent")。不过,该功能的使用率一直很低,并且 GeckoWebkit 已移除对该功能的支持。此事件本身已于今年 3 月从规范中移除

为符合平台和最新规范,ProgressEvent 现已从 Chrome 中移除。

Chromium bug

移除了 SVGTests.required 功能

在 SVG 规范的第一个版本中,应用可以调用 DOMImplementation.hasFeature 来验证是否支持特定 SVG 接口。许多 SVG 元素都包含一个返回相同信息的 requiredFeatures 属性。

在 SVG2 中,DOMImplementation.hasFeature 属性始终返回 true。因此,requiredFeatures 不再执行任何有用操作。由于该属性已从规范中移除,因此在 Chrome 54 中已被弃用,现在已被移除。

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