Firefox 12 for developers 发行说明
Firefox 12 已于 2012 年 4 月 24 日发布。本文档总结了 Firefox 12 中影响开发者的更改。本文档提供了有关此版本中新功能和已修复的关键 Bug 的信息,以及供 Web 开发者和插件开发者使用的更详细文档的链接。
面向网络开发者的变更
HTML
title属性现在支持换行符,以便显示多行工具提示。- 如果禁用了 JavaScript,
<canvas>元素会被渲染,而不是像 规范那样显示备用内容。现在,备用内容会被渲染。 crossorigin属性现在受<video>支持。
CSS
- 已添加对
text-align-last属性的支持(已添加前缀)。
JavaScript
- 已删除对 Sharp Variables(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事件处理器来监视元素实际内容的变化。 - 已实现 DOM 4 规范中定义的
DOMError。 Document.createNodeIterator()方法已更新,以匹配 DOM4 规范。这使得whatToShow和filter参数成为可选参数,并移除了非标准的第四个参数entityReferenceExpansion。Blob接口的slice()方法受到一个 Bug 的影响,该 Bug 阻止其正确接受超出有符号 64 位整数范围的start和end值;该 Bug 已被修复。element.getBoundingClientRect()方法现在在计算元素的边界矩形时会考虑CSS transforms的影响。crossOrigin属性现在受HTMLMediaElement支持。
新的 WebAPI
- 网络信息 API:已添加对
window.navigator.connection的实验性支持(已添加前缀)。 - WebTelephony API:已实现
window.navigator.mozTelephony,并为拨打、接听和管理设备上的电话提供了支持。 - WebSMS API:现在 Mobile 设备可以使用
window.navigator.mozSms来发送 SMS 短信。 - 屏幕亮度 API:已添加
window.screen.mozEnabled和window.screen.mozBrightness以控制设备的屏幕。
SVG
- Firefox 现在实现了
SVGTestsDOM API,请参阅 Firefox Bug 607854。 SVGStringListDOM 接口支持非标准的length属性,请参阅 Firefox Bug 711958。
MathML
- 为了控制 MathML 公式方向,
dir属性现在受<math>、<mrow>和<mstyle>元素以及 MathML Token Elements 支持。这对于某些 阿拉伯数学表示法尤其重要。 - 已为
<munder>、<mover>和<munderover>实现 MathML3 中定义的对齐属性align。
网络
- 以前,当 WebSocket 通道因意外错误而关闭,或者因规范未涵盖的错误条件而关闭时,Gecko 会报告关闭代码
CLOSE_NORMAL。现在,改为报告CLOSE_GOING_AWAY。
开发者工具
Web Console现在会缓存使用console.log()添加的错误消息和日志条目(如果控制台当前未打开),并在打开控制台时显示它们。- 您现在可以通过按“r”键来重置
3D view中的缩放级别、平移和旋转。 - 您现在可以通过在
3D view中选择节点后按“x”键来隐藏节点。 Source editor具有多项新的编辑功能和键盘快捷键;有关详细信息,请参阅 使用源代码编辑器。
Mozilla 一直致力于整合其自主开发的 Web 开发者工具,以补充流行的 Firebug 插件。您可以在此了解有关这些工具的更多信息,以及查看有助于您进行 Web 开发的 Firefox 外部资源列表。整个列表位于 Web 开发者工具。
杂项更改
- GEOSTD8 字符集,之前并未完全支持,现在已不再支持。
Mozilla 和附加组件开发者的更改
JavaScript 代码模块
source-editor.jsm
- 已添加
resetUndo()方法;这允许您清除撤销堆栈。 - 源代码编辑器现在提供用于提供搜索功能的方法:
find()、findNext()和findPrevious()。
XUL
chromemargin属性的值定义已略作更改,以便更容易地在不同默认窗口边框宽度的平台上制作跨平台的 XUL 代码,使其看起来美观。
XPCOM
- 不再支持
nsISupports代理。您应该使用 runnables 代替。 - Firefox 11 更改了
Components.utils.getWeakReference()的行为,使其在对象引用为 null 时抛出异常;已恢复之前的静默失败行为。
XPConnect
PRUint64数据类型在使用 XPConnect 时,实际上与PRint64相同,这是不正确的。此问题已修复。
接口更改
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)现在只接受特权代码的事件。