Firefox 21 开发者版

Firefox 21 于 2013 年 5 月 14 日发布。本文列出了对网页开发者、Firefox 和 Gecko 开发者以及附加组件开发者有用的主要更改。

针对网页开发者的更改

HTML

  • scoped 属性已添加到 <style> 元素。它允许包含与文档其余部分隔离的样式。此类样式可以使用在 Firefox 20 中引入的 :scope CSS 伪元素进行选择。(Firefox 错误 508725)。
  • 新的 HTML <main> 元素已实现(Firefox 错误 820508)。

JavaScript

  • EcmaScript for XML (E4X) 已被移除,它是一个古老的 JavaScript 扩展。它仅在 Gecko 中实现,从未获得显著的关注(Firefox 错误 788293)。
  • parseInt 现在不再将以 "0" 开头的字符串视为八进制数(Firefox 错误 786135)。

CSS

  • -moz-user-selectnone 值现在与 -moz-none 值的行为相同,使 Gecko 与 WebKit (Chrome、Safari)、Presto (Opera) 和 Trident (Internet Explorer) 保持一致(Firefox 错误 816298)。
  • 在 XHTML 内容上,-moz-hyphensauto 值在未明确声明语言时会错误地应用连字符规则。此问题已通过 (Firefox 错误 702121) 修复。
  • CSS -moz-orient 属性已添加 auto 值。auto 值在应用于 <meter><progress> 时等效于 horizontalFirefox 错误 835883)。
  • 媒体查询 -moz-windows-glass 已在 Windows 7 及更早版本的 Windows 系统上添加(Firefox 错误 816803)。

DOM

  • RTCPeerConnection (作为 MozRTCPeerConnection) 的支持现在默认启用(Firefox 错误 796463)。如果需要,可以通过将 media.peerconnection.enabled 设置为 false 来禁用它。
  • origin 属性已添加到 window.locationFirefox 错误 828261)。
  • valueAsDatevalueAsNumber 方法已添加到 <input type="time">Firefox 错误 781570)。
  • minmax 属性现在也适用于 <input type="time">Firefox 错误 781572)。
  • 一些用于音量控制的新 keyCodes 已受支持(Firefox 错误 674739)。
  • 一些用于古代键盘布局(例如 AS/400)的新 keyCodes 现在在 Windows 和 Linux 上受支持(Firefox 错误 833719)。
  • Windows 上 OEM 特定键的一些新 keyCode 值现在再次受支持(Firefox 错误 833719)。
  • window.crypto.getRandomValues 函数已实现(Firefox 错误 440046)。
  • 非标准方法 NodeIterator.expandEntityReferences()TreeWalker.expandEntityReferences() 已被移除(Firefox 错误 672190)。
  • CSSOM:CSSKeyframesRule 的方法 insertRule 已被移除为 CSSKeyframesRuleappendRule,以匹配规范更改(Firefox 错误 841896)。
  • CSSOM:如果传递给 CSSStyleSheet.insertRule 的给定参数包含多个规则,则会抛出具有 SYNTAX_ERRDOMExceptionFirefox 错误 765599)。
  • 到目前为止,当使用 XMLHttpRequest.setRequestHeader 重复设置相同的标头时,将使用最后指定的价值。此行为已更改为符合规范,因此这些值将被正确组合(Firefox 错误 819051)。

SVG

网络

  • 我们继续更新 CSP 实现以匹配 CSP 1.0 规范,该规范已达到候选推荐阶段。
    • 已添加对符合规范的 Content-Security-Policy HTTP 标头 (除了实验性 X-Content-Security-Policy) 的支持(Firefox 错误 783049)。

      注意:此新标头的补丁已在 Firefox 21 中发布,它在构建中被禁用(Firefox 错误 842657)。

Worker

  • URL.createObjectURL()URL.revokeObjectURL() 函数现在包含在可用于 worker 的函数集中。

针对附加组件和 Mozilla 开发者的更改

  • FUEL 应用程序不能再使用 Livemarks 服务(Firefox 错误 834492)。Livemarks 服务已弃用并逐步淘汰,取而代之的是新的异步接口。
  • resource:///modules/resource://gre/modules/ 现在不再相同(Firefox 错误 755724)。此更改是由于 Firefox 的 Metro 版本工作所致。如果您使用 resource:///modules/ 加载模块,您应该检查是否现在要使用 resource://gre/modules/。请注意,一些模块也从 Firefox 移动到了 Toolkit(Firefox 错误 840287Firefox 错误 811548 分别移动了 NewTabUtils.jsm 和缩略图模块)。
  • 附加组件 SDK 现在已包含在 Firefox 中(Firefox 错误 731779)
  • 历史记录 API 看到许多已弃用的 API 被移除
    • mozIAsyncFavicons 替换
      • nsIFaviconService::setFaviconUrlForPage
      • nsIFaviconService::setFaviconData
      • nsIFaviconService::getFaviconData
      • nsIFaviconService::getFaviconForPage
      • nsIFaviconService::setAndLoadFaviconForPage
      • nsIFaviconService::getFaviconImageForPage
      • nsIFaviconService::getFaviconDataAsDataURL
    • mozIAsyncLivemarks 替换
      • nsILivemarkService::*
      • PlacesUtils.itemIsLivemark
      • PlacesUtils.nodeIsLivemarkContainer
      • PlacesUtils.nodeIsLivemarkItem
    • 仅移除第三个参数
      • PlacesUIUtils.showBookmarkDialog
    • 不再由 Places 实现,请改用 mozIAsyncHistory
      • nsIGlobalHistory2::addURI
      • nsIGlobalHistory2::isVisited
      • nsIGlobalHistory2::setPageTitle
    • 不再需要,请改用 onDeleteURIonItemRemoved
      • nsINavHistoryObserver::OnBeforeDeleteURI
      • nsINavBookmarkObserver::OnBeforeItemRemoved
    • 从未正确实现
      • nsINavHistoryFullVisitResultNode
    • 已弃用,请改用 mozIAsyncHistory::updatePlaces
      • nsINavHistoryService::AddVisit
  • 添加了 nsIHttpChannel.redirectTo,用于在不使用脆弱技巧的情况下重定向 HTTP 通道。

另请参阅

旧版本