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 规范。这使得 whatToShowfilter 参数成为可选参数,并移除了非标准的第四个参数 entityReferenceExpansion
  • Blob 接口的 slice() 方法受到一个 Bug 的影响,该 Bug 阻止其正确接受超出有符号 64 位整数范围的 startend 值;该 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.mozEnabledwindow.screen.mozBrightness 以控制设备的屏幕。

SVG

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 属性;此布尔值指示窗口当前是否抑制了绘制。这在移动设备上用于防止在开始绘制页面之前内容不足而导致的弹性渲染。
  • nsIDocCharsetnsIDocumentCharsetInfo 接口已合并到 nsIDocShell 中。作为此工作的一部分,已移除旧的 forcedDetector 属性;它之前从未起作用。

SpiderMonkey

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

构建

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

其他更改

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