Firefox 21 开发者发行说明
Firefox 21 于 2013 年 5 月 14 日发布。本文档列出了不仅对 Web 开发者有用,对 Firefox 和 Gecko 开发者以及附加组件开发者也有用的关键更改。
面向网络开发者的变更
HTML
- 已将
scoped属性添加到<style>元素。它允许包含与文档其余部分隔离的样式。此类样式可以使用 Firefox 20 中引入的:scopeCSS 伪元素进行选择。(Firefox bug 508725)。 - 已实现新的 HTML
<main>元素(Firefox bug 820508)。
JavaScript
- 已移除 ECMAScript for XML (E4X),这是一个古老的 JavaScript 扩展。它仅在 Gecko 中实现,并未获得显著关注(Firefox bug 788293)。
- parseInt 不再将带有前导 "0" 的字符串视为八进制(Firefox bug 786135)。
CSS
-moz-user-select的none值现在与-moz-none值具有相同的行为,使 Gecko 与 WebKit(Chrome、Safari)、Presto(Opera)和 Trident(Internet Explorer)保持一致(Firefox bug 816298)。- 在 XHTML 内容上,
-moz-hyphens的auto值在语言未明确声明时会错误地应用连字符规则。此问题已通过(Firefox bug 702121)修复。 - 已向 CSS
-moz-orient属性添加了auto值。当应用于<meter>和<progress>时,auto值等效于horizontal(Firefox bug 835883)。 - 在 Windows 7 及更早的 Windows 系统上添加了媒体查询
-moz-windows-glass(Firefox bug 816803)。
DOM
RTCPeerConnection(作为MozRTCPeerConnection)的支持现已默认启用(Firefox bug 796463)。如果需要,可以通过将media.peerconnection.enabled设置为 false 来禁用它。- 已将
origin属性添加到window.location(Firefox bug 828261)。 - 已为
<input type="time">添加了valueAsDate和valueAsNumber方法(Firefox bug 781570)。 min和max属性现在也适用于<input type="time">(Firefox bug 781572)。- 支持了一些新的音量控制按键码(Firefox bug 674739)。
- 现在,在 Windows 和 Linux 上支持 AS/400 等旧式键盘布局的一些新按键码(Firefox bug 833719)。
- 现在又支持了 Windows 上 OEM 特定按键的各种按键码值(Firefox bug 833719)。
- 已实现函数
window.crypto.getRandomValues(Firefox bug 440046)。 - 已移除非标准的
NodeIterator.expandEntityReferences()和TreeWalker.expandEntityReferences()方法(Firefox bug 672190)。 - CSSOM:已移除方法
CSSKeyframesRule.insertRule(),取而代之的是CSSKeyframesRule.appendRule(),以匹配规范的更改(Firefox bug 841896)。 - CSSOM:如果传递给
CSSStyleSheet.insertRule的参数包含多个规则,现在会抛出一个带有SYNTAX_ERR的DOMException(Firefox bug 765599)。 - 直到现在,当使用
XMLHttpRequest.setRequestHeader重复设置相同的标头时,会使用最后指定的哪个值。此行为已更改,以符合规范,因此这些值将被正确组合(Firefox bug 819051)。
SVG
- 已实现 paint-order 属性(Firefox bug 828805)。
- 已移除
svg.smil.enabled首选项。SMIL 始终开启。(Firefox bug 835030)
网络
- 我们将继续更新我们的 CSP 实现,以匹配已达到候选推荐阶段的 CSP 1.0 规范。
- 已添加对符合规范的
Content-Security-PolicyHTTP 标头(除了实验性的X-Content-Security-Policy)的支持(Firefox bug 783049)。注意:此新标头的补丁已合并到 Firefox 21 中,但在构建版本中已禁用(Firefox bug 842657)。
- 已添加对符合规范的
Worker
- 函数
URL.createObjectURL()和URL.revokeObjectURL()现在包含在 可供 worker 使用的函数集中。
面向附加组件和 Mozilla 开发者的变更
-
FUEL 应用程序不再可以使用 Livemarks 服务(Firefox bug 834492)。Livemarks 服务已弃用,并逐步淘汰,以便使用新的异步接口。
-
resource:///modules/和resource://gre/modules/不再相同(Firefox bug 755724)。此更改是由于对 Firefox 的 metro 版本所做的工作。如果您使用resource:///modules/加载模块,您现在应该检查是否要改用resource://gre/modules/。请注意,一些模块也从 Firefox 移动到了 Toolkit(Firefox bug 840287 和 Firefox bug 811548 分别移动了NewTabUtils.jsm和缩略图模块)。 -
Add-on SDK 现在包含在 Firefox 中(Firefox bug 731779)
-
History API 移除了大量已弃用的 API
-
已被
mozIAsyncFavicons替换nsIFaviconService::setFaviconUrlForPagensIFaviconService::setFaviconDatansIFaviconService::getFaviconDatansIFaviconService::getFaviconForPagensIFaviconService::setAndLoadFaviconForPagensIFaviconService::getFaviconImageForPagensIFaviconService::getFaviconDataAsDataURL
-
已被
mozIAsyncLivemarks替换nsILivemarkService::*PlacesUtils.itemIsLivemarkPlacesUtils.nodeIsLivemarkContainerPlacesUtils.nodeIsLivemarkItem
-
仅移除了第三个参数
PlacesUIUtils.showBookmarkDialog
-
不再由 Places 实现,请改用
mozIAsyncHistorynsIGlobalHistory2::addURInsIGlobalHistory2::isVisitednsIGlobalHistory2::setPageTitle
-
不再需要,请改用
onDeleteURI或onItemRemovednsINavHistoryObserver::OnBeforeDeleteURInsINavBookmarkObserver::OnBeforeItemRemoved
-
从未正确实现
nsINavHistoryFullVisitResultNode
-
已弃用,请改用
mozIAsyncHistory::updatePlacesnsINavHistoryService::AddVisit
-
-
添加了
nsIHttpChannel.redirectTo以启用 HTTP 渠道的重定向,无需脆弱的 hack。