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