答えて

1

あなたはほとんどできません。 XPCOMに加えて、さまざまなプロセスで機能しないだけでなく、複雑さは次のとおりです。

  • Firefoxが実行されていない場合はどうなりますか?
  • パスワードのストレージがマスターパスワードで暗号化されている場合はどうなりますか?
  • 複数のFirefoxプロファイルがある場合はどうなりますか?

あなたができる最善のは、次のようになります。firefox -url file://foo/bar/extension.xpiのようなコマンドラインで

  • スタートのFirefox - Firefoxが実行され、ユーザーがextension.xpiをインストールするように要求されていることを確認します。ブラウザを再起動する必要がないように、bootstrapped extensionにする必要があります。
  • その拡張子はnsILoginManager(ユーザーにはマスターパスワードが定義されている場合はパスワードプロンプトが表示されます)から必要なデータを取得し、Thunderbirdに送り返します。
  • その後、この拡張機能はAdd-on Manager APIを使用して自身をアンインストールします。

これはもちろん、滑らかなユーザーエクスペリエンスではありません。 2つの拡張機能(Thunderbirdで1つ、Firefoxでもう1つ)がどのように通信するかに関しては、TCP socketsがおそらく最も簡単な方法でしょう。 Thunderbird拡張機能はサーバーソケットを作成し、Firefox拡張機能が接続するのを待ちます。

+0

ありがとうございます。あなたの質問に答えるために、nsILoginManagerは現在のプロファイルフォルダに移動し、key3.dbとsignons.sqliteを使用するので、Firefoxが動作しているかどうかは関係ありません。これは複数のFirefoxプロファイルでも機能します。私が直面している問題は、現在のkey3.dbを上書きすることが不可能なので、これらの新しいkey3.dbおよびsignons.sqliteファイルを使用するようにnsILoginManagerを作成する方法です。このための回避策はありますか? nsILoginManagerを使用できない場合は、拡張機能で直接解読することを検討していますが、その設定を見つけることはできません。 – wayne

関連する問題