我试图取代nsICertificateDialogs
用我自己的Dialog实现。 我已经从网络邮件处理SMIME邮件的扩展。 我希望能够使用Mozilla的证书存储我的扩充。 唯一的可能性,我发现通过导出PFX文件导出SMIME证书/键(使用它在我的扩展名)。
我注销原certifica tedialog,注册矿此处所述故障而从从命令行调用nsIX509CertDB.nsIX509CertDB (注销旧厂房和正确contractID注册矿)。 当我打电话Cc[@mozilla.org/nsCertificateDialogs;1].getService(Ci.nsICertificateDialogs);
我的课被实例化。 当调用certDB.importPKCS12File(null, certfile)
我得到一个NS_ERROR_FAILURE
和我的对话类没有实例化。
是什么时,FF实例证书对话框的差异。 如何测试呢? 我在想什么?
编辑:我的证书对话框类不获得通过FF实例化 - 即使与有效令牌certDB.importPKCS12File(令牌,certFile中)调用; 在改变主叫VAR certdialogInterface =抄送[sMimeCertificateDialog.mozillaContractID] .getService(Ci.nsICertificateDialogs); 正确instanciates我的课(许多的QueryInterface调用)
编辑:我上传了(希望)简单的再现,以http://www.sodgeit.de/dialog_reproducer.zip看的src /铬/组件/ smime_certificate_dialog.js并且到src /测试/ smime_certificate_dialog_test.js