Firefox 11 開發者釋出說明
Firefox 11 於 2012 年 3 月 13 日釋出。本文件提供了此版本中新增功能和已修復重要 bug 的資訊,以及面向 Web 開發者和外掛開發者更詳細文件的連結。
面向網路開發者的變更
HTML
DOM
- 現在支援 HTML 元素上的 `
element.outerHTML` 屬性。 XMLHttpRequest支援 HTML 解析.- 移除了在執行同步請求時使用 `
XMLHttpRequest` 的 `responseType` 和 `withCredentials` 屬性的支援。嘗試這樣做會丟擲 `NS_ERROR_DOM_INVALID_ACCESS_ERR` 異常。此更改已提交給 W3C 以便標準化。 - 新的 `
navigator.mozVibrate()` 方法允許在支援的裝置上振動;在 Gecko 中實現為 `mozVibrate()`。 navigator.mozApps返回一個 `Apps` 物件,您可以使用它來安裝和管理開放 Web 應用程式。- 不再觸發 `MozBeforePaint` 事件。過去使用這些事件的 `
mozRequestAnimationFrame()` 使用者現在應改為傳遞一個回撥函式。 - 已新增對取消動畫幀請求的支援;`
window.mozRequestAnimationFrame()` 現在返回一個請求 ID 值,您可以將其傳遞給`window.mozCancelAnimationFrame()` 來取消請求。 - 現在支援 DOM4 規範中引入的幾個 `
Event建構函式(`Event`、HTML 事件、`UIEvent` 和 `MouseEvent`)。 - 現在預設啟用電池 API。
- 已新增對 `
HTMLMediaElement` 上的 `defaultMuted`、`loop` 和 `muted` 屬性的支援。 - 呼叫 `
Document/exitFullscreen` 現在會恢復之前的全屏元素,如果當前元素的 `Element/requestFullScreen` 方法被呼叫時有其他元素處於全屏模式。 - `
window.mozRequestAnimationFrame()` 方法不再支援無引數形式。此形式使用不廣泛,也不太可能成為標準的一部分。 - 現在可以將 SVG 作為影像繪製到畫布上,而不會汙染畫布。
- 已刪除 `GeoPositionAddress` 介面的非標準 `countryCode` 屬性;請參見 `nsIDOMGeoAddress`。
- 伺服器傳送事件現在支援CORS。
- 過去,當用戶點選連結時,`window.navigator` 物件上設定的值會被新頁面保留。現在,新頁面會建立一個新的 `navigator` 物件。這使得 Firefox 的行為與其他所有瀏覽器一致。
CSS
JavaScript
無更改。
SVG
- `SVGSVGElement` DOM 介面現在支援 `getElementById` 方法。
WebSocket
- WebSocket API 現在支援二進位制訊息(請參見Firefox bug 676439)。
- 協議和 API 都已更新至規範的最新草案,並且 API 已移除字首(請參見Firefox bug 666349 和Firefox bug 695635)。
- 以前,Firefox 中使用 WebSockets 傳送和接收的訊息大小限制為 16 MB;現在最大可達 2 GB(儘管記憶體容量限制可能使其無法達到如此大的尺寸,但 Firefox 支援此功能)。
IndexedDB
-
已新增對 `IDBFactory.cmp()` 的支援。
-
IndexedDB 鍵還可以是以下型別之一:Date、Array 和 Float(而不僅僅是 String 和 Integer)。
-
從現在開始,事務在建立事務時啟動,而不是在放置第一個請求時啟動;例如,考慮以下程式碼:
jsvar trans1 = db.transaction("foo", READ_WRITE); var trans2 = db.transaction("foo", READ_WRITE); trans2.put("2", "key"); trans1.put("1", "key");程式碼執行後,物件儲存庫應包含值“2”,因為 `trans2` 應在 `trans1` 之後執行。
-
在 Firefox 11 之前,給定資料庫的所有物件儲存庫共享 `autoIncrement` 計數器,而根據規範,每個物件儲存庫都應該有一個單獨的計數器。現在已修復。
-
現在可以使用空的 `keyPath` 建立索引。
-
現在可以建立多條目索引(請參見`IDBObjectStore.createIndex` 引數)。
-
`abort` 事件現在會冒泡;此外,還添加了一個 `onabort` 處理程式。
-
現在可以使用 IndexedDB 來儲存檔案/blob。
-
IndexedDB 現在支援複雜的 `keyPath`,例如 `foo.bar` 來訪問 `foo` 屬性的 `bar` 屬性。
-
在建立物件儲存庫或索引時,IndexedDB 現在可以接受陣列作為 `keyPath`(Firefox bug 694138)。
網路
- Firefox 8 中移除了對雙引號字元作為 RFC 2231 和 RFC 5987 分隔符的支援的更改已被恢復,因為這破壞了包括 Outlook Web Access 在內的一些網站。
- HTTP 標頭中的使用者代理字串現在包含一個識別符號,該識別符號讓伺服器知道正在訪問它的 Firefox 是手機還是平板電腦。
開發者工具
Mozilla 和附加元件開發者的更改
JavaScript 程式碼模組
NetUtil.jsm
- `readInputStreamToString()` 有一個新的可選引數,用於在讀取輸入流時配置字元集解釋。
新的 JavaScript 程式碼模組
source-editor.jsm-
提供了一個方便易用的原始碼編輯器,您可以在自己的外掛中使用。這是程式碼片段和 Firefox 中整合的其他開發者工具使用的相同編輯器。
介面更改
- `mozIAsyncHistory` 介面有一個新的 `mozIAsyncHistory.isURIVisited()` 方法,用於檢查 URI 是否已被訪問。
- 添加了一個新的 `mozIVisitStatusCallback` 介面,用於為 `mozIAsyncHistory.isURIVisited()` 提供回撥處理功能。
- `nsIMacDockSupport` 介面現在支援透過其新的 `badgeText` 屬性向應用程式在 Dock 中的圖示新增文字徽章。
- 在 `nsINavHistoryResultObserver` 介面中,您現在需要實現 `nsINavHistoryResultObserver.containerStateChanged()` 而不是已廢棄的 `containerOpened()` 和 `containerClosed()` 方法。
已移除的介面
以下介面是不再需要的實現細節
nsICharsetResolver- `nsIDOMNSElement`,請參見bug707576,請改用 `nsIDOMElement`。
主題相關更改
- `omni.jar` 檔案現在稱為`omni.ja`。
首選項更改
ui.tooltipDelay-
指定滑鼠游標開始懸停和工具提示顯示之間的時間延遲(以毫秒為單位)。
構建系統更改
- 已移除 `--enable-tracejit` 構建選項。
其他更改
- 長時間未更新的外掛不再預設假定為相容;目前是指表示 `maxVersion` 為 4.0 的外掛。