Index: nsCRLManager.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsCRLManager.cpp,v retrieving revision 1.14 diff -up -r1.14 nsCRLManager.cpp --- nsCRLManager.cpp +++ nsCRLManager.cpp @@ -212,13 +212,16 @@ done: rv = NS_ERROR_NOT_AVAILABLE; } else { - rv = ::getNSSDialogs(getter_AddRefs(certDialogs), - NS_GET_IID(nsICertificateDialogs), NS_CERTIFICATEDIALOGS_CONTRACTID); + rv = ::getNSSDialogs( + getter_AddRefs(certDialogs), + NS_GET_IID(nsICertificateDialogs), + NS_CERTIFICATEDIALOGS_CONTRACTID, + nsnull); } } if (NS_SUCCEEDED(rv)) { - nsCOMPtr cxt = new PipUIContext(); - certDialogs->CrlImportStatusDialog(cxt, crlData); + nsCOMPtr ctx = new PipUIContext(); + certDialogs->CrlImportStatusDialog(ctx, crlData); } } } else { Index: nsCertPicker.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsCertPicker.cpp,v retrieving revision 1.11 diff -up -r1.11 nsCertPicker.cpp --- nsCertPicker.cpp +++ nsCertPicker.cpp @@ -165,7 +165,8 @@ NS_IMETHODIMP nsCertPicker::PickByUsage( nsICertPickDialogs *dialogs = nsnull; rv = getNSSDialogs((void**)&dialogs, NS_GET_IID(nsICertPickDialogs), - NS_CERTPICKDIALOGS_CONTRACTID); + NS_CERTPICKDIALOGS_CONTRACTID, + ctx); if (NS_SUCCEEDED(rv)) { nsPSMUITracker tracker; Index: nsCrypto.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsCrypto.cpp,v retrieving revision 1.74 diff -up -r1.74 nsCrypto.cpp --- nsCrypto.cpp +++ nsCrypto.cpp @@ -861,7 +861,8 @@ cryptojs_generateOneKeyPair(JSContext *c rv = getNSSDialogs((void**)&dialogs, NS_GET_IID(nsIGeneratingKeypairInfoDialogs), - NS_GENERATINGKEYPAIRINFODIALOGS_CONTRACTID); + NS_GENERATINGKEYPAIRINFODIALOGS_CONTRACTID, + uiCxt); if (NS_SUCCEEDED(rv)) { KeygenRunnable = new nsKeygenThread(); @@ -2034,7 +2035,8 @@ nsCrypto::GenerateCRMFRequest(nsIDOMCRMF nsCOMPtr dialogs; nsresult rv = getNSSDialogs(getter_AddRefs(dialogs), NS_GET_IID(nsIDOMCryptoDialogs), - NS_DOMCRYPTODIALOGS_CONTRACTID); + NS_DOMCRYPTODIALOGS_CONTRACTID, + nsnull); if (NS_FAILED(rv)) return rv; Index: nsKeygenHandler.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp,v retrieving revision 1.43 diff -up -r1.43 nsKeygenHandler.cpp --- nsKeygenHandler.cpp +++ nsKeygenHandler.cpp @@ -403,7 +403,7 @@ PRUint32 MapGenMechToAlgoMech(PRUint32 m nsresult GetSlotWithMechanism(PRUint32 aMechanism, - nsIInterfaceRequestor *m_ctx, + nsIInterfaceRequestor *ctx, PK11SlotInfo** aSlot) { nsNSSShutDownPreventionLock locker; @@ -420,7 +420,7 @@ GetSlotWithMechanism(PRUint32 aMechanism // Get the slot slotList = PK11_GetAllTokens(MapGenMechToAlgoMech(aMechanism), - PR_TRUE, PR_TRUE, m_ctx); + PR_TRUE, PR_TRUE, ctx); if (!slotList || !slotList->head) { rv = NS_ERROR_FAILURE; goto loser; @@ -461,8 +461,9 @@ GetSlotWithMechanism(PRUint32 aMechanism /* Throw up the token list dialog and get back the token */ rv = getNSSDialogs((void**)&dialogs, - NS_GET_IID(nsITokenDialogs), - NS_TOKENDIALOGS_CONTRACTID); + NS_GET_IID(nsITokenDialogs), + NS_TOKENDIALOGS_CONTRACTID, + ctx); if (NS_FAILED(rv)) goto loser; @@ -677,7 +678,8 @@ found_match: rv = getNSSDialogs((void**)&dialogs, NS_GET_IID(nsIGeneratingKeypairInfoDialogs), - NS_GENERATINGKEYPAIRINFODIALOGS_CONTRACTID); + NS_GENERATINGKEYPAIRINFODIALOGS_CONTRACTID, + m_ctx); if (NS_SUCCEEDED(rv)) { KeygenRunnable = new nsKeygenThread(); Index: nsNSSCertificateDB.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp,v retrieving revision 1.28 diff -up -r1.28 nsNSSCertificateDB.cpp --- nsNSSCertificateDB.cpp +++ nsNSSCertificateDB.cpp @@ -341,7 +341,8 @@ nsNSSCertificateDB::handleCACertDownload nsCOMPtr dialogs; nsresult rv = ::getNSSDialogs(getter_AddRefs(dialogs), NS_GET_IID(nsICertificateDialogs), - NS_CERTIFICATEDIALOGS_CONTRACTID); + NS_CERTIFICATEDIALOGS_CONTRACTID, + ctx); if (NS_FAILED(rv)) return rv; @@ -830,9 +831,9 @@ void nsNSSCertificateDB::DisplayCertific nsPSMUITracker tracker; if (!tracker.isUIForbidden()) { - nsCOMPtr my_cxt = ctx; - if (!my_cxt) - my_cxt = new PipUIContext(); + nsCOMPtr my_ctx = ctx; + if (!my_ctx) + my_ctx = new PipUIContext(); // This shall be replaced by embedding ovverridable prompts // as discussed in bug 310446, and should make use of certToShow. @@ -849,7 +850,7 @@ void nsNSSCertificateDB::DisplayCertific nsCOMPtr proxiedCallbacks; NS_GetProxyForObject(NS_PROXY_TO_MAIN_THREAD, NS_GET_IID(nsIInterfaceRequestor), - my_cxt, + my_ctx, NS_PROXY_SYNC, getter_AddRefs(proxiedCallbacks)); @@ -1128,19 +1129,19 @@ nsNSSCertificateDB::ImportCertsFromFile( if (bytes_obtained != file_info.size) rv = NS_ERROR_FAILURE; else { - nsCOMPtr cxt = new PipUIContext(); + nsCOMPtr ctx = new PipUIContext(); switch (aType) { case nsIX509Cert::CA_CERT: - rv = ImportCertificates(buf, bytes_obtained, aType, cxt); + rv = ImportCertificates(buf, bytes_obtained, aType, ctx); break; case nsIX509Cert::SERVER_CERT: - rv = ImportServerCertificate(buf, bytes_obtained, cxt); + rv = ImportServerCertificate(buf, bytes_obtained, ctx); break; case nsIX509Cert::EMAIL_CERT: - rv = ImportEmailCertificate(buf, bytes_obtained, cxt); + rv = ImportEmailCertificate(buf, bytes_obtained, ctx); break; default: Index: nsNSSComponent.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v retrieving revision 1.152 diff -up -r1.152 nsNSSComponent.cpp --- nsNSSComponent.cpp +++ nsNSSComponent.cpp @@ -2520,9 +2520,18 @@ NS_IMETHODIMP PipUIContext::GetInterface } nsresult -getNSSDialogs(void **_result, REFNSIID aIID, const char *contract) +getNSSDialogs( + void **_result, + REFNSIID aIID, + const char *contract, + nsIInterfaceRequestor *ctx) { nsresult rv; + if (ctx) { + rv = ctx->GetInterface(aIID, _result); + if (NS_SUCCEEDED(rv) && _result) + return rv; + } nsCOMPtr svc = do_GetService(contract, &rv); if (NS_FAILED(rv)) @@ -2547,7 +2556,8 @@ setPassword(PK11SlotInfo *slot, nsIInter rv = getNSSDialogs((void**)&dialogs, NS_GET_IID(nsITokenPasswordDialogs), - NS_TOKENPASSWORDSDIALOG_CONTRACTID); + NS_TOKENPASSWORDSDIALOG_CONTRACTID, + ctx); if (NS_FAILED(rv)) goto loser; Index: nsNSSHelper.h =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSHelper.h,v retrieving revision 1.6 diff -up -r1.6 nsNSSHelper.h --- nsNSSHelper.h +++ nsNSSHelper.h @@ -64,8 +64,12 @@ public: // specific dialogs. // -nsresult -getNSSDialogs(void **_result, REFNSIID aIID, const char *contract); +nsresult +getNSSDialogs( + void **_result, + REFNSIID aIID, + const char *contract, + nsIInterfaceRequestor *ctx); extern "C" { // a "fake" unicode conversion function Index: nsNSSIOLayer.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSIOLayer.cpp,v retrieving revision 1.131 diff -up -r1.131 nsNSSIOLayer.cpp --- nsNSSIOLayer.cpp +++ nsNSSIOLayer.cpp @@ -1423,7 +1423,8 @@ nsContinueDespiteCertError(nsNSSSocketIn if (!badCertHandler) { rv = getNSSDialogs((void**)&badCertHandler, NS_GET_IID(nsIBadCertListener), - NS_BADCERTLISTENER_CONTRACTID); + NS_BADCERTLISTENER_CONTRACTID, + callbacks); if (NS_FAILED(rv)) return PR_FALSE; } @@ -2284,7 +2285,8 @@ SECStatus nsNSS_SSLGetClientAuthData(voi /* Throw up the client auth dialog and get back the index of the selected cert */ rv = getNSSDialogs((void**)&dialogs, NS_GET_IID(nsIClientAuthDialogs), - NS_CLIENTAUTHDIALOGS_CONTRACTID); + NS_CLIENTAUTHDIALOGS_CONTRACTID, + info); if (NS_FAILED(rv)) { NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(CertsToUse, certNicknameList); Index: nsPKCS12Blob.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsPKCS12Blob.cpp,v retrieving revision 1.48 diff -up -r1.48 nsPKCS12Blob.cpp --- nsPKCS12Blob.cpp +++ nsPKCS12Blob.cpp @@ -531,7 +531,8 @@ nsPKCS12Blob::newPKCS12FilePassword(SECI nsCOMPtr certDialogs; rv = ::getNSSDialogs(getter_AddRefs(certDialogs), NS_GET_IID(nsICertificateDialogs), - NS_CERTIFICATEDIALOGS_CONTRACTID); + NS_CERTIFICATEDIALOGS_CONTRACTID, + nsnull); if (NS_FAILED(rv)) return rv; PRBool pressedOK; { @@ -560,7 +561,8 @@ nsPKCS12Blob::getPKCS12FilePassword(SECI nsCOMPtr certDialogs; rv = ::getNSSDialogs(getter_AddRefs(certDialogs), NS_GET_IID(nsICertificateDialogs), - NS_CERTIFICATEDIALOGS_CONTRACTID); + NS_CERTIFICATEDIALOGS_CONTRACTID, + nsnull); if (NS_FAILED(rv)) return rv; PRBool pressedOK; { Index: nsSDR.cpp =================================================================== RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsSDR.cpp,v retrieving revision 1.24 diff -up -r1.24 nsSDR.cpp --- nsSDR.cpp +++ nsSDR.cpp @@ -301,7 +301,8 @@ ChangePassword() rv = getNSSDialogs(getter_AddRefs(dialogs), NS_GET_IID(nsITokenPasswordDialogs), - NS_TOKENPASSWORDSDIALOG_CONTRACTID); + NS_TOKENPASSWORDSDIALOG_CONTRACTID, + nsnull); if (NS_FAILED(rv)) return rv; nsCOMPtr ctx = new nsSDRContext();