2012-03-19 72 views

回答

1

你幾乎不能。除了XPCOM不在不同工序之間工作,其複雜性如下:

  • 如果Firefox未運行,該怎麼辦?
  • 如果使用主密碼加密密碼存儲,該怎麼辦?
  • 如果有多個Firefox配置文件會怎麼樣?

你可以做的是最好的:

  • 啓動Firefox與像firefox -url file://foo/bar/extension.xpi命令行 - 確保Firefox的運行和用戶要求安裝extension.xpi。它應該是bootstrapped extension,以便不需要重新啓動瀏覽器。
  • 該擴展從nsILoginManager獲得必要的數據(如果用戶定義了主密碼,則涉及密碼提示)並將其發送回Thunderbird。
  • 之後,此擴展使用Add-on Manager API卸載自己。

這當然不是一個流暢的用戶體驗。至於這兩個擴展(Thunderbird和Firefox中的其中一個)如何通信 - TCP sockets可能是最簡單的方法。 Thunderbird擴展將創建一個服務器套接字並等待Firefox擴展連接到它。

+0

謝謝你的回答。要回答你的問題,nsILoginManager將轉到當前的配置文件文件夾,使用key3.db和signons.sqlite,所以如果我可以複製這兩個文件,Firefox是否正在運行並不重要。這也適用於多個Firefox配置文件。我面臨的問題是如何讓nsILoginManager使用這些新的key3.db和signons.sqlite文件,因爲不可能覆蓋當前的key3.db.有沒有解決方法?如果我不能使用nsILoginManager,我想在我的擴展中直接解密它們,但是我找不到任何偏好。 – wayne 2012-03-31 07:59:31