Firefox 10 面向開發者的發行說明

Firefox 10 已於 2012 年 1 月 31 日釋出。本文介紹了此版本中的新功能和已修復的關鍵 bug,並提供了面向 Web 開發者和附加元件開發者的詳細文件連結。

注意: Firefox 10 是該瀏覽器第一個兩位數版本。這可能會導致某些 UA 嗅探指令碼出現問題。請務必檢查它們,以及您嵌入頁面中的第三方軟體(例如庫)所包含的指令碼。有關此內容的更多資訊,請參閱 hack.mozilla.org 上的《Firefox 進入兩位數,是時候檢查你的 UA 嗅探指令碼了》文章

面向網路開發者的變更

HTML

  • 已實現新的 HTML5 <bdi> 元素,即雙向隔離,允許隔離具有不同方向性的一部分文字。這在顯示來自資料庫(例如)且方向性未知,同時又位於已知且可能不同的方向性文字中間的文字時特別有用。
  • 您現在可以為 href 屬性指定“top”片段,以建立指向頁面頂部的連結。這個功能以前是可用的,後來消失了一段時間,現在又回來了,以便與 HTML5 規範相容。例如:<a href="#top">返回頁面頂部</a>

JavaScript

  • WeakMap.set() 方法現在返回 undefined,而不是其自身。
  • Firefox 7 中引入了一個正則表示式處理 bug;此 bug 已修復。如果您想了解詳細資訊,請參閱 Firefox bug 683838
  • ECMAScript 5 嚴格模式下(即在 "use strict;" 之後),您不能再使用已廢棄的 ECMAScript for XML (E4X) 語法。

DOM

DOM3 事件

DOM4

  • 屬性 document.xmlVersion(只能獲取不能設定)已被移除,因為它已在 DOM4 規範中廢棄。有關 document.xmlVersion 的文章現在建議了一種不使用該屬性來檢測文件是 HTML 還是 XML 的方法。
  • 屬性 document.xmlStandalone 已被移除,因為它已在 DOM4 規範中廢棄。
  • 屬性 document.xmlEncoding 已被移除,因為它已在 DOM4 規範中廢棄。
  • 屬性 text.isElementContentWhiteSpace 已被移除,因為它已在 DOM4 規範中廢棄。
  • 方法 text.replaceWholeText 已被移除,因為它已在 DOM4 規範中廢棄。
  • 方法 node.isSameNode 已被移除,因為它已在 DOM4 規範中廢棄。您可以像這樣使用 === 運算子來代替 node1.isSameNode(node2)node1 === node2

Page Visibility API

  • 已實現 頁面可見性 API(帶字首):document.mozHiddendocument.mozVisibilityState 可用,並且當狀態被修改時會發送 mozvisibilitychanged 事件。

全屏 API

  • 已新增對 document.fullscreenEnabled 的支援。
  • 已新增新的 :-moz-full-screen-ancestor 屬性。這允許您匹配處於全屏模式的元素的祖先元素。

電池 API

  • 已新增對 navigator.mozBattery 的實驗性支援(可以透過將首選項 dom.battery.enabled 設定為 true 來啟用,並將在 Firefox 11 開始預設啟用)。

Canvas

  • 如果指定了零大小的源 Canvas,createPattern() 方法現在會丟擲異常。
  • 如果您為 putImageData() 的任何數字引數使用非有限值,則現在會默默地忽略該呼叫,而不是丟擲異常,以符合規範。

WebGL

Web Workers

  • 屬性 XMLHttpRequest.responseTypeXMLHttpRequest.response 現在可在 Worker 內部使用。
  • Worker() 建構函式現在接受 資料 URL

IndexedDB

IndexedDB 已在更新至最新草案規範方面取得了巨大進展。這項工作將在 Firefox 11 中繼續。

其他

  • 當傳入正確的 MIME 型別 image/svg+xml 時,DOMParser 現在在給定 SVG 字串時會建立一個 SVGDocument
  • 過去,當 element.setAttribute() 解析整數時,如果整數包含任何非數字字元(例如“42foo”),它會報告錯誤。現在,它會根據規範將其正確截斷為數字 42。
  • ESC 鍵不再錯誤地導致 onkeydown 處理器被錯誤呼叫。
  • NameList 介面不再實現;它以前有一個實現,但無法實際訪問。
  • document.createProcessingInstruction() 方法現在可以在 HTML 文件和 XML 文件上使用。ProcessingInstruction 節點仍然只在 XML 文件上受支援,但由於節點可以在文件之間移動,因此能夠在 HTML 文件上建立它們也很有幫助。
  • Firefox 9 中引入的 XMLHttpRequest responseType "moz-json" 已更新為最新規範草案,並已取消字首。請參閱 Firefox bug 707142 中的註釋。

