Firefox 54 开发者发布说明
Firefox 54 于 2017 年 6 月 13 日发布。本文列出了对 Web 开发者有用的主要变更。
面向网络开发者的变更
开发者工具
- 网络请求摘要现在包含实际传输的数据量(“传输大小”),性能分析视图也包含(Firefox bug 1168376)。
- 网络请求标头视图现在链接到 MDN 上的相关文档(Firefox bug 1320233)。
CSS
clip-path现在支持 基本形状(Firefox bug 1247229)。- Firefox 对 CSS Flexbox 和 CSS 对齐的实现,现已根据更新后的规范语言,实现了属性
align-items和align-self之间的交互,以及justify-items和justify-self之间的交互(Firefox bug 1340309)。 - 类型为
checkbox和radio的<input>元素,当设置了-moz-appearance: none时,现在是替换元素,以与其他浏览器兼容(Firefox bug 605985)。 - 之前,一个带有
display:inline-block样式且其子元素为HTMLInputElement类型并设置了display:block的元素,会有一个错误的基线(Firefox bug 1330962)。现已修复。 - 当 Mozilla 引入 Firefox 的专用内容线程(通过 Electrolysis 或 e10s 项目)时,对
<option>元素的样式支持暂时被移除。从 Firefox 54 开始,您可以通过color和background-color属性,重新为<option>元素设置前景色和背景色。更多信息请参阅(Firefox bug 910022)。请注意,由于缺乏对比度,在 Linux 上此功能仍被禁用(请参阅 Firefox bug 1338283 以了解此方面的进展)。 - CSS Animations 现在会在动画过早中止时,按预期发送
animationcancel事件(Firefox bug 1302648)。 - 在某些情况下,透明颜色(即 alpha 通道为 0 的颜色)会被序列化为
transparent颜色关键字;此问题已修复,Firefox 现在遵循规范(以及其他浏览器的实现)。更多信息请参阅(Firefox bug 1339394)。 - 专有的
:-moz-table-border-nonzero伪类不再可用于 Web 内容;它现在仅限于 Firefox 的内部 UA 样式表(Firefox bug 1341925)。 - [css-grid] 具有 overflow:auto 的内在内容在网格中重叠(Firefox bug 1348857)。
- [css-grid] 具有内在比例的百分比大小的网格项的传输最小尺寸贡献(Firefox bug 1349320)。
JavaScript
- 在带有
"u"(Unicode)和"i"(不区分大小写)标志的RegExp中,\b和\B现在将 U+017F(LATIN SMALL LETTER LONG S)和 U+212A(KELVIN SIGN)视为单词字符(Firefox bug 1338373)。 - 如果
byteOffset参数超出Number.MAX_SAFE_INTEGER(>= 2 ** 53),则DataView构造函数现在会抛出RangeError(Firefox bug 1317382)。 - 当提供的参数少于两个时,
Date.UTC()方法已更新,以符合 ECMAScript 2017(Firefox bug 1050755)。 Function.prototype.toString()方法已更新,以匹配最新的 提议规范(Firefox bug 1317400)。
DOM 和 HTML DOM
- 已实现
URL.toJSON()方法(Firefox bug 1337702)。 URLSearchParams()构造函数现在接受一个包含字符串的记录作为 init 对象(Firefox bug 1331580)。- 在 macOS 上,当按下 control 键时,可打印键的
KeyboardEvent.key返回值已得到纠正(当按下 Command 键时除外)(Firefox bug 1342865)。 dom.workers.latestJSVersion首选项,该首选项主要是为了解决在 worker 中使用let存在的问题(由于 Firefox bug 855665,现已修复)已被移除(见 Firefox bug 1219523)。event.timeStamp属性现在返回高分辨率单调时间(DOMHighResTimeStamp),而不是代表毫秒为单位的 Unix 时间的值。
Web Worker 和 Service Worker
WorkerGlobalScope.close现在可用于DedicatedWorkerGlobalScope和SharedWorkerGlobalScope。此更改是为了阻止close()在 service worker 上可用,因为它不应该在那里使用,并且调用时总是会抛出异常(见 Firefox bug 1336043)。- 已实现
Window.origin属性和WorkerGlobalScope.origin(见 Firefox bug 1306170)。 - 已实现
Client.type属性(见 Firefox bug 1339844)。 Clients.matchAll()现在返回最近聚焦的顺序的Client对象(见 Firefox bug 1266747)。- 当
Request()构造函数接收一个现有的Request对象实例来创建新实例时,已对其观察到的行为进行了一些更改。以下新行为旨在保持安全性,同时降低构造函数抛出异常的可能性。- 如果此对象存在于与构造函数调用不同的源上,则会移除
Request.referrer。 - 如果此对象具有
navigate的Request.mode,则mode值将被转换为same-origin。
- 如果此对象存在于与构造函数调用不同的源上,则会移除
音频/视频
通用
- 5.1 环绕声播放现在默认在 Windows、macOS 和 Linux 上启用(Firefox bug 1334508、Firefox bug 1321502 和 Firefox bug 1323659)。
媒体捕获和流 API
- 将
MediaStream对象用作URL.createObjectURL()的输入参数已被弃用 — 控制台现在会显示警告(见 Firefox bug 1334564)。建议您改用HTMLMediaElement.srcObject。
Web Audio API
AnalyserNode.getFloatFrequencyData()方法现在以-Infinity的值正确表示返回缓冲区中的静音样本(Firefox bug 1336098)。- 如果指定的任何值不是有限的,
AudioParam.setValueCurveAtTime()现在会抛出TypeError异常(Firefox bug 1308437)。
加密媒体扩展 API
MediaKeySession.keySystem字符串已从规范中移除,因此我们已将其从 Firefox 54 中移除(Firefox bug 1335555)。- 已支持使用 Clear Key 和 Widevine 在加密流中使用 VP9 编解码器(Firefox bug 1338064)。
- 以前,MSE 仅在系统被认为“足够快”时才允许使用 WebM/VP8 视频。现在,无论系统性能如何,始终支持播放 VP8 编码的
webm/video媒体。
WebRTC
- TCP ICE 候选支持,最初在 Firefox 41 中添加,现在默认启用。这允许 ICE 层考虑使用 TCP 而非首选的 UDP 进行传输的候选。这在 UDP 被阻止的环境中可能很有用(Firefox bug 1176382)。这篇 博客文章更详细地解释了该功能。
Web 平台移除的内容
CSS
- 移除了
unicode-bidi属性的isolate、isolate-override和plaintext值的-moz前缀版本(Firefox bug 1333675)。
HTTP
- HTTP/1 Pipelining 支持已在 Firefox 54 中移除。考虑到 pipelining 在兼容性和性能方面存在问题,在向充满 HTTP/2 和其他重要的、标准化的网络性能改进的新世界过渡之际,维护它已不再值得。
network.http.pipelining首选项(以及其他以“network.http.pipelining”开头的首选项)现已被忽略。更多信息请参阅(Firefox bug 1340655)。