Firefox 20 for developers 发行说明
Firefox 20 于 2013 年 4 月 2 日发布。本文档提供了有关此版本中影响开发者的变更的信息。
面向网络开发者的变更
HTML
- 已为
<a>和<area>元素添加了对download属性的支持(Firefox bug 676619)。 - 已实现
dir全局属性的auto值(Firefox bug 548206)。 contextmenu全局属性现在可在 Firefox for Android 上使用(Firefox bug 736321)。
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.enabledabout:config 首选项设置为true来在发布版和 Beta 版本中启用它。 - 已添加
mask-type属性(Firefox bug 793617)。 - 已添加对
:scope伪类实验性支持。在 Aurora 和 Nightly 版本中默认启用,可以通过将layout.css.scope-pseudo.enabledabout:config 首选项设置为true来在发布版和 Beta 版本中启用(Firefox bug 648722)。
DOM/API
HTMLMediaElement现在支持playbackRate(可读写),并带有音高校正。可以通过mozPreservesPitch属性控制音高校正(Firefox bug 495040)。- CSSOM:已添加对新的
CSSGroupingRule和CSSConditionRule的支持(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)。 DOMParser的parseFromStream和parseFromBuffer方法已不再可从 Web 内容访问(Firefox bug 816410)。XMLSerializer的serializeToStream方法已不再可从 Web 内容访问(Firefox bug 816410)。TextDecoder和TextEncoder接口现在可在 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)。 - 混合模式,如
overlay、color-burn、hue等,已添加到 CanvasCanvasRenderingContext2D.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
contentScriptType和contentStyleType属性的实现已从SVGSVGElement中移除,同时从 SVG2 中移除(Firefox bug 819731)。
MathML
- 为了帮助 MathML 作者调试文档中的“无效标记”错误,MathML 解析错误(例如子元素过多/过少)以及关于已弃用属性或错误属性值的警告现在会报告到错误控制台。
scriptminsize属性现在接受无单位值和百分比值。它们被解释为默认值(8pt)的倍数。mathsize和fontsize属性现在也允许无单位值;它们会乘以默认值。
面向附加组件和 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。 nsIProfile和nsIProfileChangeStatus接口已被移除,以及其他支持 Firefox 之前配置文件管理系统的代码。您可能并未在使用这些接口,但如果您在使用,则应停止使用。这可以防止配置文件管理系统中已失效的部分阻止关闭过程。nsIEventSource接口已不存在(Firefox bug 819639)。