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