Firefox 12 开发者版本
Firefox 12 于 2012 年 4 月 24 日发布。本页总结了 Firefox 12 中影响开发者的更改。本文提供了有关此版本中新功能和关键错误修复的信息,以及指向针对 Web 开发者和附加组件开发者的更详细文档的链接。
针对 Web 开发者的更改
HTML
title
属性现在支持换行符,以允许多行工具提示。- 如果禁用了 JavaScript,
<canvas>
元素将被渲染,而不是根据 规范 显示回退内容。现在将渲染回退内容。 crossorigin
属性现在受<video>
支持。
CSS
- 已添加对
text-align-last
属性的支持(带前缀)。
JavaScript
- 对尖锐变量(Netscape 非标准扩展)的支持已取消。
ArrayBuffer.prototype.slice()
已实现。
DOM
DOMParser
现在支持解析 HTML 文档片段。XMLHttpRequest
现在支持使用timeout
属性和 "timeout" 事件设置超时,以及XMLHttpRequestEventTarget
接口上的ontimeout
事件处理程序。XMLHttpRequest
现在可以从data:
URL 加载。- 下载大量数据时,
XMLHttpRequest
进度事件处理程序现在会定期调用,responseType
设置为 "moz-blob",响应是一个包含迄今为止接收到的所有数据的Blob
。这使进度处理程序能够开始处理数据,而无需等待所有数据到达。 - Gecko 现在在 Android 上支持 多点触控(而不是一次只支持单点触控)。
- 使用 IME 编辑文本时,只要正在编辑的元素的内容发生更改,就会发送
input
事件;这发生在发送compositionupdate
事件以指示 IME 的文本已更改之后。因此,你可以使用input
事件处理程序来监视元素的实际内容的更改。 DOMError
(如 DOM 4 规范中定义)已实现。Document.createNodeIterator()
方法已更新以匹配 DOM4 规范。这使whatToShow
和filter
参数成为可选参数,并删除了非标准的第四个参数entityReferenceExpansion
。Blob
接口的slice()
方法受一个错误的影响,该错误阻止它正确接受start
和end
值超出带符号 64 位整数的范围;此问题已修复。element.getBoundingClientRect()
方法现在考虑 CSS 变换 的影响来计算元素的边界矩形。crossOrigin
属性现在受HTMLMediaElement
支持。
新的 WebAPI
- 网络信息 API:已添加对
window.navigator.connection
的实验性支持(带前缀)。 - Web 电话 API:已实现
window.navigator.mozTelephony
,并为设备提供拨号、接听和管理电话的支持。 - Web 短信 API:
window.navigator.mozSms
现在可用于移动设备发送短信。 - 屏幕亮度 API:已添加
window.screen.mozEnabled
和window.screen.mozBrightness
来控制设备的屏幕。
SVG
- Firefox 现在实现了
SVGTests
DOM API,请参阅 Firefox 错误 607854 SVGStringList
DOM 接口支持非标准的length
属性,请参阅 Firefox 错误 711958
MathML
- 要控制 MathML 公式的方向性,现在在
<math>
、<mrow>
和<mstyle>
元素以及 MathML 令牌元素 上支持dir
属性。这对于某些 阿拉伯数学符号 特别重要。 - 已为
<munder>
、<mover>
和<munderover>
实现 MathML3 中定义的对齐属性align
。
网络
- 以前,当 WebSocket 通道由于意外错误关闭时,或由于规范未涵盖的错误情况关闭时,Gecko 会报告关闭代码
CLOSE_NORMAL
。现在改用CLOSE_GOING_AWAY
报告。
开发者工具
- Web 控制台 现在会缓存使用
console.log()
添加的错误消息和日志条目(如果控制台当前未打开),并在打开控制台时显示它们。 - 你现在可以通过按 "r" 键来重置 3D 视图 中的缩放级别、平移和旋转。
- 你现在可以通过在 3D 视图 中选择节点后按 "x" 键来隐藏节点。
- 源代码编辑器 具有几个新的编辑功能和键盘快捷键;有关详细信息,请参阅 使用源代码编辑器
Mozilla 一直致力于集成自己的 Web 开发者工具,以补充流行的 Firebug 附加组件。你可以获取有关这些工具的更多信息,并查看 Firefox 外部资源列表,这些资源将帮助你进行 Web 开发。整个列表位于 Web 开发者工具。
其他更改
- GEOSTD8 字符集从未完全支持,现在不再支持。
针对 Mozilla 和附加组件开发者的更改
JavaScript 代码模块
source-editor.jsm
- 已添加
resetUndo()
方法;这使你可以清除撤消堆栈。 - 源代码编辑器现在提供用于提供搜索功能的方法:
find()
、findNext()
和findPrevious()
。
XUL
chromemargin
属性的值定义略有更改,以便更容易在具有不同默认窗口边框宽度的平台上使跨平台 XUL 代码看起来不错。
XPCOM
- 不再支持
nsISupports
代理。你应该改用可运行文件。 - Firefox 11 更改了
Components.utils.getWeakReference()
的行为,使其在对象引用为 null 时抛出异常;已恢复以前的行为,即静默失败。
XPConnect
PRUint64
数据类型与PRint64
几乎相同,当与 XPConnect 一起使用时,这一点是错误的。此问题已修复。
接口更改
nsIScreen_MOZILLA_2_0_BRANCH
接口已合并到nsIScreen
中。该接口中定义的 API(用于控制最小屏幕亮度)以前没有记录,但现在已记录。nsIScriptError2
接口已合并到nsIScriptError
中。nsIDownloadManager.addDownload()
现在以异步方式处理,而不是以同步方式处理。imgIContainerObserver.frameChanged()
方法现在接收imgIRequest
对象作为其第一个参数,该对象标识相应的请求。- 已添加
nsIDOMWindowUtils.sendTouchEvent()
方法以允许合成触摸事件。 - 你现在可以通过在调用
nsISelectionController.scrollSelectionIntoView()
时将SCROLL_CENTER_VERTICALLY
指定为滚动常量,来将指定内容滚动到视图的垂直中心。 - 已添加新的
nsIMemoryMultiReporter.explicitNonHeap
属性;这是一种更有效的方法,用于获取所有路径以 "explicit" 开头且类型为KIND_NONHEAP
的多报告器的测量值的总和。 - 已添加
nsIDOMWindowUtils.paintingSuppressed
属性;此布尔值指示窗口上是否当前抑制了绘制。这在移动设备上用于防止在尝试绘制页面时发生的弹性渲染,因为此时可用于平滑绘制的内容不足。 nsIDocCharset
和nsIDocumentCharsetInfo
接口已合并到nsIDocShell
中。作为此工作的一部分,已删除旧的forcedDetector
属性;它从未发挥作用。
SpiderMonkey
- 已消除
JSThread
。 JSThreadData
已合并到JSRuntime
中。
构建
- 在 Windows 上构建时,必须安装 Windows 7 SDK。
其他更改
- 编辑器组件(称为 Midas)现在只接受来自特权代码的事件。