更新 Firefox 8 的附加元件

本文提供了關於為相容 Firefox 8 而更新現有附加元件所需的步驟資訊。請參閱 Firefox 8 for developers 以獲取 Firefox 8 中所有更改的完整列表。

您需要做些什麼嗎?

如果您的附加元件分發在 addons.mozilla.org (AMO) 上,它已經過自動化相容性驗證工具的檢查。未使用 Firefox 8 中更改的 API 且不包含二進位制元件(每次 Firefox 主版本釋出都需要重新編譯)的附加元件已自動在 AMO 上更新,以表明它們可以在 Firefox 8 中執行。

所以,您應該首先訪問 AMO,檢視您的擴充套件是否需要進行任何工作。

注意: 即使您的附加元件已自動升級,您仍應在 Firefox 8 上測試它。可能存在自動檢測不到的邊緣情況。

一旦您確認需要進行更改,請返回此頁面繼續閱讀。

開發流程說明

值得注意的是,在啟動時,Firefox 8 現在會在首次啟動時檢查第三方附加元件,並顯示一個使用者介面,讓使用者決定是否啟用它們。如果您將附加元件放入配置檔案目錄中進行測試,Firefox 在首次啟動時不會自動啟用它,而是會顯示此介面。

您可以透過將首選項 extensions.autoDisableScopes 設定為 14 來避免這種情況。這僅應出於開發和測試目的進行。

介面已合併

作為我們持續努力簡化 Gecko 內部結構的一部分,一些介面已合併在一起

  • nsIDOMWindowInternal 已合併到 nsIDOMWindow 中。nsIDOMWindowInternal 介面仍然存在,但為空,並將在 Firefox 9 中完全移除。您應該更新任何依賴 nsIDOMWindowInternal 存在的程式碼,使其改為查詢 nsIDOMWindow
  • nsISelection 的所有子介面都已合併到基礎 nsISelection 介面中。如果您之前曾查詢 nsISelection2nsISelection3,則應更新您的程式碼。

日期處理已改進

現在 JavaScript Date 物件可以解析 ISO 8601 日期,ISO8601DateUtils.jsm 程式碼模組已被移除。如果您曾使用此程式碼模組,應更新程式碼以改為使用 Date 上的方法。

DOM 更改

DOM 中有幾個更改會影響附加元件

選擇更改

過去,Document.getSelection() 返回的是選取的字串化版本,而不是 Selection 物件本身。這是不標準的行為,現已得到糾正。

潛在的名稱衝突

在新增 DOM File API 時,添加了一個名為 File 的全域性變數;這可能與您的指令碼中的物件發生衝突。如果您有任何名為 File 的全域性變數,應重新命名它們。

類似地,為了支援從 chrome 程式碼使用 Worker,引入了一個名為 ChromeWorker 的新全域性變數。如果您碰巧有任何名為此名稱的全域性變數,應重新命名它們。

安全更改

已移除對 SSL 2.0 的支援。這不應影響任何當前的附加元件。但是,作為參考,一些非常舊的程式碼已被移除,以及對首選項 security.enable_ssl2(預設值為 false)和所有以 security.ssl2 開頭的首選項的支援。

另見