Вызов компонента Firefox XPCOM из расширения Thunderbird - PullRequest
1 голос
/ 19 марта 2012

Я делаю расширение Thunderbird, которое получит сохраненное имя пользователя / пароль в Firefox и импортирует эти учетные записи в Thunderbird.Это приводит к необходимости nsILoginManager , но я не уверен, как заставить его работать из расширения Thunderbird.Возможно ли это сделать?

1 Ответ

1 голос
/ 19 марта 2012

Вы почти не можете.В дополнение к тому, что XPCOM просто не работает в разных процессах, возникают следующие сложности:

  • Что если Firefox не работает?
  • Что если хранилище паролей зашифровано с помощью мастер-пароля?
  • Что если существует более одного профиля Firefox?

Лучшее, что вы могли бы сделать:

  • Запустить Firefox с командной строкой, подобной firefox -url file://foo/bar/extension.xpi - убедитесь, что Firefox запущен, и пользователю предлагается установить extension.xpi.Это должно быть загружаемое расширение , чтобы не требовалось перезапускать браузер.
  • Это расширение получает необходимые данные из nsILoginManager (что включает запрос пароля, если для пользователя определен мастер-пароль)) и отправляет его обратно в Thunderbird.
  • После этого это расширение использует API диспетчера надстроек для удаления самого себя.

Это далеко неплавный пользовательский опыт, конечно.Что касается того, как два расширения (одно в Thunderbird, другое в Firefox) будут взаимодействовать - TCP-сокеты , вероятно, будет самым простым способом.Расширение Thunderbird будет создавать серверный сокет и ждать, пока расширение Firefox подключится к нему.

...