CSS

  • 現在支援 CSS 3D 轉換。這包括支援 transform-styleperspectiveperspective-originbackface-visibility 屬性,以及 transform<transform-function> 屬性中的 3D 轉換函式。有關詳細資訊,請參閱 使用 CSS 轉換
  • CSS 屬性 unicode-bidi 已新增兩個新值:-moz-isolation-moz-plaintext-moz-isolation 值從方向性角度將元素與其環境隔離,使其具有不同的方向性。具有 unicode-bidi:-moz-isolation 的元素的行為類似於 <bdi> 元素。-moz-plaintext 指示瀏覽器使用 Unicode 瀏覽器啟發式演算法確定方向性,而不是 CSS direction 屬性。
  • CSS linear-gradient()repeating-linear-gradient() 屬性已更新,以支援新的 to 語法和魔幻角演算法。這允許在漸變填充框的角落精確指定顏色。
  • 已更正 text-overflow 屬性在盒子兩側都溢位而 text-overflow 屬性僅設定為單側溢位情況下的處理。
  • 已修復定位 <table> 元素內部元素的 position 屬性處理。此更改將影響頁面佈局;但是,我們現在符合 CSS 規範和其他瀏覽器,因此這應該很容易修復。
  • 已修復 <table> 元素周圍的邊距摺疊,以匹配 CSS 規範。以前,表格元素的邊距不會與其他相鄰元素一起摺疊,導致佈局不正確。此更改將影響頁面佈局;但是,我們現在符合 CSS 規範和其他瀏覽器,因此這應該很容易修復。

SVG

  • <mask> 元素已更新,以支援 sRGB 和 linearRGB,並且現在預設使用 sRGB,符合 SVG 1.1 規範的最新修訂版。

網路

  • HTTP 請求中不再發送 HTTP Accept-Charset 頭部。在缺少它的情況下,伺服器應透過傳送 UTF-8 進行響應。

開發者工具

Mozilla 和附加元件開發者的更改

有關更新附加元件以支援 Firefox 10 時可能出現的問題概述,請參閱 更新 Firefox 10 的附加元件

注意: 舊的 PRBool 資料型別已退役!文件中任何提及它的地方現在都使用標準 C++ bool 型別代替。文件將在未來更新,但目前,請記住這一點。

清單

  • 已向安裝清單添加了對 <em:strictCompatibility> 的支援。它允許附加元件作者選擇檢查其擴充套件的最大版本。如果設定為 true,則如果應用程式版本大於 <em:maxVersion>,則附加元件將被停用。Firefox 10 預設情況下,附加元件是相容的,無論其指定的最大版本如何。此標誌會覆蓋該首選項。如果您的附加元件執行的操作很可能被 Firefox 更新破壞,則應該設定此標誌,但不應在您的附加元件具有二進位制元件時設定此標誌,因為此類附加元件始終會被嚴格檢查(請記住,二進位制元件必須針對每個主要的 Firefox 版本重新編譯)。
  • 如果您希望恢復到舊行為——即對所有附加元件進行嚴格相容性檢查,無論其清單中 strictCompatibility 標誌的值如何,您可以將 extensions.strictCompatibility 首選項設定為 true

XUL

XPConnect

  • Components.utils 已新增幾個新的屬性和方法,用於訪問各種與除錯相關的資訊。

介面更改

  • mozISpellCheckingEnginensIEditorSpellCheck 介面已更新,允許無重啟附加元件向拼寫檢查器新增字典。
  • nsIBrowserHistory.lastPageVisited 屬性已移除。
  • nsIDocumentViewer 介面已合併到 nsIContentViewer 中。
  • nsIURIFixup 介面有一個新標誌 FIXUP_FLAG_USE_UTF8,它允許您在進行轉換時告訴它使用 UTF-8 而不是平臺字元集。

外掛更改

  • 已新增新的變數 NPNVdocumentOrigin;它返回文件來源,比 window.location 更安全。

構建系統更改

  • 已移除 --disable-rdf 構建選項,該選項實際上使得無法成功構建。目前正在努力完全移除 RDF 支援,但目前 XUL 仍需要它才能執行。有關移除 RDF 必需的最後痕跡的進展,請參閱 Firefox bug 559505
  • 已移除 --disable-smil 構建選項。