更新 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介面中。如果您之前曾查詢nsISelection2或nsISelection3,則應更新您的程式碼。
日期處理已改進
現在 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 開頭的首選項的支援。