Firefoxに保存されているユーザー名/パスワードを取得してそれらのアカウントをThunderbirdにインポートするThunderbird拡張機能を実行しています。その結果、nsILoginManagerが必要になりますが、Thunderbird拡張機能からそれを機能させる方法がわかりません。そうすることは可能ですか?
1 に答える
1
あなたはほとんどできません。XPCOMが異なるプロセス間で機能しないことに加えて、複雑な点は次のとおりです。
- Firefoxが実行されていない場合はどうなりますか?
- パスワードストレージがマスターパスワードで暗号化されている場合はどうなりますか?
- Firefoxプロファイルが複数ある場合はどうなりますか?
あなたができる最善のことは次のとおりです。
- 次のようなコマンドライン
firefox -url file://foo/bar/extension.xpi
でFirefoxを起動します-Firefoxが実行されていることと、ユーザーにインストールを求められていることを確認しますextension.xpi
。ブラウザを再起動する必要がないように、ブートストラップされた拡張機能である必要があります。 - その拡張機能は、必要なデータを
nsILoginManager
(ユーザーがマスターパスワードを定義している場合はパスワードプロンプトを含む)から取得し、それをThunderbirdに送り返します。 - その後、この拡張機能はアドオンマネージャーAPIを使用してそれ自体をアンインストールします。
もちろん、これはスムーズなユーザーエクスペリエンスとはほど遠いものです。2つの拡張機能(1つはThunderbird、もう1つはFirefox)がどのように通信するかについては、TCPソケットがおそらく最も簡単な方法です。Thunderbird拡張機能はサーバーソケットを作成し、Firefox拡張機能がそれに接続するのを待ちます。
于 2012-03-19T10:51:47.763 に答える