Firefox 15 for developers 发行说明

Firefox 15 于 2012 年 8 月 28 日发布。本文档列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都很有用的重要变更。

面向网络开发者的变更

HTML

  • 现在,<font> 元素的 size 属性将按照 HTML5 规范进行处理。这意味着所有大于 10 或小于 -10 的整数值现在分别被视为等同于 10 和 -10。
  • 已移除对 <font> 元素上的 font-weightpoint-size 属性的支持;这些属性是非标准的,并且只有 Gecko 支持它们。
  • 现在,HTML 的 <audio><video> 元素在 Ogg 容器中支持 Opus 音频编解码器。(Opus codec)
  • 现在,<source> 元素支持 media 属性。
  • 现在,<audio><video> 元素支持 played 属性,该属性提供一个 TimeRanges 对象,列出到目前为止已播放的媒体的时间范围。

CSS

  • font-feature-settings 属性已更新为最新语法:font-feature-settings: "lnum" 1;
  • CSS text-transform 属性已扩展,以正确处理 Unicode 连字字符(例如 )。
  • 已实现 CSS word-break 属性。
  • border-image 属性已更新以匹配最新的规范,并且属性已移除前缀。(bug 713643
  • skew() transform 函数在 Firefox 14 中被移除,但由于现有网站兼容性问题已恢复。但是,建议作者使用 skewX()skewY() 函数。
  • CSS unicode-bidi 属性的 plaintext 值现在也适用于内联元素。(Firefox bug 746987)。

DOM

  • DOM Events Level 3 方法 KeyboardEvent.getModifierState()MouseEvent.getModifierState() 已实现,这些方法允许您查询修饰键(如 CtrlShift)的状态(bugs 630811731878)。但行为符合最新的 D3E 草案。因此,某些修饰键名称与 IE 不同(Firefox bug 769190)。
  • 在鼠标事件中,已实现使用 MouseEvent.buttons 属性查询鼠标按钮状态的支持。
  • 在键盘事件中,已实现使用 KeyboardEvent.location 属性查询按键位置(标准、修饰键的左侧或右侧、在数字小键盘上)的支持。(Firefox bug 166240)。
  • KeyboardEvent.keycode 的结果已根据更优化的规则计算,这些规则在 Windows/Linux/Mac 上几乎相同。现在,在 Linux 和 Mac 上的一些非 ASCII 字符集键盘布局(例如阿拉伯语、西里尔语、泰语等)上也可以使用。请参阅 虚拟键码文档
  • range.detach() 方法已转换为无操作(no-op),并可能在将来被移除。
  • 已实现 HTMLVideoElement.mozHasAudio() 方法。它指示给定的视频元素是否关联了音频轨道。(bug 480376
  • Performance API 新增了一个方法 now(),支持 DOMHighResTimeStamp 类型的精确计时器。(bug 539095)。
  • 已更新 WebSMS API,现在支持一个 read 属性,用于指示短信是否已读或未读。
  • 已实现 FileHandle API
  • 现在,除了 ArrayBuffer 之外,Blob 构造函数还能接受 ArrayBufferView 作为 blobParts 参数的成员。(bug 752402
  • 已实现 Ambient Light Events Working Draft 中指定的 DeviceLightEvent
  • 已实现 Proximity EventsDeviceProximityEventUserProximityEvent
  • 已实现 File lastModifiedDate 属性。(Firefox bug 673586

JavaScript

WebGL

  • 已添加对 WEBGL_compressed_texture_s3tc 扩展的支持。压缩纹理减少了在 GPU 上存储纹理所需的内存量,从而可以使用更高分辨率的纹理或更多的相同分辨率的纹理。

MathML

  • 数学运算符现在可以使用 @font-face 指定的可下载字体。这使得 MathML-fonts 附加组件也可以与可伸缩运算符一起使用。
  • <maction> 元素的 selection 属性现在仅在 toggle actiontype 时才被考虑。
  • 已移除已弃用的命名空间绑定。(Deprecated namedspace binding)(Firefox bug 673759)。
  • Length<mpadded> 值的支持已更接近 MathML3 规范中的定义。
  • 已向运算符字典添加了新的阿拉伯数学镜像运算符(Firefox bug 757125)。

SVG

网络

  • 已合并对 SPDY v3 协议的支持。默认禁用,可以通过将首选项 network.http.spdy.enabled.v3 设置为 true 来启用。(bug 737470

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

接口更改

nsIDOMWindowUtils

sendMouseEvent()sendTouchEvent()sendMouseEventToWindow()sendMouseScrollEvent()sendKeyEvent()aModifiers 支持 KeyboardEvent.getModifierState() 支持的所有修饰键。请使用 MODIFIER_* 值。现在 sendKeyEvent() 的第五个参数已从 boolean 更改为 unsigned long。为了向后兼容,如果调用者传递 truefalse,行为不会改变。此更改允许调用者指定按键的位置。

nsIBrowserHistory

hidePage() 方法从未实现过,并且在此版本中已被完全移除。作为使所有“Places API”异步的持续工作的一部分,addPageWithDetails() 方法也被移除;请改用 mozIAsyncHistory.updatePlaces()。此外,count 属性也被移除;它在一段时间内都没有返回实际计数(而是指示是否存在任何条目)。您可以使用 nsINavHistoryService.hasHistoryEntries 代替。

nsIDOMUtils

已添加 nsIDOMUtils.parseStyleSheet() 方法,该方法允许(重新)解析层叠样式表。

nsIINIParserWriter

nsIINIParserWriter.writeFile() 方法现在接受一个 flags 属性。目前只有一个选项:您可以告知它以 UTF-16 格式写入文件,而不是 UTF-8,以便与 Windows 和某些安装程序更好地兼容。

新接口

nsISpeculativeConnect

提供了一种向网络层提示您很可能在不久的将来打开到给定 URI 的连接的方法。这使得网络层可以提前开始有时延迟很高的打开新网络连接的过程。

已移除的接口

以下接口已被移除

  • nsIGlobalHistory