更新 Firefox 10 的附加元件
儘管 Firefox 10 中發生了許多變化,理論上可能會導致附加元件相容性中斷,但其中大多數都相對晦澀,因此不太可能影響到您。本文將指導您完成附加元件的更新。
預設相容
首先也是最重要的一點是,從 Firefox 10 開始,附加元件預設被假定為相容。除非您在清單中使用 <em:strictCompatibility> 標誌,否則 Firefox 不會再將您的附加元件標記為在升級到 Firefox 10 或更高版本後不相容。您可以使用此標誌來確保可能中斷的附加元件不會嘗試在更新的 Firefox 版本中執行。值得注意的是,包含二進位制元件的附加元件將始終進行嚴格的相容性檢查,因為二進位制元件始終需要為每個主要的 Firefox 版本重新編譯。
注意:即使在預設相容的世界裡,您仍然應該在 Firefox 10 上測試您的附加元件。請閱讀本文的其餘部分,瞭解您是否需要進行任何更改。
DOM 更改
一些已棄用的 API 已從 DOM 中移除
Node.isSameNode()-
這是最有可能影響附加元件開發者的移除,因為它曾經相當常用。您現在可以使用 JavaScript
===運算子來比較節點,而不是使用這個已棄用的方法。此方法已根據 DOM4 規範棄用。 text.isElementContentWhitespace,text.replaceWholeText()-
這些 API 已根據 DOM4 規範棄用。
Document.xmlEncoding,Document.xmlStandalone,Document.xmlVersion-
所有這些 API 已根據 DOM4 規範棄用。它們最常用於檢測正在顯示的文件是 HTML 還是 XML。有關推薦的檢測方法,請參閱
Document.xmlVersion文章。
XPCOM 和介面更改
最重大的變化是,所有之前使用 PRBool 資料型別的地方現在都使用標準的 C++ bool 型別。
已移除的介面
以下介面已被移除
nsIDOMNSHTMLFrameElement-
此介面已合併到
nsIDOMHTMLFrameElement介面中。 nsIDOMNSHTMLElement-
此介面已合併到
nsIDOMHTMLElement中。 nsIDocumentViewer-
此介面已合併到
nsIContentViewer中。
其他介面更改
nsNavHistory不再實現nsICharsetResolver介面。請注意,nsICharsetResolver已不再使用,並將在 Firefox 11.0 中移除。mozISpellCheckingEngine和nsIEditorSpellCheck介面已更新,以允許無需重啟的附加元件向拼寫檢查器新增字典。有關詳細資訊,請參閱 使用外部拼寫檢查器(請注意,本文尚未更新,但很快就會更新)。nsIBrowserHistory.lastPageVisited屬性已被移除,因為它已不再支援一段時間。- 幾個 IndexedDB 的內部介面已更改,以支援修訂後的 API。這不應該影響您,但以防萬一您在做一些不尋常的事情,還是值得注意。
其他值得注意的更改
- Windows 上的所有二進位制元件都應啟用 ASLR(地址空間佈局隨機化)支援進行構建。雖然這目前不是必需的,但將來可能會,並且不啟用它會導致效能損失。
- Firefox 7 中引入的一個正則表示式處理錯誤已被修復。這可能會改變某些正則表示式的結果,請注意這一點。
- 您現在可以 在可啟動附加元件中動態載入和解除安裝 chrome.manifest 檔案。
- 現在支援
mouseenter和mouseleave事件。