Firefox 11 開發者釋出說明

Firefox 11 於 2012 年 3 月 13 日釋出。本文件提供了此版本中新增功能和已修復重要 bug 的資訊,以及面向 Web 開發者和外掛開發者更詳細文件的連結。

面向網路開發者的變更

HTML

  • 已實現 `<audio>` 和 `<video>` 元素上的 `muted` 和 `loop` 屬性。

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

  • 現在支援 `text-size-adjust` 屬性。
  • CSS3條件規則現在支援得更好:巢狀語句現在可以新增到 `@media` 和 `@-moz-document` 中。(請參見CSS 語法CSS 規則)。

JavaScript

無更改。

SVG

  • `SVGSVGElement` DOM 介面現在支援 `getElementById` 方法。

WebSocket

  • WebSocket API 現在支援二進位制訊息(請參見Firefox bug 676439)。
  • 協議和 API 都已更新至規範的最新草案,並且 API 已移除字首(請參見Firefox bug 666349Firefox bug 695635)。
  • 以前,Firefox 中使用 WebSockets 傳送和接收的訊息大小限制為 16 MB;現在最大可達 2 GB(儘管記憶體容量限制可能使其無法達到如此大的尺寸,但 Firefox 支援此功能)。

IndexedDB

  • 已新增對 `IDBFactory.cmp()` 的支援。

  • IndexedDB 鍵還可以是以下型別之一:Date、Array 和 Float(而不僅僅是 String 和 Integer)。

  • 從現在開始,事務在建立事務時啟動,而不是在放置第一個請求時啟動;例如,考慮以下程式碼:

    js
    var 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)。

網路

開發者工具

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`。

首選項更改

ui.tooltipDelay

指定滑鼠游標開始懸停和工具提示顯示之間的時間延遲(以毫秒為單位)。

構建系統更改

  • 已移除 `--enable-tracejit` 構建選項。

其他更改

  • 長時間未更新的外掛不再預設假定為相容;目前是指表示 `maxVersion` 為 4.0 的外掛。