From 25d6970955c35b592747325bd4c34143765d5a34 Mon Sep 17 00:00:00 2001 From: "dtownsend@oxymoronical.com" Date: Fri, 15 Jun 2007 10:21:16 -0700 Subject: [PATCH] Bug 312473: extension update does not try authentication if needed. r+sr=dveditz --- xpinstall/src/nsXPInstallManager.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/xpinstall/src/nsXPInstallManager.cpp b/xpinstall/src/nsXPInstallManager.cpp index 5480bb9c5bbb..20f4728712a7 100644 --- a/xpinstall/src/nsXPInstallManager.cpp +++ b/xpinstall/src/nsXPInstallManager.cpp @@ -65,6 +65,7 @@ #include "nsInstallResources.h" #include "nsIProxyObjectManager.h" #include "nsIWindowWatcher.h" +#include "nsIAuthPrompt.h" #include "nsIWindowMediator.h" #include "nsIDOMWindowInternal.h" #include "nsDirectoryService.h" @@ -1151,6 +1152,22 @@ nsXPInstallManager::OnStatus(nsIRequest* request, nsISupports *ctxt, NS_IMETHODIMP nsXPInstallManager::GetInterface(const nsIID & eventSinkIID, void* *_retval) { + if (eventSinkIID.Equals(NS_GET_IID(nsIAuthPrompt))) { + *_retval = nsnull; + + nsresult rv; + nsCOMPtr ww(do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv)); + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr prompt; + rv = ww->GetNewAuthPrompter(nsnull, getter_AddRefs(prompt)); + NS_ENSURE_SUCCESS(rv, rv); + + nsIAuthPrompt *p = prompt.get(); + NS_ADDREF(p); + *_retval = p; + return NS_OK; + } return QueryInterface(eventSinkIID, (void**)_retval); }