답변

1

당신은 거의 할 수 없습니다. XPCOM에 단순히 다른 프로세스에서 작동하지 않는 것 외에도 다음과 같은 복잡한 문제가 있습니다.

  • Firefox가 실행되지 않으면 어떻게됩니까?
  • 암호 저장소가 마스터 암호로 암호화되는 경우 어떻게됩니까?
  • 둘 이상의 Firefox 프로필이있는 경우 어떻게됩니까?

당신이 될 것입니다 할 수있는 가장 좋은 :

  • 시작 파이어 폭스 firefox -url file://foo/bar/extension.xpi 같은 명령 줄 - 파이어 폭스가 실행되고 사용자가 extension.xpi를 설치하라는되어 있는지 확인합니다. 브라우저를 다시 시작하지 않아도되도록 bootstrapped extension이어야합니다.
  • 그 확장자는 nsILoginManager (사용자가 마스터 암호가 정의되어있는 경우 암호 프롬프트가 포함됨)에서 필요한 데이터를 가져 와서 다시 Thunderbird로 보냅니다.
  • 그 후이 확장 프로그램은 Add-on Manager API을 사용하여 자체 제거합니다.

물론 부드러운 사용자 경험이 아닙니다. 두 확장 (Thunderbird에서 하나, Firefox에서 다른 하나)이 어떻게 통신하는지에 관해서는 - TCP sockets이 가장 쉬운 방법 일 것입니다. Thunderbird 확장은 서버 소켓을 만들고 Firefox 확장이 연결될 때까지 기다립니다.

+0

답장을 보내 주셔서 감사합니다. 질문에 대답하기 위해 nsILoginManager는 현재 프로필 폴더로 이동하고 key3.db 및 signons.sqlite를 사용하므로 Firefox 2가 복사 할 수 있는지 여부는 중요하지 않습니다. 이는 여러 개의 Firefox 프로파일에도 적용됩니다. 내가 직면 한 문제는 현재 key3.db를 덮어 쓰는 것이 불가능하기 때문에 이러한 새로운 key3.db 및 signons.sqlite 파일을 사용하도록 nsILoginManager를 만드는 방법입니다. 이 문제를 해결할 수있는 방법이 있습니까? nsILoginManager를 사용할 수 없다면 내 확장 프로그램에서 직접 암호 해독을 시도하고 있습니다 만, 그 설정을 찾을 수는 없습니다. – wayne

관련 문제