Firefox 29 for Developers 发行说明
Firefox 29 于 2014 年 4 月 29 日发布。本文档列出了重要的改动,这些改动不仅对 Web 开发者有用,对 Firefox 和 Gecko 的开发者以及扩展开发者也有帮助。
面向网络开发者的变更
开发者工具
主要改动包括:
- Web 控制台大幅改进 - 数组会内联显示,无需点击右侧检查器即可查看;窗口对象会显示其 URL 等。
- 为 Web Workers 添加了 console API(bug 620935)。现在您可以从 Web Workers 向 Web Console 记录消息。
- 网络监控器工具现在使用饼图显示性能统计信息(Firefox bug 846601)。
- 在 检查器中,现在可以获得 CSS 变换的预览工具提示(Firefox bug 726427)。
- 调试器和控制台中看到的 DOM 元素可以通过变量列表右侧的新按钮直接移除或检查。
- 现在 样式编辑器支持 CSS 源映射(Firefox bug 926014)。
- 为 样式编辑器添加了 CSS 属性和值的自动补全(Firefox bug 717369)。
请参阅 Mozilla Hacks 博客文章了解详细信息和其他较小的改动。
CSS
- 已实现 CSS 变量(Firefox bug 773296)。Mozilla Hacks 上的 Firefox Nightly 中的 CSS 变量 包含更多详细信息。它们默认仅对非发布版本启用(在发布版本上,如果想使用,请将首选项
layout.css.variables.enabled更改为true)。 - Flexboxes 现在支持
visibility: collapse(Firefox bug 783470)。 box-sizing属性已移除前缀(Firefox bug 243412)。- 已添加
will-change属性,用于提示即将发生的动画。必须将首选项layout.css.will-change.enabled设置为true才能启用它(Firefox bug 940842)。 - 现在支持科学计数法,例如
3e1或10e+0,用于<number>值及其派生值,如<percentage>和单位值,但不包括<integer>(Firefox bug 964529)。 - 现在
border-image支持<gradient>类型的图像(Firefox bug 709587)。 - 已实现
touch-action属性。它默认不激活;layout.css.touch_action.enabled首选项控制它(Firefox bug 795567)。 - 从 quirk.css 中移除了对 <pre> 元素的冗余默认样式(Firefox bug 948914)。
- CSS 变量回退实现不正确(主循环)(Firefox bug 950497)。
- 在声明优先级之后带有 token 的 @supports 条件应评估为 false(Firefox bug 909170)。
HTML
<input type=color>和<input type=number>默认可用。- 已移除对非标准
<pre cols>的支持,以及<pre wrap>的布局效果。这两种效果都可以,并且应该使用 CSS 来实现(Firefox bug 949879)。
JavaScript
-
新的 ECMAScript 2015 字符串方法:已实现
String.prototype.codePointAt()和String.prototype.fromCodePoint()(Firefox bug 918879)。 -
已实现 ECMAScript Internationalization API (ECMA-402),并且现在默认在 Firefox 桌面版中启用(Firefox bug 853301)。
-
在新的
Intl对象命名空间中新增了对象。 -
String、Number和Date的以下方法已更新,以包含locales和options参数,符合 ECMA-402 标准。
-
-
为了匹配更新的 ECMAScript 2015 草案规范,
Map和Set对象在检查键值相等性时,现在将-0和+0视为相同。 -
Promise已默认启用(Firefox bug 918806)。 -
已完成的 生成器现在返回一个
IteratorResult对象而不是抛出异常(Firefox bug 958951)。 -
由
JSON.parse()解析的格式错误的 JSON 字符串现在会产生更详细的错误消息,其中包含导致解析错误的行号和列号。这在调试大型 JSON 数据时非常有用。 -
已添加
ArrayBuffer.isView()方法(Firefox bug 896105)。
接口/API/DOM
- 一种新型 worker,
SharedWorker,现在默认可用(Firefox bug 924089)。 URL接口现在支持searchParams属性,它返回一个URLSearchParams对象,允许修改 URL 的搜索参数(Firefox bug 887836)。URLSearchParams()构造函数可以更方便地解析查询字符串。navigator.onLine属性现在支持WorkerNavigator,允许在 worker 中了解在线/离线状态(Firefox bug 925437)。- 作为 Web Components 实现的一部分,
HTMLShadowElement接口已通过dom.webcomponents.enabled启用。如果想使用它,请将其设置为true(Firefox bug 887538)。 - 只读属性
HTMLIFrameElement.sandbox不再是字符串,而是DOMTokenList(Firefox bug 845057)。 - 在
HTMLCanvasElement.getContext()上,不再支持moz-webgl值。请使用标准的webgl值(Firefox bug 913597)。 - 已添加
ImageData的构造函数。此接口可以在Worker中使用(Firefox bug 959958)。 location.origin属性现在可以在 worker 中(通过WorkerLocation)访问(Firefox bug 964148)。- 已实现
ValidityState.badInput属性(Firefox bug 827161)。 - 已移除已弃用的
Window.pkcs11属性;它自 Firefox 3.0.14 起一直返回null(Firefox bug 964964)。 Node.cloneNode()和Document.importNode()方法接受布尔值deep参数。直到现在,如果省略,这些方法将表现为deep的值为true。但根据最新的规范,此行为已更改,如果省略,这些方法将表现为false(Firefox bug 937461)。Window._content不再可用于 Web 内容(Firefox bug 946564)。URLUtils.port的行为已略有改变:设置为''会将其设置为与协议关联的默认端口,设置为0会设置为0(Firefox bug 930450)。Document.referrer现在基于当前脚本(Firefox bug 887928)。- Gamepad API 已默认启用(Firefox bug 878828)。
CanvasRenderingContext2D.drawSystemFocusRing()方法已重命名为CanvasRenderingContext2D.drawFocusIfNeeded()(Firefox bug 959820)。
MathML
无更改。
SVG
无更改。
安全
- 已实现 CSP 1.1 实验性的
hash-source指令。应将首选项security.csp.experimentalEnabled设置为true来启用此功能(Firefox bug 883975)。
面向附加组件和 Mozilla 开发者的变更
- Firefox 主题的重大更改影响了大多数与 Firefox 用户界面交互的扩展。
- 已移除
nsISecurityCheckedComponent(Firefox bug 794943)。大多数使用者可以从其接口定义中移除nsISecurityCheckedComponent,它们将继续正常工作。