从Thunderbird扩展调用Firefox XPCOM组件

时间:2012-03-19 07:51:21

标签: firefox firefox-addon xpcom thunderbird thunderbird-addon

我正在做一个Thunderbird扩展程序,它将在Firefox中获取存储的用户名/密码,并将这些帐户导入Thunderbird。这导致需要nsILoginManager,但我不确定如何使用Thunderbird扩展来实现它。是否可以这样做?

1 个答案:

答案 0 :(得分:1)

你几乎不能。除了XPCOM不能在不同的流程中工作外,其复杂性还有:

  • 如果Firefox没有运行怎么办?
  • 如果使用主密码加密密码存储怎么办?
  • 如果有多个Firefox配置文件怎么办?

你能做的最好的事情是:

  • 使用firefox -url file://foo/bar/extension.xpi等命令行启动Firefox - 确保Firefox正在运行,并要求用户安装extension.xpi。它应该是bootstrapped extension,因此不需要重新启动浏览器。
  • 该扩展程序从nsILoginManager获取必要的数据(如果用户定义了主密码,则会涉及密码提示)并将其发送回Thunderbird。
  • 之后,此扩展程序使用Add-on Manager API卸载自己。

当然,这远非流畅的用户体验。至于两个扩展(一个在Thunderbird中,另一个在Firefox中)将如何通信 - TCP sockets可能是最简单的方法。 Thunderbird扩展将创建一个服务器套接字并等待Firefox扩展连接到它。

相关问题