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。