1

Firefoxに保存されているユーザー名/パスワードを取得してそれらのアカウントをThunderbirdにインポートするThunderbird拡張機能を実行しています。その結果、nsILoginManagerが必要になりますが、Thunderbird拡張機能からそれを機能させる方法がわかりません。そうすることは可能ですか?

4

1 に答える 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 に答える