From 13a60dc90a8645cece65e70c95bc9c48821b72df Mon Sep 17 00:00:00 2001 From: "bryner%uiuc.edu" Date: Mon, 9 Apr 2001 18:30:18 +0000 Subject: [PATCH] Fixing more fallout from danm's checkin. git-svn-id: svn://10.0.0.236/trunk@91763 18797224-902f-48f8-a5cc-f745e15eee43 --- .../manager/ssl/src/nsNSSCallbacks.cpp | 2 - .../manager/ssl/src/nsNSSComponent.cpp | 45 +++++++++++++------ mozilla/security/manager/ssl/src/nsSDR.cpp | 25 +++++++---- 3 files changed, 49 insertions(+), 23 deletions(-) diff --git a/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp b/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp index bd05997a221..c2d9ad93504 100644 --- a/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp +++ b/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp @@ -29,7 +29,6 @@ #include "nsCOMPtr.h" #include "nsIServiceManager.h" #include "nsReadableUtils.h" -#include "nsINetSupportDialogService.h" #include "nsIPrompt.h" #include "nsProxiedService.h" #include "nsIInterfaceRequestor.h" @@ -38,7 +37,6 @@ #include "cert.h" -static NS_DEFINE_CID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID); static NS_DEFINE_CID(kNSSComponentCID, NS_NSSCOMPONENT_CID); char* PK11PasswordPrompt(PK11SlotInfo* slot, PRBool retry, void* arg) { diff --git a/mozilla/security/manager/ssl/src/nsNSSComponent.cpp b/mozilla/security/manager/ssl/src/nsNSSComponent.cpp index 7192280da61..ac5b6af10c2 100644 --- a/mozilla/security/manager/ssl/src/nsNSSComponent.cpp +++ b/mozilla/security/manager/ssl/src/nsNSSComponent.cpp @@ -44,7 +44,8 @@ #include "nsNSSHelper.h" #include "prlog.h" -#include "nsINetSupportDialogService.h" +#include "nsIWindowWatcher.h" +#include "nsIPrompt.h" #include "nsProxiedService.h" #include "nss.h" @@ -566,8 +567,6 @@ nsNSSComponent::RegisterProfileChangeObserver() return rv; } -static NS_DEFINE_CID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID); - NS_IMPL_ISUPPORTS1(PipUIContext, nsIInterfaceRequestor) PipUIContext::PipUIContext() @@ -585,12 +584,22 @@ NS_IMETHODIMP PipUIContext::GetInterface(const nsIID & uuid, void * *result) nsresult rv; if (uuid.Equals(NS_GET_IID(nsIPrompt))) { - NS_WITH_PROXIED_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, - NS_UI_THREAD_EVENTQ, &rv); - if (NS_FAILED(rv)) return rv; + nsCOMPtr proxyman(do_GetService(NS_XPCOMPROXY_CONTRACTID)); + if (!proxyman) return NS_ERROR_FAILURE; - *result = dialog; - NS_ADDREF(dialog); + nsCOMPtr prompter; + nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); + if (wwatch) { + wwatch->GetNewPrompter(0, getter_AddRefs(prompter)); + if (prompter) { + nsCOMPtr proxyPrompt; + proxyman->GetProxyForObject(NS_UI_THREAD_EVENTQ, NS_GET_IID(nsIPrompt), + prompter, PROXY_SYNC, getter_AddRefs(proxyPrompt)); + if (!proxyPrompt) return NS_ERROR_FAILURE; + *result = proxyPrompt; + NS_ADDREF(proxyPrompt); + } + } } else { rv = NS_ERROR_NO_INTERFACE; } @@ -687,12 +696,22 @@ NS_IMETHODIMP CertDownloaderContext::GetInterface(const nsIID & uuid, void * *re nsresult rv; if (uuid.Equals(NS_GET_IID(nsIPrompt))) { - NS_WITH_PROXIED_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, - NS_UI_THREAD_EVENTQ, &rv); - if (NS_FAILED(rv)) return rv; + nsCOMPtr proxyman(do_GetService(NS_XPCOMPROXY_CONTRACTID)); + if (!proxyman) return NS_ERROR_FAILURE; - *result = dialog; - NS_ADDREF(dialog); + nsCOMPtr prompter; + nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); + if (wwatch) { + wwatch->GetNewPrompter(0, getter_AddRefs(prompter)); + if (prompter) { + nsCOMPtr proxyPrompt; + proxyman->GetProxyForObject(NS_UI_THREAD_EVENTQ, NS_GET_IID(nsIPrompt), + prompter, PROXY_SYNC, getter_AddRefs(proxyPrompt)); + if (!proxyPrompt) return NS_ERROR_FAILURE; + *result = proxyPrompt; + NS_ADDREF(proxyPrompt); + } + } } else { rv = NS_ERROR_NO_INTERFACE; } diff --git a/mozilla/security/manager/ssl/src/nsSDR.cpp b/mozilla/security/manager/ssl/src/nsSDR.cpp index ac8dda5de5a..b7cbebe27e1 100644 --- a/mozilla/security/manager/ssl/src/nsSDR.cpp +++ b/mozilla/security/manager/ssl/src/nsSDR.cpp @@ -32,7 +32,8 @@ #include "nsIInterfaceRequestor.h" #include "nsIServiceManager.h" #include "nsISecurityManagerComponent.h" -#include "nsINetSupportDialogService.h" +#include "nsIWindowWatcher.h" +#include "nsIPrompt.h" #include "nsProxiedService.h" #include "nsINSSDialogs.h" @@ -43,8 +44,6 @@ #include "pk11func.h" #include "pk11sdr.h" // For PK11SDR_Encrypt, PK11SDR_Decrypt -static NS_DEFINE_CID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID); - // // Implementation of an nsIInterfaceRequestor for use // as context for NSS calls @@ -77,12 +76,22 @@ NS_IMETHODIMP nsSDRContext::GetInterface(const nsIID & uuid, void * *result) nsresult rv; if (uuid.Equals(NS_GET_IID(nsIPrompt))) { - NS_WITH_PROXIED_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, - NS_UI_THREAD_EVENTQ, &rv); - if (NS_FAILED(rv)) return rv; + nsCOMPtr proxyman(do_GetService(NS_XPCOMPROXY_CONTRACTID)); + if (!proxyman) return NS_ERROR_FAILURE; - *result = dialog; - NS_ADDREF(dialog); + nsCOMPtr prompter; + nsCOMPtr wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")); + if (wwatch) { + wwatch->GetNewPrompter(0, getter_AddRefs(prompter)); + if (prompter) { + nsCOMPtr proxyPrompt; + proxyman->GetProxyForObject(NS_UI_THREAD_EVENTQ, NS_GET_IID(nsIPrompt), + prompter, PROXY_SYNC, getter_AddRefs(proxyPrompt)); + if (!proxyPrompt) return NS_ERROR_FAILURE; + *result = proxyPrompt; + NS_ADDREF(proxyPrompt); + } + } } else { rv = NS_ERROR_NO_INTERFACE; }