面向开发者的 Firefox 42
要测试 Firefox 的最新开发者功能,请安装 Firefox 开发者版 Firefox 42 于 2015 年 11 月 3 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的主要变更。
面向 Web 开发者的变更
开发者工具
重点
- 通过 Wi-Fi 调试 Android 版 Firefox
- WebIDE 中的 Firefox OS 模拟器配置
- CSS 滤镜预设
CSS
- 垂直
writing-mode
现在支持 rtl 脚本 (Firefox 错误 1131451)。 caption-side
的值现在相对于表格,并且根据其writing-mode
值更改实际含义 Firefox 错误 1202993。- 非标准属性(如
-moz-margin-start
)现在是其标准对应属性的别名 (margin-inline-start
,……)。之前,情况正好相反。这会影响CSSStyleDeclaration.cssText
返回的值以及样式规则中属性的迭代,两者都使用规范形式 (Firefox 错误 1118103。 - 通过将
layout.css.prefixes.gradients
首选项设置为false
,可以关闭 CSS 渐变的带前缀版本。 - 修复了与
float
和边距折叠行为相关的多个旧错误 (Firefox 错误 478834、Firefox 错误 538194 和 Firefox 错误 451791。
HTML
- 对
referrer
属性的实验性支持<img>
(Firefox 错误 1166910)、<iframe>
(Firefox 错误 1175736)、<a>
和<area>
(Firefox 错误 1174913) 已添加。默认情况下没有影响,network.http.enablePerElementReferrer
默认情况下为false
。
JavaScript
- 已实现
Reflect
对象 (Firefox 错误 987514。 - 已更新
Proxy
handler.ownKeys()
陷阱的实现,以匹配最终的 ES2015 规范 (Firefox 错误 1049662。 - 现在,在没有
new
的情况下调用Map
、Set
或WeakMap
将抛出TypeError
(Firefox 错误 1083752。
接口/API/DOM
DOM & HTML DOM
- 具有
id
的图像不再作为Window
接口的属性列出:<img id="login">
现在不再可作为window.login
访问。此行为是在 Firefox 26 中引入的,现已删除,以匹配规范中的后期变更。(Firefox 错误 959992) MouseEvent.offsetX
和MouseEvent.offsetY
已添加 (Firefox 错误 69787。- 已通过实验性方式扩展
HTMLInputElement
接口,以处理目录的上传 (Firefox 错误 1164310)。通过将dom.input.dirpicker
首选项设置为true
,可以公开以下四个成员 - 已通过实验性方式扩展
Directory
接口 (Firefox 错误 1177688)。通过将dom.input.dirpicker
首选项设置为true
,可以公开Directory.path
和Directory.getContents
这两个成员。 HTMLMediaElement.mozSrcObject
已重命名为HTMLMediaElement.srcObject
(Firefox 错误 1175523。
服务工作者
- 已删除
Request.context
(Firefox 错误 1188062。 - Push API 已在桌面版 Firefox 上默认激活 (Firefox 错误 1153499),但仅在 Nightly/Dev 版/Beta 版频道上激活。它将在发布版频道中默认停用,直到正确实现消费者 UX 和调试功能 (Firefox 错误 1207875.) 您仍然可以通过在
about:config
中启用dom.push.enabled
首选项来激活它。 PushManager.hasPermission()
方法已在规范中弃用,并被PushManager.permissionState()
方法取代。Firefox 已更新其实现以反映这一点 (Firefox 错误 1183853.)- 与服务工作者相关的 Notifications API 添加已实现 (Firefox 错误 1114554),但在此版本中已停用。
Web 动画 API
我们对 Web 动画 API 的实验性实现已扩展,以支持
AnimationPlayer.playbackRate
属性 (Firefox 错误 1127380。CSSAnimation
和CSSTransition
接口 (Firefox 错误 1178186。Animation.reverse()
方法 (Firefox 错误 1150808。- 已添加
AnimationPlaybackEvent
接口,并且cancel
和finish
现在已在Animation
上触发 (Firefox 错误 1178664。
Web 组件
我们对 Shadow DOM 的实验性实现已修改
- 尝试在
ShadowRoot
上调用Node.cloneNode()
时,将抛出DataCloneError
异常 (Firefox 错误 1176757。 - 当使用
ShadowRoot
作为参数调用Document.importNode()
时,我们现在将抛出NotSupportedError
DOMException
(Firefox 错误 1177914。 - 当使用
ShadowRoot
作为参数调用Document.adoptNode()
时,我们现在将抛出HierarchyRequestError
DOMException
(Firefox 错误 1177991。
WebGL
- 已实现 WebGL2
WebGLTransformFeedback
(Firefox 错误 1048724。 - 要获取 WebGL2 上下文,
HTMLCanvasElement.getContext()
现在使用webgl2
而不是experimental-webgl2
(Firefox 错误 1187174。
WebRTC
RTCPeerConnection.createOffer()
的选项数据类型RTCOfferOptions
已更新,以更 closely 匹配规范。除其他变更外,它现在基于RTCOfferAnswerOptions
字典,该字典提供voiceActivityDetection
选项。- 已添加
RTCAnswerOptions
字典。这是用于createAnswer()
的options
参数的类型。 RTCICECandidatePairStats.mozPriority
已重命名为RTCICECandidatePairStats.priority
(Firefox 错误 1184426。
新 API
- 已实现
ImageBitmap
接口和createImageBitmap()
方法。它们在常规窗口脚本和 Web 工作者中可用,并允许在窗口和工作者上下文之间有效地发布图像 (Firefox 错误 1044102。
其他
IDBCursorWithValue
接口现在可在 Web 工作者 中使用 (Firefox 错误 1188115。- 在 Web 工作者 中发送的错误事件不再冒泡 (Firefox 错误 1188141。
- Media Source Extensions (MSE) 已对所有网站激活,不再对网站白名单激活 (Firefox 错误 1185611。
- 非标准且已弃用的
Window.mozRequestAnimationFrame()
已被移除 (Firefox 错误 909154)。请使用标准的Window.requestAnimationFrame()
替代。 - 语音合成 (文本转语音) 已在 Windows 版 Firefox 桌面版中实现,隐藏在
about:config
中的media.webspeech.synth.enabled
标志后面 (Firefox 错误 1003457)。有关更多信息,请参见 Web 语音 API。
MathML
无变化。
SVG
无变化。
音频/视频
无变化。
HTTP
- Firefox 41 及更早版本错误地接受了 HTTP/2 响应中未定义或无效的伪标头字段。现在已修复,从 Firefox 42 开始,唯一接受的伪标头字段是 :status,符合规范。包含任意字段的响应标头被认为是格式错误的。(Firefox 错误 1136727)
网络
- CSP
upgrade-insecure-requests
指令已实现 (Firefox 错误 1139297)。
安全性
- 有效期超过 39 个月的 EV 证书现在被视为 DV 证书并以 DV 证书处理 (Firefox 错误 1145679)。
面向附加组件和 Mozilla 开发者的变更
接口
nsIContentPolicy
TYPE_EMBED
常量已添加到nsIContentPolicy
中,以允许 Gecko 内部和附加组件代码更好地区分不同类型的请求。以前,TYPE_OBJECT
用于这些情况 (Firefox 错误 1148030)。- 类似地,
TYPE_SUBDOCUMENT
常量已拆分为TYPE_FRAME
和TYPE_IFRAME
(Firefox 错误 1148044)。
XUL
无变化。
JavaScript 代码模块
无变化。
XPCOM
无变化。
其他
无变化。
旧版本
- Firefox 41 开发人员版本
- Firefox 40 开发人员版本
- Firefox 39 开发人员版本
- Firefox 38 开发人员版本
- Firefox 37 开发人员版本
- Firefox 36 开发人员版本
- Firefox 35 开发人员版本
- Firefox 34 开发人员版本
- Firefox 33 开发人员版本
- Firefox 32 开发人员版本
- Firefox 31 开发人员版本
- Firefox 30 开发人员版本
- Firefox 29 开发人员版本
- Firefox 28 开发人员版本
- Firefox 27 开发人员版本
- Firefox 26 开发人员版本
- Firefox 25 开发人员版本
- Firefox 24 开发人员版本
- Firefox 23 开发人员版本
- Firefox 22 开发人员版本
- Firefox 21 开发人员版本
- Firefox 20 开发人员版本
- Firefox 19 开发人员版本
- Firefox 18 开发人员版本
- Firefox 17 开发人员版本
- Firefox 16 开发人员版本
- Firefox 15 开发人员版本
- Firefox 14 开发人员版本
- Firefox 13 开发人员版本
- Firefox 12 开发人员版本
- Firefox 11 开发人员版本