Firefox 20 for developers 发行说明

Firefox 20 于 2013 年 4 月 2 日发布。本文档提供了有关此版本中影响开发者的变更的信息。

面向网络开发者的变更

HTML

JavaScript

  • 已添加对 WeakMap.prototype.clear() 方法的支持,该方法最近被添加到 Harmony (ECMAScript 2015) 草案提案中(Firefox bug 814562)。
  • 已添加对 Math.imul() 方法的支持,这是一种 C 风格的 32 位乘法函数。尽管它被提议用于 Harmony (ECMAScript 2015),但尚未被接受,仍为非标准(Firefox bug 808148)。
  • 使用 Kinetic 3.x 的可拖动文本的 Web 应用现在可以正常工作,即使在使用 Cairo 画布后端时也是如此(Firefox bug 835064)。
  • for each...in 语句已被弃用,不应再使用。请考虑使用新的 for...of 语句(Firefox bug 804834)。
  • 已添加对 Map.prototype.keys()Map.prototype.values()Map.prototype.entries() 的支持(Firefox bug 817368)。

CSS

  • CSS Flexbox 现在默认在预发布版本(不包括 Beta 版本)中可用。可以通过将 layout.css.flexbox.enabled about:config 首选项设置为 true 来在发布版和 Beta 版本中启用它。
  • 已添加 mask-type 属性(Firefox bug 793617)。
  • 已添加对 :scope 伪类实验性支持。在 Aurora 和 Nightly 版本中默认启用,可以通过将 layout.css.scope-pseudo.enabled about:config 首选项设置为 true 来在发布版和 Beta 版本中启用(Firefox bug 648722)。

DOM/API

  • HTMLMediaElement 现在支持 playbackRate(可读写),并带有音高校正。可以通过 mozPreservesPitch 属性控制音高校正(Firefox bug 495040)。
  • CSSOM:已添加对新的 CSSGroupingRuleCSSConditionRule 的支持(Firefox bug 814907)。
  • CSSOM:在 CSSRule 上,CSSRule.MOZ_KEYFRAME_RULE 和 CSSRule.MOZ_KEYFRAMES_RULE 常量已被取消前缀,改为 CSSRule.KEYFRAME_RULE 和 CSSRule.KEYFRAMES_RULE。为帮助 Web 作者迁移代码,暂时保留了带前缀的版本(Firefox bug 816431)。
  • CSSOM:现在可以为 CSSMediaRule 设置 conditionText 的值(Firefox bug 815021)。
  • DOMParserparseFromStreamparseFromBuffer 方法已不再可从 Web 内容访问(Firefox bug 816410)。
  • XMLSerializerserializeToStream 方法已不再可从 Web 内容访问(Firefox bug 816410)。
  • TextDecoderTextEncoder 接口现在可在 Workers 中使用(Firefox bug 795542)。
  • 已添加对 CSS.supports() 方法的支持,该方法受 layout.css.supports-rule.enabled 首选项控制(默认关闭)(Firefox bug 779917)。
  • 已添加对 UndoManager 的支持(Firefox bug 617532)。
  • 已实现 CSSOM 的 Document.caretPositionFromPoint() 方法,该方法返回一个 CaretPosition
  • HTMLTableRowElement.insertCell()HTMLTableElement.insertRow() 方法的 index 参数根据 HTML 规范已变为可选。
  • Navigator.getUserMedia,仍以 Navigator.mozGetUserMedia 的形式带有前缀,现在已默认激活。
  • 现在支持 Window.postMessage 的第三个可选参数 transfer。它允许将一系列可转移对象传输到目标(Firefox bug 822094)。
  • 非标准的 Window.sizeToContent() 方法现在限制了最小尺寸:窗口不能再被强制缩放到阻碍用户交互的小尺寸(Firefox bug 764240)。
  • 混合模式,如 overlaycolor-burnhue 等,已添加到 Canvas CanvasRenderingContext2D.globalCompositeOperation 属性中(Firefox bug 748433)。
  • window.indexedDB 的带前缀版本 — window.mozIndexedDB — 已重新引入 Gecko,以便糟糕的跨浏览器前缀代码(如 var indexedDB = window.indexedDB || window.webkitIndexedDB …)在 Firefox 中不会中断。更好的方法是 window.indexedDB = window.indexedDB || window.webkitIndexedDB …(参见 Firefox bug 770844)。

SVG

  • contentScriptTypecontentStyleType 属性的实现已从 SVGSVGElement 中移除,同时从 SVG2 中移除(Firefox bug 819731)。

MathML

  • 为了帮助 MathML 作者调试文档中的“无效标记”错误,MathML 解析错误(例如子元素过多/过少)以及关于已弃用属性或错误属性值的警告现在会报告到错误控制台。
  • scriptminsize 属性现在接受无单位值和百分比值。它们被解释为默认值(8pt)的倍数。
  • mathsizefontsize 属性现在也允许无单位值;它们会乘以默认值。

面向附加组件和 Mozilla 开发者的变更

  • ECMAScript for XML (E4X) 现在对所有 chrome 和 content 脚本完全禁用。它之前在 Firefox 17 中对 content 禁用,并且将在 Firefox 21 中完全移除。请改用 DOMParser/DOMSerializer 或非原生 JXON 算法。
  • nsIDOMParserJS 接口已不存在(Firefox bug 816410)。请参阅 nsIDOMParser 以获取替代方案。
  • Content Preferences:nsIContentPrefService 接口现已弃用,并且已实现异步 nsIContentPrefService2 存储 API。
  • nsIProfilensIProfileChangeStatus 接口已被移除,以及其他支持 Firefox 之前配置文件管理系统的代码。您可能并未在使用这些接口,但如果您在使用,则应停止使用。这可以防止配置文件管理系统中已失效的部分阻止关闭过程。
  • nsIEventSource 接口已不存在(Firefox bug 819639)。

另见