Chrome 57 中的 API 弃用和移除

Joe Medley
Joe Medley

在几乎所有版本的 Chrome 中,我们都会看到大量的更新, 产品改进、性能以及 Web 功能 平台。本文介绍了 Chrome 57 此功能在 2 月初仍处于 Beta 版阶段。此列表随时可能更改 。

移除 BluetoothDevice.uuids 属性

我们将移除 BluetoothDevice.uuids 属性, Web Bluetooth API: 与当前规范保持一致。您可以通过调用 device.getPrimaryServices().

Chromium 错误

移除密钥生成元素

从 Chrome 49 开始,<keygen> 的默认行为一直是返回空 字符串(除非已授予此网页的权限)。不支持 IE/Edge <keygen>,并且尚未表明支持<keygen>的公共信号。 Firefox 已经通过用户手势控制 <keygen>,但已公开 用户也支持将其移除Safari 会发货 <keygen> 且尚未表达 公众对其一如既往的支持。在 Chrome 57 中,此元素 已移除。

打算移除 | Chromestatus Tracker | Chromium bug

移除了带前缀的资源计时缓冲区管理 API

两种方法和一个事件处理脚本 webkitClearResourceTimings()webkitSetResourceTimingBufferSize()onwebkitresourcetimingbufferfull 已过时且特定于供应商。通过 这些 API 的标准版 且带前缀的函数 也已弃用这些功能最初 但 Safari 尚未启用它们。Firefox、IE 10 及更高版本和 Edge 只有无前缀的 API 版本。因此,使用 webkit 版本 即将被移除。

打算移除 | Chromestatus Tracker | Chromium bug

移除了 ServiceWorkerMessageEvent,改为使用 MessageEvent

HTML 规范扩展了 MessageEvent,以允许将 ServiceWorker 作为 source 属性。client.postMessage()并创建自定义消息 事件改为使用 MessageEvent 而非 ServiceWorkerMessageEvent。 已移除 ServiceWorkerMessageEvent

打算移除 | Chromestatus Tracker | Chromium bug

移除带有 webkit 前缀的 IndexedDB 全局别名

IndexedDB 入口点和全局构造函数已通过 webkit 公开 在 Chrome 11 左右的某个位置添加了前缀。无前缀版本已添加到 Chrome 24 和带前缀的版本在 Chrome 38 中已废弃。通过 以下接口会受到影响:

  • webkitIndexedDB(主入口点)
  • webkitIDBKeyRange(不可调用的全局构造函数,但具有实用的静态方法)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction(不可调用的全局构造函数)

打算移除 | Chromestatus Tracker | Chromium bug

WebAudio:移除带前缀的 AudioContext 和 OfflineAudioContext

自 2011 年年中以来,Chrome 一直支持 WebAudio,包括 AudioContextOfflineAudioContext 是在次年添加的。鉴于标准 并且 Google 的长期目标是删除带有前缀的 这些接口的带前缀版本已被弃用, 2014 年底,现在正被移除。

打算移除 | Chromestatus Tracker | Chromium bug

废弃并移除 webkitCancelRequestAnimationFrame

webkitCancelRequestAnimationFrame() 方法是过时的, 特定于供应商的 API 和标准 cancelAnimationFrame() 在 Chromium 中受支持。因此,我们即将移除 webkit 版本。

打算移除 | Chromestatus Tracker | Chromium bug

弃用 usemap 属性不区分大小写的匹配

usemap 属性以前定义为无大小写。很遗憾 实施过程太复杂了,没有浏览器实施 正确。研究表明,这种复杂的算法没有必要, 甚至 ASCII 不区分大小写的匹配也没必要。

因此,该规范进行了更新,使区分大小写的匹配 。旧行为已在 Chrome 57 中弃用,预计将在 Chrome 58。

打算移除 | Chromestatus Tracker | Chromium bug

弃用 Service Worker 中的 FileReaderSync

Service Worker 规范 总是带有(非规范性)注释,即“任何 类型的同步请求不得在服务内发起 worker”,以免阻塞 Service Worker。阻塞 Service Worker 就会屏蔽来自受控网页的所有网络请求遗憾的是, 长期以来,FileReaderSync API 在 Service Worker 中一直可用。

目前,只有 Firefox 和 Chrome 在 Service Worker 中公开 FileReaderSync。 Firefox 在规范讨论中达成一致 以修复此问题我们预计会在 Chrome 59 中将其移除。

打算移除 | Chromestatus Tracker | Chromium bug

弃用了 HTMLEmbedElement 和 HTMLObjectElement 的旧版调用方

如果某个接口具有旧版调用方,则意味着可以作为 函数。目前,HTMLEmbedElementHTMLObjectElement 支持此功能 功能在 Chrome 57 中,此功能已被弃用。移除后 调用都会抛出异常。

此更改使 Chrome 与近期的规范变更保持一致。旧版行为 不支持 Edge 或 Safari, 已从 Firefox 中移除

打算移除 | Chromestatus Tracker | Chromium bug

弃用了 RTCRtcpMuxPolicy 的“协商”

Chrome 会使用 rtcpMuxPolicy 来指定有关 RTP/RTCP 复用的使用。在 Chrome 57 中,我们更改了 rtcpMuxPolicy 更改为“需要”和已弃用的原因如下:

  • 非多路复用 RTCP 使用额外的网络资源。
  • 正在移除“协商”将使 API Surface 更简单 &quot;RtpSender&quot;/&quot;RtpReceiver&quot;那么就只会有一种传输

在 Chrome 57 中,“协商”已弃用。我们认为这是一项非重大变更 因为用户会收到弃用消息,而 RTCPeerConnection 仍然可以 资源。Chrome 63 中移除了此功能。

打算弃用 | Chromium bug

不再支持在子资源请求中嵌入凭据

将凭据硬编码到子资源请求中 因为黑客可以利用这种漏洞 旧貌换新颜。对于有凭据的子资源请求,这些危险性加剧了 内部 IP 范围(如您的路由器等)的 IP 地址。由于使用量较低 关闭这个(小)安全漏洞似乎是很合理的。

开发者可以嵌入不需要基本/摘要身份验证的资源, 而非 Cookie 和其他会话管理机制

打算移除 | Chromestatus Tracker | Chromium bug