面向开发者的 Firefox 55

Firefox 55 于 2017 年 8 月 8 日发布。本文列出了对 Web 开发者有用的关键更改。

面向 Web 开发者的更改

开发者工具

HTML

CSS

SVG

JavaScript

API

新 API

  • 在 Firefox 53 中,协作调度后台任务 API(也称为 **后台任务 API** 或 requestIdleCallback API)已在首选项后面可用,现在默认情况下已启用。此 API 允许您安排任务在浏览器确定有空闲时间可用(在下次重绘之前)时执行,以便您的代码可以使用该时间,而不会造成明显的性能延迟 (Firefox bug 1314959)。
  • 现在,Windows 上默认情况下启用了 WebVR 1.1 API(并且在 Nightly 中在 macOS 上可用)。此 API 将虚拟现实设备(例如 Oculus Rift 或 HTC Vive 等头戴式显示器)公开给 Web 应用程序,使开发人员能够将显示器中的位置和移动信息转换为 3D 场景中的移动,并将内容呈现到此类显示器中。
  • 已添加 Intersection Observer API,它提供了一种异步观察目标元素与祖先元素或顶级文档的 视口 交集变化的方法 (Firefox bug 1321865)。

DOM

DOM 事件

选择 API

工作线程

服务工作线程/推送

网络音频 API

  • AudioContext 接口的非标准构造函数(它接受一个字符串枚举值,指示使用上下文的用途)会导致在提供 options 参数时抛出错误。 我们已删除非标准构造函数。 但是,请注意,Firefox 尚未支持 options 参数,并且目前正在忽略该参数 (Firefox bug 1361475).

WebRTC

  • getUserMedia() 现在默认情况下提供立体声音频流(如果源设备提供立体声声音);专门请求单声道输入的支持将在 Firefox 56 中提供。 这目前仅适用于桌面;移动版 Firefox 目前不支持立体声音频输入源 (Firefox bug 971528).
  • 现在,getUserMedia() 媒体功能、约束和设置 autoGainControlnoiseSuppression 与规范匹配;以前它们是 moz 前缀的 (Firefox bug 1366415).
  • 使用空约束集调用时,getUserMedia() 错误地返回了 NotSupportedError,而不是 TypeError。 这个问题已得到修复 (Firefox bug 1349480).
  • 以下新的 WebRTC 统计信息可用:framesEncodedpliCountnackCountfirCount (Firefox bug 1348657).
  • 以前称为 mozRttRTCInboundRTPStreamStats 字典字段已重命名为 roundTripTime,以匹配规范;此外,其行为已调整以匹配标准:它包含一个双精度浮点值,该值基于 RTCP 接收器报告中的 RTCP 时间戳估计往返时间,以秒为单位(按照 RFC 3550,第 6.4.1 节 中描述的算法)。 (Firefox bug 1344970)。 但是,请注意,此属性很快将移动到另一个字典 (RTCRemoteInboundRTPStreamStats) (Firefox bug 1380555).
  • RTCRTPStreamStats 字典现在包含 firCountpliCountnackCount 字段。 这些字段返回可以用于确定连接可靠性的低级信息 (Firefox bug 1348657).
  • RTCOutboundRTPStreamStats 字典现在包含 framesEncoded 字段,该字段报告已成功为流编码的帧数;借助此信息,您可以计算帧速率 (Firefox bug 1348657).
  • 在 Android 上,现在有一个 pref 用于开启硬件视频编码,以提高视频通话性能并节省电池电量。 默认情况下将在 Firefox 56 中启用 (Firefox bug 1265755).

加密媒体扩展 API

  • 尽管规范中不允许这样做,但 Firefox 目前允许在不安全的上下文中使用加密媒体扩展。 这种情况将在不久的将来发生改变,从 Firefox 55 开始,在执行此操作时,弃用警告将输出到 网络控制台。 (Firefox bug 1361000).
  • Firefox 目前不要求在传递给 Navigator.requestMediaKeySystemAccess()suggestedConfigurations 参数中包含至少一个 MediaKeySystemCapabilities 对象,而规范却强制要求这样做。 从 Firefox 55 开始,在未指定支持的编解码器的情况下指定任何音频或视频配置时,警告将输出到网络控制台。 很快,如果未为音频和视频中的一个或多个包含有效的配置,则会抛出异常 Firefox bug 1368683).

WebGL

安全性

插件

  • 现在,Flash 内容采用“点击激活”方式 (Firefox bug 1317856)。 此功能立即对所有 Nightly 用户和 50% 的测试版用户生效。 对于 Firefox 55 发布版本,计划是在发布后 2 周内为 5% 的用户激活此功能,在发布后 4 周内为 25% 的用户激活,在发布后 6 周内为 100% 的用户激活 (Firefox bug 1365714).
  • Flash 和其他插件不再可以从任何 URL 方案加载,除了 http://https:// (Firefox bug 1335475).

其他

  • 现在,Linux 上的 Firefox 可以使用 -headless 标志以无头模式运行(请参阅 Firefox bug 1356681)。

从 Web 平台中移除的内容

HTML

  • xml:base 属性不再可以用于设置出现在 style 属性中的路径的基 URL,例如——<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div> (Firefox bug 1350521).
  • 在 Firefox 55+ 中,<style> 元素的 scoped 属性已被隐藏在内容文档的 pref (layout.css.scoped-style.enabled) 后面,因为没有其他浏览器支持它。
  • Gecko 中已删除对 <meta> 元素的 http-equiv 属性的模糊 MSThemeCompatible 值的支持。 没有其他现代浏览器支持它,并且它会导致兼容性问题 (Firefox bug 966240).

CSS

API

  • UIEvent.isChar 属性从未得到除 Firefox 之外的任何浏览器的支持,并且从未得到除 macOS 外的任何平台的完全实现。 因此,它在 Firefox 55 中被删除,以与其他浏览器保持一致。
  • 已从平台中删除专有的 Firefox OS 设备存储 API (Firefox bug 1299500).
  • 非标准的 Window.find() 方法(用于打开浏览器的“查找”对话框)中的 aShowDialog 参数已被移除(Firefox bug 1348409)。
  • HTMLFormElement.requestAutoComplete() 方法已被移除(参见 HTMLFormElement)(Firefox bug 1270740)。
  • 非标准的、Mozilla 特定的 WebRTC 报价选项 mozDontOfferDataChannelmozBundleOnly 已从 RTCOfferOptions 字典中移除,不再受 RTCPeerConnection.createOffer() 支持(Firefox bug 1196974)。
  • 对专有 Firefox OS Audio Channels API 的支持已从 HTMLMediaElementAudioContext 中移除(Firefox bug 1358061)。

SVG

  • SVGZoomEventSVGZoomEvents 接口已从 SVG2 规范和 Gecko 中移除,以及 onzoom <svg> 属性(Firefox bug 1314388)。

面向附加组件和 Mozilla 开发者的更改

WebExtensions

旧版本