面向开发者的 Firefox 43
要测试 Firefox 的最新开发者功能,请安装 Firefox Developer Edition Firefox 43 于 2015 年 12 月 15 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及插件开发者都很有用的主要变更。
面向 Web 开发者的变更
开发者工具
CSS
- 已支持标准、无前缀版本的
hyphens
(Firefox 错误 953408). - 简写属性
font
已更新以接受font-stretch
值 (Firefox 错误 1057680). - 为了匹配规范的最新发展,
:fullscreen
伪类现在选择全屏模式下的整个元素堆栈,而不仅仅是顶层元素 (Firefox 错误 1199522). - 已在 CSS 中添加了
writing-mode
的已弃用 SVG 值,lr
、lr-tb
、rl
、tb
和tb-rl
,作为标准属性的别名 (Firefox 错误 1205787).
HTML
- 对于包含多个帧的 ICO 图像的
<img>
,图像的内在尺寸设置为最大帧的尺寸,不再是最小帧的尺寸 Firefox 错误 1201796. - 现在可以通过 JavaScript 动态更改文档视窗的值(使用
<meta name="viewport>
定义)(Firefox 错误 976616).
JavaScript
新 API
- 新的 ES2016 方法
Array.prototype.includes()
和TypedArray.prototype.includes()
现在默认启用 (Firefox 错误 1070767).
有关 arguments
对象的变更
- 为了匹配 ES2015 规范,箭头函数 不再拥有自己的
arguments
对象。arguments
对象现在是词法绑定的(从外部函数继承)。在大多数情况下,剩余参数 是一个很好的替代方案(...args) => args[i]
,请参阅 Firefox 错误 889158. - 现在允许 arguments 对象与 剩余参数 结合使用 (Firefox 错误 1133298).
- 从现在开始,仅当函数**不**包含任何 剩余参数、任何 默认参数 或任何 解构参数 时,非严格函数中的映射
arguments
对象才会提供 (Firefox 错误 1175394).
其他变更
- 生成器 和 生成器方法 现在不再可构造,符合 ES2016 (Firefox 错误 1191486).
接口/API/DOM
DOM & HTML DOM
无变更。
IndexedDB
- 已添加名为 区域感知排序 的新功能,允许创建指定区域的索引,然后可以用来根据该区域的规则对数据进行排序 (Firefox 错误 871846). 这是一个非标准的 Firefox 专属功能。
服务工作者
- 根据规范,如果
ExtendableEvent.waitUntil()
在ExtendableEvent
处理程序之外调用,Firefox 现在将抛出InvalidStateError
;此外,对waitUntil()
的多次调用现在将堆叠起来,生成的承诺将添加到 扩展生命周期承诺 列表中 (Firefox 错误 1180274). PushMessageData
方法已实现 (Firefox 错误 1149195).
WebRTC
HTMLCanvasElement.captureStream()
方法已默认激活 (Firefox 错误 1177276).RTCOfferOptions
的非标准约束样式选项列表已弃用,将在 Firefox 44 中完全删除。
其他
- 电池状态 API 现在使用新的承诺语法表示
Navigator.getBattery()
,如规范的最新发展中所述 (Firefox 错误 1050749). User-Agent
标头不再包含在 禁止的标头名称 列表中,因此现在可以在 FetchHeaders
对象中设置,通过 XHRXMLHttpRequest.setRequestHeader()
设置,... (Firefox 错误 1188932).MediaRecorder()
构造函数现在可以接受一个选项字典作为参数,这允许你为要录制的音频/视频设置自定义比特率 (Firefox 错误 1161276).- 已实现
PerformanceObserver
接口,该接口属于 性能 API (Firefox 错误 1165796). - 已添加帧定时 API:
PerformanceRenderTiming
和PerformanceCompositeTiming
接口现已可用 (Firefox 错误 1191178). - 已实现现代 屏幕方向 API:无前缀的
Screen.orientation
和ScreenOrientation
接口现已可用 (Firefox 错误 1131470). 非标准的Screen.mozOrientation
、Screen.onmozorientationchange
、Screen.mozLockOrientation()
和Screen.mozUnlockOrientation()
将在将来删除。 - 在 Linux 下,与 Windows 一样,
Event.timeStamp
现在返回一个DOMHighResTimeStamp
(Firefox 错误 1026803). - 已添加对
Selection
事件selectionchange
和selectstart
以及Document.onselectionchange
和HTMLInputElement.onselectstart
事件处理程序属性的实验性支持 (Firefox 错误 571294). 如果关联的Selection
对象相关,则selectionchange
事件将在Document
上触发,或者在特定的HTMLInputElement
或HTMLTextAreaElement
上触发 (Firefox 错误 1196479). 此功能由dom.select_events.enabled
首选项控制,该选项默认为false
,但在 Nightly 上除外。 - 已在 Firefox for Android 和 Firefox OS 上激活了对
MouseEvent.offsetX
和MouseEvent.offsetY
的支持 (Firefox 错误 1204841). - 已删除
HTMLCanvasElement.mozFetchAsStream()
方法 (Firefox 错误 1206030). - 构造函数
Request()
以及fetch()
现在将使用包含用户名和密码的 URL 时引发TypeError
异常 (Firefox 错误 1195820).
MathML
无变更。
SVG
无变更。
音频/视频
无变更。
HTTP
无变更。
网络
无变更。
安全
- 如果用户已禁用第三方 Cookie,则现在禁止第三方 iframe 访问 Web 存储(即
localStorage
和sessionStorage
) (Firefox 错误 536509). - 此白名单甚至已从浏览器的 Nightly 和 Aurora/Dev 版本中移除(Firefox 错误 1201023)。目前计划,此移除将在下一个版本(Firefox 44)中也应用于 Beta 和发布版本。
- 子资源完整性已为链接到样式表的
<script>
和<link>
实现(Firefox 错误 992096)。
面向插件和 Mozilla 开发者的变更
接口
无变更。
XUL
无变更。
JavaScript 代码模块
无变更。
XPCOM
无变更。
插件
- 为了为未来的发布切换到多进程内容,NPAPI 插件不再能够在与页面内容相同的进程中运行。以
dom.ipc.plugins
开头的首选项不再使用。
其他
无变更。
旧版本
- 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
- Firefox 22 for developers
- Firefox 21 for developers
- Firefox 20 for developers
- Firefox 19 for developers
- Firefox 18 for developers
- Firefox 17 for developers
- Firefox 16 for developers
- Firefox 15 for developers
- Firefox 14 for developers
- Firefox 13 for developers
- Firefox 12 for developers