Firefox 44 开发者版本
要测试 Firefox 的最新开发者功能,请安装 Firefox Developer Edition。Firefox 44 于 2016 年 1 月 26 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的关键更改。
针对 Web 开发者的更改
开发者工具
HTML
<link rel="prefetch">
现在服从crossorigin
属性 (Firefox 错误 1214819).
CSS
position: fixed;
现在始终创建新的堆叠上下文 (Firefox 错误 1179288).- 对
unicode-range
的支持已默认启用 (Firefox 错误 1119062). - 我们的 CSS 书写模式实验性实现已更新,以反映最新的规范
text-orientation
属性的sideways
值已实现,sideways-right
已成为它的别名 (Firefox 错误 1193488).writing-mode
属性的sideways-rl
和sideways-lr
值 (Firefox 错误 1193488 和 Firefox 错误 1193519).
- 非标准属性
-moz-math-display
和-moz-window-shadow
不再可用于 Web 内容 (Firefox 错误 1207002、Firefox 错误 1211040 和 Firefox 错误 1212607). font-style
属性现在在两种变体都可用时区分oblique
和italic
(Firefox 错误 543715).- 虽然不支持,但属性
marks
、orphans
、page
、size
和widows
以前被解析,并且@supports
错误地将其报告为支持;此问题已修复,这些属性不再被解析,也不再被标记为支持 (Firefox 错误 1215702). - 内部值
-moz-mac-unified-toolbar
已从appearance
属性的可能值中删除 (Firefox 错误 1206468). - 为了 Web 兼容性,添加了几个带
-webkit
前缀的属性和值,在layout.css.prefixes.webkit
首选项之后,默认值为false
(Firefox 错误 837211)-webkit-animation
-webkit-animation-delay
-webkit-animation-direction
-webkit-animation-duration
-webkit-animation-fill-mode
-webkit-animation-iteration-count
-webkit-animation-name
-webkit-animation-play-state
-webkit-animation-timing-function
-webkit-text-size-adjust
-webkit-transform
-webkit-transform-origin
-webkit-transform-style
-webkit-transition
-webkit-transition-delay
-webkit-transition-duration
-webkit-transition-property
-webkit-transition-timing-function
-webkit-border-radius
-webkit-border-top-left-radius
-webkit-border-top-right-radius
-webkit-border-bottom-left-radius
-webkit-border-bottom-right-radius
-webkit-appearance
-webkit-background-clip
-webkit-background-origin
-webkit-background-size
-webkit-border-image
-webkit-box-shadow
-webkit-box-sizing
-webkit-user-select
-webkit-linear-gradient()
Firefox 错误 1210575-webkit-radial-gradient"()
Firefox 错误 1210575-webkit-repeating-linear-gradient()
Firefox 错误 1210575-webkit-repeating-radial-gradient()
Firefox 错误 1210575
JavaScript
新 API
Symbol.toPrimitive
、Symbol.prototype[@@toPrimitive]
和Date.prototype[@@toPrimitive]
已实现 (Firefox 错误 1054756).
更改
- 全局级别的
let
和const
绑定已符合 ES2015 语义。请参阅 Firefox 错误 589199 和博客文章 "Firefox Nightly 44 中 let 和 const 的重大更改"。此外,let
现在可用于默认的 Web JavaScript(严格和非严格),不再需要版本选择 (Firefox 错误 932517). - 如果 类型化数组(如
Int8Array
)和ArrayBuffer
构造函数被调用为函数(不使用new
运算符),现在将根据 ES2015 规范抛出TypeError
(Firefox 错误 980945、Firefox 错误 1214936). - JavaScript 粘性标志现在遵循 ES2015 标准,用于 锚定的粘性正则表达式 (Firefox 错误 773687).
- JavaScript shell(SpiderMonkey 的 REPL)现在默认使用默认的 Web 兼容 JS 版本(不再使用 JS1.7+)(Firefox 错误 1192329).
删除
- 对非标准
let
块 的支持已删除 (Firefox 错误 1167029). - 非标准且已弃用的属性
Object.prototype.__noSuchMethod__
已删除 (Firefox 错误 683218).
接口/API/DOM
DOM & HTML DOM
- 为了与特定现有网站兼容,属性
Document.charset
已实现为Document.characterSet
的别名 (Firefox 错误 647621). - 对
window.sidebar.addSearchEngine()
方法的支持已删除,该方法允许网页调用 Sherlock 插件的安装,现在它只是在 Web 控制台中记录警告 (Firefox 错误 862148). - 为了防止不必要的弹出窗口,在尚未与之交互的页面的
beforeunload
事件中请求的提示不再显示 (Firefox 错误 636905). - 已弃用的方法
MessageEvent.initMessageEvent()
已为向后兼容性重新实现 (Firefox 错误 949376). - 已过时的属性
DocumentType.internalSubset
已删除 (Firefox 错误 801545). - 为了与现有网站兼容,属性
Window.orientation
和Window.onorientationchange
以及orientationchange
事件已实现 (Firefox 错误 920734). - 具有显式全屏请求的
<iframe>
不应隐式退出全屏 (Firefox 错误 1187801). - 事件
mouseover
、mouseout
、mouseenter
、mouseleave
、pointermove
、pointerover
、pointerout
、pointerenter
和pointerleave
现在会为禁用的表单元素触发 (Firefox 错误 218093). - 方法
Element.webkitMatchesSelector()
已添加 (Firefox 错误 1216193),以提高互操作性。 - 为了匹配规范,方法
Document.createAttribute()
现在会将输入转换为小写 (Firefox 错误 1176313). - 非标准的
dialog
功能(用于Window.open()
)不再可用于 Web 内容。它仍然可用于具有 chrome 权限的扩展和其他代码 (Firefox 错误 1095236).
Canvas
- 已实现新的实验性
OffscreenCanvas
API,允许渲染上下文(如 WebGL)在 Web Workers 中运行。要使用此实验性 API,请在 about:config 中将gfx.offscreencanvas.enabled
设置为true
(Firefox 错误 709490)。此 API 包括OffscreenCanvas
接口,HTMLCanvasElement.transferControlToOffscreen()
,以及WebGLRenderingContext.commit()
.- 启用此 API 后,几个 WebGL 接口现在也可以在 Worker 上下文中使用。
WebGL
- 已实现统一缓冲区对象 (Firefox 错误 1048747)。
IndexedDB
IDBIndex.getAll()
和IDBIndex.getAllKeys()
以及它们在IDBObjectStore
上的对应项现在默认可用 (Firefox 错误 1196841)。
服务工作者
- 已实现
ServiceWorkerMessageEvent
和ExtendableMessageEvent
接口 (Firefox 错误 1143717 和 Firefox 错误 1207068)。 Headers
对象现在支持成对迭代器,这意味着方法Headers.entries()
、Headers.keys()
和Headers.values()
现在可用;Symbol.iterator
现在也为它们返回默认迭代器 (Firefox 错误 1108181)。- 已在服务工作者上禁用
XMLHttpRequest
API (Firefox 错误 931243)。 - 接口
FetchEvent
现在扩展了ExtendableEvent
,使其可以访问ExtendableEvent.waitUntil()
方法。(Firefox 错误 1214772)。 - 根据规范的最新更改,已删除
FetchEvent.client
(Firefox 错误 1218135)。 - 为了匹配最新规范,已删除
ServiceWorkerContainer.onreloadpage
(Firefox 错误 1218139)。 - 事件处理程序
onbeforeevicted
和onevicted
已被删除,因为它们没有遵循规范。它们将在未来重新引入,但它们的删除将允许功能检测按预期工作 (Firefox 错误 1218142)。 - 在
FetchEvent()
构造函数中,如果选项字典中不存在isReload
成员,则现在默认值为false
(Firefox 错误 1216401)。 - 现在在正确的接口上实现了
Client.frameType
属性;之前它位于WindowClient
上 (Firefox 错误 1218146)。 - 当 AppCache 用于为页面提供离线支持时,现在会在控制台中显示一条警告消息,建议开发人员改用 服务工作者 (Firefox 错误 1204581)。
- 服务工作者已在 Gecko 中默认启用。
WebRTC
- WebRTC 接口已取消前缀 (Firefox 错误 1155923)。特别是
mozRTCPeerConnection
现在是RTCPeerConnection
。mozRTCIceCandidate
现在是RTCIceCandidate
。mozRTCSessionDescription
现在是RTCSessionDescription
。
- 已实现
RTCDataChannel.bufferedAmountLowThreshold
属性以及bufferedamountlow
事件及其事件处理程序 (Firefox 错误 1178091)。 - 已添加属性
RTCPeerConnection.canTrickleIceCandidates
,非标准方法RTCPeerConnection.updateIce()
已被删除 (Firefox 错误 1209744)。 MediaStream
接口现在支持MediaStream.addTrack()
和MediaStream.removeTrack()
方法 (Firefox 错误 1103188)。- 已实现构造函数
MediaStream()
(Firefox 错误 1070216)。 - 已删除对
RTCOfferOptions
的非标准约束样式选项列表的支持。
新 API
- 已完成在 Workers 中的 Canvas API 的实验性实现:
OfflineCanvas
和HTMLCanvasElement.transferControlToOffscreen()
在gfx.offscreencanvas.enabled
首选项之后可用,目前默认情况下处于禁用状态 (Firefox 错误 709490)。 - Web 语音 API 的一部分 Text2Speech API 现在有一个 OS X 后端。但默认情况下处于禁用状态 (Firefox 错误 1003452)。
杂项
URLSearchParams
对象现在支持成对迭代器,这意味着方法URLSearchParams.entries()
、URLSearchParams.keys()
和URLSearchParams.values()
现在可用;Symbol.iterator
现在也为它们返回默认迭代器 (Firefox 错误 1085284)。FormData
对象现在支持成对迭代器,这意味着方法FormData.entries()
、FormData.keys
和FormData.values()
现在可用;Symbol.iterator
现在也为它们返回默认迭代器 (Firefox 错误 1127703)。- 当使用 HTML 文档使用
XMLHttpRequest.send()
时,它现在使用text/html
而不是application/xml
(Firefox 错误 918771)。 - 语音合成(文本转语音)已在适用于 Mac 和 Linux 的 Firefox 桌面版中实现,隐藏在
about:config
中的media.webspeech.synth.enabled
标志后面 (Firefox 错误 1003452、Firefox 错误 1003464)。有关更多信息,请参见 Web 语音 API。 <frame>
或<object>
内的元素不再能设置为全屏 (Firefox 错误 1212299)。- 对 WOFF 字体进行的清理更加严格,导致更多不正确的字体被拒绝,这种清理在 Firefox 46 中变得不那么严格 (Firefox 错误 1193050 和 Firefox 错误 1244693)。
MathML
无变化。
SVG
无变化。
音频/视频
无变化。
HTTP
- 已添加对 Brotli 算法的支持,并且
Accept-Encoding
和Content-Encoding
标头现在都支持br
值 (Firefox 错误 366559 和 Firefox 错误 1211916)。 - 已删除对包含换行符 (
'/n'
) 的 HTTP/2 标头的错误支持,因为规范不允许这样做,与 HTTP/1 不同 (Firefox 错误 1197847)。
网络
无变化。
安全性
- RC4 现在也默认在浏览器的 Beta 和发行版本中禁用 (Firefox 错误 1201025),并且白名单现在默认情况下为空 (Firefox 错误 1215796)。
针对附加组件和 Mozilla 开发者的更改
接口
无变化。
XUL
无变化。
JavaScript 代码模块
- 已将
LIKE
支持添加到 Sqlite.jsm (Firefox 错误 1188760)。 - 已将 Snackbars.jsm 模块添加到 适用于 Android 的 Firefox (Firefox 错误 1215026)
XPCOM
nsIDOMWindow
接口现在为空。它的内容要么不再使用,要么已移到其他地方,要么仅从 C++ 使用。现在可从 C++ 代码中使用的项目位于 nsPIDOMWindow 接口中 (Firefox 错误 1216401)。
其他
- 由于 Firefox 44 中的重大更改 (错误 1202902),使用 cfx 打包的附加组件将不再起作用。要使您的附加组件再次兼容,请使用 jpm。您可以在此处找到从 cfx 迁移到 jpm 的步骤 here。
旧版本
- 适用于开发人员的 Firefox 43
- 适用于开发人员的 Firefox 42
- 适用于开发人员的 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 开发者版