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 规范。这使 whatToShowfilter 参数成为可选参数,并删除了非标准的第四个参数 entityReferenceExpansion
  • Blob 接口的 slice() 方法受一个错误的影响,该错误阻止它正确接受 startend 值超出带符号 64 位整数的范围;此问题已修复。
  • element.getBoundingClientRect() 方法现在考虑 CSS 变换 的影响来计算元素的边界矩形。
  • crossOrigin 属性现在受 HTMLMediaElement 支持。

新的 WebAPI

  • 网络信息 API:已添加对 window.navigator.connection 的实验性支持(带前缀)。
  • Web 电话 API:已实现 window.navigator.mozTelephony,并为设备提供拨号、接听和管理电话的支持。
  • Web 短信 API:window.navigator.mozSms 现在可用于移动设备发送短信。
  • 屏幕亮度 API:已添加 window.screen.mozEnabledwindow.screen.mozBrightness 来控制设备的屏幕。

SVG

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 属性;此布尔值指示窗口上是否当前抑制了绘制。这在移动设备上用于防止在尝试绘制页面时发生的弹性渲染,因为此时可用于平滑绘制的内容不足。
  • nsIDocCharsetnsIDocumentCharsetInfo 接口已合并到 nsIDocShell 中。作为此工作的一部分,已删除旧的 forcedDetector 属性;它从未发挥作用。

SpiderMonkey

  • 已消除 JSThread
  • JSThreadData 已合并到 JSRuntime 中。

构建

  • 在 Windows 上构建时,必须安装 Windows 7 SDK。

其他更改

  • 编辑器组件(称为 Midas)现在只接受来自特权代码的事件。

另请参阅