nsICertificateDialogs
ダイアログを独自の実装に置き換えようとしています。Web メールからの smime メールを処理する拡張機能を既に持っています。拡張機能で Mozilla 証明書ストアを使用できるようにしたいと考えています。smime 証明書/キーをエクスポートする (拡張機能で使用する) 唯一の方法は、pfx ファイルをエクスポートすることです。
コマンドラインから nsIX509CertDB.nsIX509CertDB を呼び出している間にエラーが発生しました (古いファクトリを登録解除し、鉱山を正しい契約 ID で登録します)。私が呼び出すとCc[@mozilla.org/nsCertificateDialogs;1].getService(Ci.nsICertificateDialogs);
、クラスがインスタンス化されます。呼び出すcertDB.importPKCS12File(null, certfile)
とNS_ERROR_FAILURE
、ダイアログ クラスがインスタンス化されません。
FF が証明書ダイアログをインスタンス化するときの違いは何ですか。どうすればテストできますか?私は何が欠けていますか?
編集:有効なトークン certDB.importPKCS12File(token, certfile); で呼び出された場合でも、証明書ダイアログ クラスが ff によってインスタンス化されません。変更呼び出し var certdialogInterface = Cc[sMimeCertificateDialog.mozillaContractID] .getService(Ci.nsICertificateDialogs); 私のクラスを正しくインスタンス化します(いくつかの QueryInterface 呼び出しが続きます)
編集: (願わくば) 単純な複製子をhttp://www.sodgeit.de/dialog_reproducer.zipにアップロードしました