1
我正在做一個Thunderbird擴展,它將在Firefox中獲取存儲的用戶名/密碼並將這些賬戶導入到Thunderbird中。這導致需要nsILoginManager,但我不知道如何使它從Thunderbird擴展工作。是否有可能這樣做?從Thunderbird擴展中調用Firefox XPCOM組件
我正在做一個Thunderbird擴展,它將在Firefox中獲取存儲的用戶名/密碼並將這些賬戶導入到Thunderbird中。這導致需要nsILoginManager,但我不知道如何使它從Thunderbird擴展工作。是否有可能這樣做?從Thunderbird擴展中調用Firefox XPCOM組件
你幾乎不能。除了XPCOM不在不同工序之間工作,其複雜性如下:
你可以做的是最好的:
firefox -url file://foo/bar/extension.xpi
命令行 - 確保Firefox的運行和用戶要求安裝extension.xpi
。它應該是bootstrapped extension,以便不需要重新啓動瀏覽器。nsILoginManager
獲得必要的數據(如果用戶定義了主密碼,則涉及密碼提示)並將其發送回Thunderbird。這當然不是一個流暢的用戶體驗。至於這兩個擴展(Thunderbird和Firefox中的其中一個)如何通信 - TCP sockets可能是最簡單的方法。 Thunderbird擴展將創建一個服務器套接字並等待Firefox擴展連接到它。
謝謝你的回答。要回答你的問題,nsILoginManager將轉到當前的配置文件文件夾,使用key3.db和signons.sqlite,所以如果我可以複製這兩個文件,Firefox是否正在運行並不重要。這也適用於多個Firefox配置文件。我面臨的問題是如何讓nsILoginManager使用這些新的key3.db和signons.sqlite文件,因爲不可能覆蓋當前的key3.db.有沒有解決方法?如果我不能使用nsILoginManager,我想在我的擴展中直接解密它們,但是我找不到任何偏好。 – wayne 2012-03-31 07:59:31