1

我正在做一个 Thunderbird 扩展,它将在 Firefox 中获取存储的用户名/密码并将这些帐户导入到 Thunderbird。这导致需要nsILoginManager,但我不确定如何通过 Thunderbird 扩展使其工作。有可能这样做吗?

4

1 回答 1

1

你几乎不能。除了 XPCOM 根本无法跨不同进程工作之外,复杂性还包括:

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

你能做的最好的事情是:

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

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

于 2012-03-19T10:51:47.763 回答