我正在做一个 Thunderbird 扩展,它将在 Firefox 中获取存储的用户名/密码并将这些帐户导入到 Thunderbird。这导致需要nsILoginManager,但我不确定如何通过 Thunderbird 扩展使其工作。有可能这样做吗?
问问题
337 次
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 回答