Firefox 11 开发者版
Firefox 11 于 2012 年 3 月 13 日发布。本文提供了有关此版本中的新功能和关键错误修复的信息,以及指向针对 Web 开发者和附加组件开发者的更详细文档的链接。
针对 Web 开发者的更改
HTML
DOM
- HTML 元素现在支持
element.outerHTML
属性。 XMLHttpRequest
支持 HTML 解析.- 已移除对在执行同步请求时使用
XMLHttpRequest
的responseType
和withCredentials
属性的支持。尝试这样做会抛出NS_ERROR_DOM_INVALID_ACCESS_ERR
异常。此更改已提交给 W3C 以进行标准化。 - 新的
window.navigator.mozVibrate()
方法允许您在支持的设备上振动设备;这在 Gecko 上实现为mozVibrate()
。 window.navigator.mozApps
返回一个Apps
对象,您可以使用它来安装和管理 开放式 Web 应用程序。- 不再触发
MozBeforePaint
事件。使用这些事件的mozRequestAnimationFrame()
使用者应改用回调函数。 - 已添加对取消动画帧请求的支持;
window.mozRequestAnimationFrame()
现在返回一个请求 ID 值,您可以将其传递给window.mozCancelAnimationFrame()
以取消请求。 - 现在支持 DOM4 规范中引入的多个
Event
构造函数(Event
、HTML 事件、UIEvent
和MouseEvent
)。 Battery API
现在默认启用。- 已添加对
defaultMuted
、loop
和muted
属性在HTMLMediaElement
上的支持。 - 调用
Document/exitFullscreen
现在会还原之前处于全屏模式的元素,如果在当前元素的Element/requestFullScreen
方法被调用时,另一个元素处于全屏模式。 window.mozRequestAnimationFrame()
方法不再支持无参数形式。此形式的使用频率不高,不太可能成为标准的一部分。- SVG 作为图像现在可以绘制到画布中,而不会 污染画布。
GeoPositionAddress
接口的非标准countryCode
属性已移除;请参阅nsIDOMGeoPositionAddress
。- 服务器发送的事件 现在支持 CORS。
- 过去,当用户点击链接时,
window.navigator
对象上设置的值会被新页面保留。现在,新页面会创建一个新的navigator
对象。这使得 Firefox 的行为与所有其他浏览器相同。
CSS
- 现在支持
text-size-adjust
属性 - CSS3 条件规则 现在得到更好的支持:嵌套语句现在可以添加到 @media、@-moz-document。(请参阅 CSS 语法 和 CSS at-规则)。
JavaScript
无变化。
SVG
SVGSVGElement
DOM 接口现在支持getElementById
方法。
WebSocket
- WebSocket API 现在支持二进制消息(请参阅 Firefox 错误 676439)。
- 协议和 API 都已更新到规范的最新草案,API 已取消前缀(请参阅 Firefox 错误 666349 和 Firefox 错误 695635)。
- 以前,在 Firefox 中使用 WebSocket 发送和接收的消息大小限制为 16 MB;现在它们可以达到 2 GB(尽管内存容量限制可能阻止它们变得那么大,Firefox 支持它)。
IndexedDB
- 已添加对 IDBFactory.cmp() 的支持。
- 一个 IndexedDB 键 也可以是以下类型之一:日期、数组和浮点数(不仅仅是字符串和整数)。
- 从现在起,事务会在创建事务时开始,而不是在放置第一个请求时开始;例如,考虑以下代码代码执行后,对象存储应包含值“2”,因为js
var trans1 = db.transaction("foo", READ_WRITE); var trans2 = db.transaction("foo", READ_WRITE); trans2.put("2", "key"); trans1.put("1", "key");
trans2
应在trans1
之后运行。 - 在 Firefox 11 之前,对象存储
autoIncrement
计数器在给定数据库的所有对象存储中共享,而根据规范,每个对象存储应具有独立的计数器。现在已修复此问题。 - 现在可以使用 空
keyPath
创建索引。 - 现在可以创建多条目索引(请参阅
IDBObjectStore.createIndex
参数)。 abort
事件现在会冒泡;此外,还添加了onabort
处理程序。- IndexedDB 现在可以用于存储文件/Blob。
- IndexedDB 现在支持复杂键路径,例如
foo.bar
以访问属性foo
的属性bar
。 - IndexedDB 现在可以在创建 对象存储 或 索引 时接受数组作为
keyPath
(Firefox 错误 694138)。
网络
- Firefox 8 中删除对双引号字符作为 RFC 2231 和 RFC 5987 定界符的支持的更改已被还原,因为这破坏了一些网站,包括 Outlook Web Access。
- HTTP 标头中的用户代理字符串现在包含一个标识符,让服务器知道访问它的 Firefox 是手机还是平板电脑。
开发者工具
针对 Mozilla 和附加组件开发者的更改
JavaScript 代码模块
NetUtil.jsm
readInputStreamToString()
具有一个新的可选参数,用于在读取输入流时配置字符集解释。
新的 JavaScript 代码模块
source-editor.jsm
-
提供了一个方便易用的源代码编辑器,您可以在附加组件中使用它。这与 Scratchpad 和集成到 Firefox 的其他开发者工具中使用的编辑器相同。
接口更改
mozIAsyncHistory
接口有一个新的方法mozIAsyncHistory.isURIVisited()
用于检查 URI 是否已被访问。- 已添加一个新的接口
mozIVisitStatusCallback
,以提供mozIAsyncHistory.isURIVisited()
的回调处理功能。 nsIMacDockSupport
接口现在支持使用其新的badgeText
属性在 Dock 中将文本徽章添加到应用程序图标。- 在
nsINavHistoryResultObserver
接口中,您现在需要实现nsINavHistoryResultObserver.containerStateChanged()
,而不是已弃用的containerOpened()
和containerClosed()
方法。
已移除的接口
以下接口是不再需要的实现细节
nsICharsetResolver
nsIDOMNSElement
,请参阅 bug707576,请改用nsIDOMElement
。
主题相关更改
omni.jar
文件现在称为omni.ja
。
首选项更改
ui.tooltipDelay
-
指定鼠标光标开始悬停到显示工具提示之间的延迟时间(以毫秒为单位)。
构建系统更改
- 已删除
--enable-tracejit
构建选项。
其他更改
- 长时间未更新的附加组件默认不再被认为是兼容的;目前这适用于
maxVersion
为 4.0 的附加组件。