Firefox 55 开发者版本说明

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

面向网络开发者的变更

开发者工具

HTML

CSS

SVG

JavaScript

API

新 API

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

DOM

DOM 事件

Selection API

Worker

Service Worker/推送

Web Audio 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 统计信息:framesEncodedpliCountnackCountfirCountFirefox bug 1348657)。
  • RTCInboundRTPStreamStats 字典中原名为 mozRtt 的字段已重命名为 roundTripTime 以匹配规范;此外,其行为已调整以符合标准:它包含一个双精度浮点值,该值基于 RTCP 接收方报告中的 RTCP 时间戳估算往返时间,单位为秒(遵循 RFC 3550, section 6.4.1 中描述的算法)。(Firefox bug 1344970)。但请注意,此属性即将移动到另一个字典(RTCRemoteInboundRTPStreamStats)(Firefox bug 1380555)。
  • RTCRTPStreamStats 字典现在包含 firCountpliCountnackCount 字段。这些字段返回可用于确定连接可靠性的底层信息(Firefox bug 1348657)。
  • RTCOutboundRTPStreamStats 字典现在包含 framesEncoded 字段,该字段报告已为该流成功编码的帧数;利用此信息,你可以计算帧率(Firefox bug 1348657)。
  • 在 Android 上,现在有一个首选项可以开启硬件视频编码,以提高视频通话性能并节省电池。此功能将在 Firefox 56 中默认启用(Firefox bug 1265755)。

Encrypted Media Extensions API

  • 尽管规范不允许,但 Firefox 目前允许在不安全的上下文中使用加密媒体扩展(Encrypted Media Extensions)。这种情况将在不久的将来改变,从 Firefox 55 开始,当出现这种情况时,会在网络控制台中输出弃用警告。(Firefox bug 1361000)。
  • 规范强制要求,传递给 Navigator.requestMediaKeySystemAccess()suggestedConfigurations 参数中必须至少包含一个 MediaKeySystemCapabilities 对象,但 Firefox 目前并未强制执行此要求。从 Firefox 55 开始,当指定任何音频或视频配置但未指定支持的编解码器时,网络控制台会输出警告。不久之后,若未能为音频和/或视频包含有效配置将抛出异常(Firefox bug 1368683)。

WebGL

安全

插件

  • Flash 内容现在是“点击以激活”(Firefox bug 1317856)。这项改动已立即对所有 Nightly 用户生效,并对 50% 的 beta 用户生效。对于 Firefox 55 发行版,计划在发布后 2 周为 5% 的用户激活,发布后 4 周为 25% 的用户激活,发布后 6 周为 100% 的用户激活(Firefox bug 1365714)。
  • Flash 和其他插件不能再从除 http://https:// 之外的任何 URL 协议方案加载(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)。

  • 由于没有其他浏览器支持,<style> 元素的 scoped 属性在 Firefox 55+ 的内容文档中已被隐藏在一个首选项(layout.css.scoped-style.enabled)之后。

  • Firefox 已移除对 <meta> 元素的 http-equiv 属性的一个鲜为人知的值 MSThemeCompatible 的支持。没有其他现代浏览器支持它,并且它导致了兼容性问题(Firefox bug 966240)。

CSS

API

SVG

  • SVGZoomEventSVGZoomEvents 接口已从 SVG2 规范和 Gecko 中移除,同时移除的还有 onzoom <svg> 属性(Firefox bug 1314388)。

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

WebExtensions