Firefox 10 开发者版

Firefox 10 于 2012 年 1 月 31 日发布。本文提供有关此版本中新增功能和关键错误修复的信息,以及指向 Web 开发者和插件开发者更详细文档的链接。

注意: Firefox 10 是此浏览器第一个两位数的版本。这可能会导致某些 UA 嗅探脚本出现问题。请务必检查它们,以及您在页面中嵌入的第三方软件(例如库)中包含的那些脚本。有关此问题的更多信息,请查看 hack.mozilla.org 上的 Firefox 采用两位数的文章.

针对 Web 开发者的变更

HTML

  • 已实现新的 HTML5 <bdi> 元素,双向隔离,允许隔离具有不同方向性的文本部分。当在具有已知且可能不同的方向性的文本中间显示来自数据库的未知方向性的文本时,这特别有用。
  • 您现在可以为 href 属性指定 "top" 片段以创建指向页面顶部的链接。这曾经可以工作,然后消失了一段时间,现在又回来了,以与 HTML5 规范保持兼容。例如:<a href="#top">返回页面顶部</a>

JavaScript

  • WeakMap.set() 方法现在返回 undefined,而不是自身。
  • Firefox 7 中引入了正则表达式处理错误;此错误已修复。如果您想了解详细信息,请查看 Firefox 错误 683838.
  • ECMAScript 5 严格模式(即在 "use strict;" 之后)中,您不再可以使用已弃用的 EcmaScript for XML (E4X) 语法。

DOM

DOM3 事件

DOM4

  • 属性 document.xmlVersion(仅可获取,不可设置)已从 DOM4 规范中移除,因为它已弃用。现在,document.xmlVersion 的文章建议一种无需使用该属性即可检测文档是 HTML 还是 XML 的方法。
  • 属性 document.xmlStandalone 已从 DOM4 规范中移除,因为它已弃用。
  • 属性 document.xmlEncoding 已从 DOM4 规范中移除,因为它已弃用。
  • 属性 text.isElementContentWhiteSpace 已从 DOM4 规范中移除,因为它已弃用。
  • 方法 text.replaceWholeText 已从 DOM4 规范中移除,因为它已弃用。
  • 方法 node.isSameNode 已从 DOM4 规范中移除,因为它已弃用。您可以使用 === 运算符,而不是 node1.isSameNode(node2),例如:node1 === node2

页面可见性 API

  • 已实现 页面可见性 API(带前缀):document.mozHiddendocument.mozVisibilityState 可用,并且当状态修改时会发送 mozvisibilitychanged 事件。

全屏 API

电池 API

  • 已添加对 window.navigator.mozBattery 的实验性支持(可以通过将首选项 dom.battery.enabled 设置为 true 来启用,并从 Firefox 11 开始默认启用)。

Canvas

  • 如果指定了零大小的源画布,则 createPattern() 方法现在会抛出异常。
  • 如果您对 putImageData() 的任何数值参数使用非有限值,则调用现在将被静默忽略,而不是抛出异常,以符合规范。

WebGL

Web Workers

  • 属性 XMLHttpRequest.responseTypeXMLHttpRequest.response 现在可以在 Workers 内部使用。
  • Worker() 构造函数现在接受 数据 URL

IndexedDB

已取得重大进展以将 IndexedDB 更新到最新的规范草案。此工作将在 Firefox 11 中继续。

其他

CSS

  • 现在支持 CSS 3D 变换。这包括对 transform-styleperspectiveperspective-originbackface-visibility 属性的支持,以及对 transform<transform-function> 属性中 3D 变换函数的支持。有关详细信息,请参阅 使用 CSS 变换
  • 已为 CSS 属性 unicode-bidi 添加了两个新值:-moz-isolation-moz-plaintext-moz-isolation 值从方向性角度隔离元素与其环境,使其具有不同的方向性。具有 unicode-bidi:-moz-isolation 的元素的行为类似于 <bdi> 元素。-moz-plaintext 表示浏览器使用 Unicode 浏览器启发式方法来确定方向性,而不是 CSS direction 属性。
  • CSS linear-gradient()repeating-linear-gradient() 属性已更新以支持新的 to 语法和神奇角落算法。这允许在渐变填充的盒子的角落指定精确的颜色。
  • text-overflow 属性设置为仅在一侧溢出时,该属性处理盒子两侧都溢出情况的方式 已得到修正
  • 对位于定位 <table> 元素内部的元素的 position 属性的处理 已修复。**此更改将影响页面布局;但是,我们现在符合 CSS 规范和其他浏览器的标准,因此应该很容易修复。**
  • 围绕 <table> 元素的边距折叠已修复,以匹配 CSS 规范。以前,表格元素的边距不会与其他相邻元素一起折叠,导致布局不正确。**此更改将影响页面布局;但是,我们现在符合 CSS 规范和其他浏览器的标准,因此应该很容易修复。**

SVG

  • <mask> 元素已更新以支持 sRGB 和 linearRGB,并且现在默认情况下使用 sRGB,符合最新版本的 SVG 1.1 规范。

网络

  • HTTP 请求不再发送 HTTP Accept-Charset 标头。在没有该标头的情况下,服务器应该通过发送 UTF-8 来响应。

开发者工具

针对 Mozilla 和插件开发者的变更

有关更新附加组件以支持 Firefox 10 时可能出现的可能问题的概述,请参阅 更新 Firefox 10 的附加组件

注意:旧的 PRBool 数据类型已弃用!文档中所有引用该类型的地方现在改为使用标准 C++ bool 类型。文档将在将来更新,但目前,请记住这一点。

清单

  • <em:strictCompatibility> 的支持已添加到安装清单中。它允许附加组件作者选择加入检查其扩展的最大版本。如果设置为 true,则如果应用程序版本大于 <em:maxVersion>,则附加组件将被禁用。Firefox 10 默认情况下附加组件兼容,无论其指定的最大版本如何。此标志会覆盖该首选项。如果您的附加组件执行了可能会因 Firefox 更新而破坏的操作,则应设置此标志,**但**如果您的附加组件具有二进制组件,则不应设置此标志,因为此类附加组件始终会进行严格检查(请记住,二进制组件必须始终为每个主要 Firefox 版本重新编译)。
  • 如果您希望恢复到旧的行为,即无论其清单中 strictCompatibility 标志的值如何,对所有附加组件都进行严格的兼容性检查,则可以将 extensions.strictCompatibility 首选项设置为 true

XUL

XPConnect

  • Components.utils 中添加了几个新属性和方法,可以访问各种与调试相关的信息。

接口更改

  • mozISpellCheckingEnginensIEditorSpellCheck 接口已更新,以允许无重启附加组件向拼写检查器添加词典。
  • nsIBrowserHistory.lastPageVisited 属性已被移除。
  • nsIDocumentViewer 接口已合并到 nsIContentViewer 中。
  • nsIURIFixup 接口有一个新的标志,FIXUP_FLAG_USE_UTF8,它允许您在进行转换时,告诉它使用 UTF-8 而不是平台字符集。

插件更改

  • 添加了新的变量 NPNVdocumentOrigin;它返回文档来源,并且比 window.location 更安全。

构建系统更改

  • --disable-rdf 构建选项已被删除,该选项实际上无法成功构建。正在努力完全移除 RDF 支持,但目前 XUL 仍然需要它才能正常工作。有关移除 RDF 最后一部分的进度,请参阅 Firefox 错误 559505
  • --disable-smil 构建选项已被删除。

另请参阅