diff --git a/mozilla/extensions/wallet/public/nsIWalletService.idl b/mozilla/extensions/wallet/public/nsIWalletService.idl index 6d9000828ee..4bbf2d4f35b 100644 --- a/mozilla/extensions/wallet/public/nsIWalletService.idl +++ b/mozilla/extensions/wallet/public/nsIWalletService.idl @@ -55,15 +55,10 @@ interface nsIWalletService : nsISupports { [noscript]void WALLET_PrefillReturn(in nsAutoString results); void WALLET_FetchFromNetCenter(); - boolean PromptUsernameAndPasswordURL(in wstring text, out wstring user, out wstring pwd, in string urlname, in nsIPrompt dialog); - boolean PromptPasswordURL(in wstring text, out wstring pwd, in string urlname, in nsIPrompt dialog); - boolean PromptURL(in wstring text, in wstring defaultText, out wstring result, in string urlname, in nsIPrompt dialog); - void SI_RemoveUser(in string URLName, in wstring userName); - - boolean PromptUsernameAndPasswordURLNostrip(in wstring text, out wstring user, out wstring pwd, in string urlname, in nsIPrompt dialog); - boolean PromptPasswordURLNostrip(in wstring text, out wstring pwd, in string urlname, in nsIPrompt dialog); - boolean PromptURLNostrip(in wstring text, in wstring defaultText, out wstring result, in string urlname, in nsIPrompt dialog); - void SI_RemoveUserNostrip(in string URLName, in wstring userName); + boolean PromptUsernameAndPasswordURL(in wstring text, out wstring user, out wstring pwd, in string urlname, in boolean stripUrl, in nsIPrompt dialog); + boolean PromptPasswordURL(in wstring text, out wstring pwd, in string urlname, in boolean stripUrl, in nsIPrompt dialog); + boolean PromptURL(in wstring text, in wstring defaultText, out wstring result, in string urlname, in boolean stripUrl, in nsIPrompt dialog); + void SI_RemoveUser(in string URLName, in boolean stripUrl, in wstring userName); [noscript] void WALLET_GetNopreviewListForViewer(in nsAutoStringRef aNopreviewList); [noscript] void WALLET_GetNocaptureListForViewer(in nsAutoStringRef aNocaptureList); diff --git a/mozilla/extensions/wallet/src/nsBasicStreamGenerator.cpp b/mozilla/extensions/wallet/src/nsBasicStreamGenerator.cpp index f4afa1b449d..07fc67fc39b 100644 --- a/mozilla/extensions/wallet/src/nsBasicStreamGenerator.cpp +++ b/mozilla/extensions/wallet/src/nsBasicStreamGenerator.cpp @@ -81,7 +81,7 @@ NS_IMETHODIMP nsBasicStreamGenerator::GetByte(PRUint32 offset, PRUint8 *retval) } // Get the offset byte from the stream. Our stream is - // just our password reapting itself infinite times. + // just our password repeating itself infinite times. *retval = mPassword[offset % mPassword.Length()]; return rv; } diff --git a/mozilla/extensions/wallet/src/nsWalletService.cpp b/mozilla/extensions/wallet/src/nsWalletService.cpp index 5d3364b01f5..f3645e91bde 100644 --- a/mozilla/extensions/wallet/src/nsWalletService.cpp +++ b/mozilla/extensions/wallet/src/nsWalletService.cpp @@ -110,48 +110,26 @@ NS_IMETHODIMP nsWalletlibService::WALLET_FetchFromNetCenter(){ NS_IMETHODIMP nsWalletlibService::PromptUsernameAndPasswordURL (const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, - const char *urlname, nsIPrompt* dialog, PRBool *returnValue) { - return ::SINGSIGN_PromptUsernameAndPassword(text, user, pwd, urlname, dialog, returnValue); + const char *urlname, PRBool stripUrl, nsIPrompt* dialog, PRBool *returnValue) { + return ::SINGSIGN_PromptUsernameAndPassword + (text, user, pwd, urlname, dialog, returnValue, stripUrl); } NS_IMETHODIMP nsWalletlibService::PromptPasswordURL - (const PRUnichar *text, PRUnichar **pwd, const char *urlname, nsIPrompt* dialog, PRBool *returnValue) { - return ::SINGSIGN_PromptPassword(text, pwd, urlname, dialog, returnValue); + (const PRUnichar *text, PRUnichar **pwd, const char *urlname, PRBool stripUrl, + nsIPrompt* dialog, PRBool *returnValue) { + return ::SINGSIGN_PromptPassword(text, pwd, urlname, dialog, returnValue, stripUrl); } NS_IMETHODIMP nsWalletlibService::PromptURL (const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **resultText, - const char *urlname, nsIPrompt* dialog, PRBool *returnValue) { - return ::SINGSIGN_Prompt(text, defaultText, resultText, urlname, dialog, returnValue); -} - -NS_IMETHODIMP nsWalletlibService::SI_RemoveUser(const char *URLName, const PRUnichar *userName) { - ::SINGSIGN_RemoveUser(URLName, userName); - return NS_OK; -} - -NS_IMETHODIMP nsWalletlibService::PromptUsernameAndPasswordURLNostrip - (const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, - const char *urlname, nsIPrompt* dialog, PRBool *returnValue) { - return ::SINGSIGN_PromptUsernameAndPassword - (text, user, pwd, urlname, dialog, returnValue, PR_FALSE); -} - -NS_IMETHODIMP nsWalletlibService::PromptPasswordURLNostrip - (const PRUnichar *text, PRUnichar **pwd, const char *urlname, - nsIPrompt* dialog, PRBool *returnValue) { - return ::SINGSIGN_PromptPassword(text, pwd, urlname, dialog, returnValue, PR_FALSE); -} - -NS_IMETHODIMP nsWalletlibService::PromptURLNostrip - (const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **resultText, - const char *urlname, nsIPrompt* dialog, PRBool *returnValue) { + const char *urlname, PRBool stripUrl, nsIPrompt* dialog, PRBool *returnValue) { return ::SINGSIGN_Prompt - (text, defaultText, resultText, urlname, dialog, returnValue, PR_FALSE); + (text, defaultText, resultText, urlname, dialog, returnValue, stripUrl); } -NS_IMETHODIMP nsWalletlibService::SI_RemoveUserNostrip(const char *URLName, const PRUnichar *userName) { - ::SINGSIGN_RemoveUser(URLName, userName, PR_FALSE); +NS_IMETHODIMP nsWalletlibService::SI_RemoveUser(const char *URLName, PRBool stripUrl, const PRUnichar *userName) { + ::SINGSIGN_RemoveUser(URLName, userName, stripUrl); return NS_OK; } diff --git a/mozilla/extensions/wallet/src/nsWalletService.h b/mozilla/extensions/wallet/src/nsWalletService.h index 19f77773123..1a1d4238a70 100644 --- a/mozilla/extensions/wallet/src/nsWalletService.h +++ b/mozilla/extensions/wallet/src/nsWalletService.h @@ -51,26 +51,14 @@ public: NS_IMETHOD PromptUsernameAndPasswordURL (const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, - const char *urlname, nsIPrompt* dialog, PRBool *_retval); + const char *urlname, PRBool stripUrl, nsIPrompt* dialog, PRBool *_retval); NS_IMETHOD PromptPasswordURL - (const PRUnichar *text, PRUnichar **pwd, const char *urlname, nsIPrompt* dialog, PRBool *_retval); + (const PRUnichar *text, PRUnichar **pwd, const char *urlname, PRBool stripUrl, nsIPrompt* dialog, PRBool *_retval); NS_IMETHOD PromptURL (const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **result, - const char *urlname, nsIPrompt* dialog, PRBool *_retval); - - NS_IMETHOD SI_RemoveUser(const char *URLName, const PRUnichar *userName); - - NS_IMETHOD PromptUsernameAndPasswordURLNostrip - (const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, - const char *urlname, nsIPrompt* dialog, PRBool *_retval); - NS_IMETHOD PromptPasswordURLNostrip - (const PRUnichar *text, PRUnichar **pwd, const char *urlname, nsIPrompt* dialog, PRBool *_retval); - NS_IMETHOD PromptURLNostrip - (const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **result, - const char *urlname, nsIPrompt* dialog, PRBool *_retval); - - NS_IMETHOD SI_RemoveUserNostrip(const char *URLName, const PRUnichar *userName); + const char *urlname, PRBool stripUrl, nsIPrompt* dialog, PRBool *_retval); + NS_IMETHOD SI_RemoveUser(const char *URLName, PRBool stripUrl, const PRUnichar *userName); NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAutoString& aNopreviewList); NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAutoString& aNocaptureList); diff --git a/mozilla/extensions/wallet/src/singsign.cpp b/mozilla/extensions/wallet/src/singsign.cpp index e45296d9bb7..a71c5d9ea3d 100644 --- a/mozilla/extensions/wallet/src/singsign.cpp +++ b/mozilla/extensions/wallet/src/singsign.cpp @@ -800,7 +800,7 @@ si_GetURL(char * URLName) { /* Remove a user node from a given URL node */ PRIVATE PRBool -si_RemoveUser(char *URLName, nsAutoString userName, PRBool save, PRBool strip = PR_TRUE) { +si_RemoveUser(char *URLName, nsAutoString userName, PRBool save, PRBool strip) { nsresult res; si_SignonURLStruct * url; si_SignonUserStruct * user; @@ -1256,7 +1256,7 @@ PRIVATE void si_RemoveAllSignonData() { if (si_PartiallyLoaded) { /* repeatedly remove first user node of first URL node */ - while (si_RemoveUser(NULL, nsAutoString(""), PR_FALSE)) { + while (si_RemoveUser(NULL, nsAutoString(""), PR_FALSE, PR_TRUE)) { } } si_PartiallyLoaded = PR_FALSE; @@ -2750,7 +2750,7 @@ SINGSIGN_SignonViewerReturn (nsAutoString results) { /* get to first data item -- that's the user name */ data = (si_SignonDataStruct *) (user->signonData_list->ElementAt(0)); /* do the deletion */ - si_RemoveUser(url->URLName, data->value, PR_TRUE); + si_RemoveUser(url->URLName, data->value, PR_TRUE, PR_TRUE); si_signon_list_changed = PR_TRUE; } } diff --git a/mozilla/extensions/wallet/src/singsign.h b/mozilla/extensions/wallet/src/singsign.h index adb9f91be66..982997b1f26 100644 --- a/mozilla/extensions/wallet/src/singsign.h +++ b/mozilla/extensions/wallet/src/singsign.h @@ -49,21 +49,21 @@ SINGSIGN_RestoreSignonData(char* URLName, PRUnichar* name, PRUnichar** value, PR extern nsresult SINGSIGN_PromptUsernameAndPassword (const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, - const char *urlname,nsIPrompt* dialog, PRBool *returnValue, PRBool strip = PR_TRUE); + const char *urlname,nsIPrompt* dialog, PRBool *returnValue, PRBool strip); extern nsresult SINGSIGN_PromptPassword (const PRUnichar *text, PRUnichar **pwd, const char *urlname, - nsIPrompt* dialog, PRBool *returnValue, PRBool strip = PR_TRUE); + nsIPrompt* dialog, PRBool *returnValue, PRBool strip); extern nsresult SINGSIGN_Prompt (const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **resultText, - const char *urlname,nsIPrompt* dialog, PRBool *returnValue, PRBool strip = PR_TRUE); + const char *urlname,nsIPrompt* dialog, PRBool *returnValue, PRBool strip); extern PRBool SINGSIGN_RemoveUser - (const char *URLName, const PRUnichar *userName, PRBool strip = PR_TRUE); + (const char *URLName, const PRUnichar *userName, PRBool strip); XP_END_PROTOS diff --git a/mozilla/mailnews/base/public/nsIMsgIncomingServer.idl b/mozilla/mailnews/base/public/nsIMsgIncomingServer.idl index de269c3a141..c4b43960400 100644 --- a/mozilla/mailnews/base/public/nsIMsgIncomingServer.idl +++ b/mozilla/mailnews/base/public/nsIMsgIncomingServer.idl @@ -82,6 +82,9 @@ interface nsIMsgIncomingServer : nsISupports { /* prompt the user for a password */ string getPasswordWithUI(in wstring aPromptString, in wstring aPromptTitle, in nsIMsgWindow aMsgWindow); + /* forget the password in memory and in single signon database */ + void forgetPassword(); + /* should we download whole messages when biff goes off? */ /* in 4.x, this was "mail.pop3_gets_new_mail" for pop */ /* "mail.imap.new_mail_get_headers" for imap, and it was global. in 5.x, it is per server */ diff --git a/mozilla/mailnews/base/util/nsMsgIncomingServer.cpp b/mozilla/mailnews/base/util/nsMsgIncomingServer.cpp index 9f1297f4d0f..81d76950995 100644 --- a/mozilla/mailnews/base/util/nsMsgIncomingServer.cpp +++ b/mozilla/mailnews/base/util/nsMsgIncomingServer.cpp @@ -37,6 +37,7 @@ #include "nsIWebShell.h" #include "nsIWebShellWindow.h" #include "nsINetPrompt.h" +#include "nsIWalletService.h" #include "nsXPIDLString.h" #include "nsIRDFService.h" #include "nsIMsgProtocolInfo.h" @@ -44,6 +45,7 @@ static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID); static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID); +static NS_DEFINE_CID(kWalletServiceCID, NS_WALLETSERVICE_CID); MOZ_DECL_CTOR_COUNTER(nsMsgIncomingServer); @@ -575,8 +577,8 @@ nsMsgIncomingServer::GetPasswordWithUI(const PRUnichar * aPromptMessage, const nsXPIDLCString serverUri; rv = GetServerURI(getter_Copies(serverUri)); if (NS_FAILED(rv)) return rv; - rv = dialog->PromptPassword(serverUri, aPromptTitle, aPromptMessage, getter_Copies(uniPassword), &okayValue); - if (NS_FAILED(rv)) return rv; + rv = dialog->PromptPassword(serverUri, PR_TRUE, aPromptTitle, aPromptMessage, getter_Copies(uniPassword), &okayValue); + if (NS_FAILED(rv)) return rv; if (!okayValue) // if the user pressed cancel, just return NULL; { @@ -596,6 +598,26 @@ nsMsgIncomingServer::GetPasswordWithUI(const PRUnichar * aPromptMessage, const return rv; } +NS_IMETHODIMP +nsMsgIncomingServer::ForgetPassword() +{ + nsresult rv; + NS_WITH_SERVICE(nsIWalletService, walletservice, kWalletServiceCID, &rv); + if (NS_FAILED(rv)) return rv; + + + nsXPIDLCString serverUri; + rv = GetServerURI(getter_Copies(serverUri)); + if (NS_FAILED(rv)) return rv; + + rv = SetPassword(""); + if (NS_FAILED(rv)) return rv; + + + rv = walletservice->SI_RemoveUser((const char *)serverUri, PR_TRUE, nsnull); + return rv; +} + NS_IMETHODIMP nsMsgIncomingServer::SetDefaultLocalPath(nsIFileSpec *aDefaultLocalPath) { diff --git a/mozilla/mailnews/imap/src/nsImapProtocol.cpp b/mozilla/mailnews/imap/src/nsImapProtocol.cpp index fd93b52a572..91546addda5 100644 --- a/mozilla/mailnews/imap/src/nsImapProtocol.cpp +++ b/mozilla/mailnews/imap/src/nsImapProtocol.cpp @@ -50,7 +50,6 @@ #include "nsIMsgFolder.h" #include "nsImapStringBundle.h" #include "nsICopyMsgStreamListener.h" -#include "nsIWalletService.h" // for the memory cache... #include "nsINetDataCacheManager.h" @@ -81,7 +80,6 @@ static NS_DEFINE_CID(kCImapService, NS_IMAPSERVICE_CID); static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID); static NS_DEFINE_CID(kPrefCID, NS_PREF_CID); static NS_DEFINE_IID(kProxyObjectManagerCID, NS_PROXYEVENT_MANAGER_CID); -static NS_DEFINE_IID(kWalletServiceCID, NS_WALLETSERVICE_CID); #define OUTPUT_BUFFER_SIZE (4096*2) // mscott - i should be able to remove this if I can use nsMsgLineBuffer??? @@ -6215,14 +6213,11 @@ PRBool nsImapProtocol::TryToLogon() { // login failed! // if we failed because of an interrupt, then do not bother the user - NS_WITH_SERVICE(nsIWalletService, walletservice, kWalletServiceCID, &rv); - if (NS_FAILED(rv)) return rv; - nsAutoString user(userName); - rv = walletservice->SI_RemoveUser(GetImapHostName(), (PRUnichar *)user.GetUnicode()); + rv = m_server->ForgetPassword(); + if (!DeathSignalReceived()) { AlertUserEventUsingId(IMAP_LOGIN_FAILED); - m_server->SetPassword(""); // clear out the password m_hostSessionList->SetPasswordForHost(GetImapServerKey(), nsnull); PR_FREEIF(password); m_currentBiffState = nsMsgBiffState_Unknown; diff --git a/mozilla/mailnews/local/src/nsPop3Protocol.cpp b/mozilla/mailnews/local/src/nsPop3Protocol.cpp index 6524706ffba..c7ea4eb1503 100644 --- a/mozilla/mailnews/local/src/nsPop3Protocol.cpp +++ b/mozilla/mailnews/local/src/nsPop3Protocol.cpp @@ -41,11 +41,8 @@ #include "nsTextFormatter.h" #include "nsCOMPtr.h" #include "nsIPref.h" -#include "nsIWalletService.h" #include "nsIMsgWindow.h" -static NS_DEFINE_IID(kWalletServiceCID, NS_WALLETSERVICE_CID); - #define PREF_MAIL_ALLOW_AT_SIGN_IN_USER_NAME "mail.allow_at_sign_in_user_name" static PRLogModuleInfo *POP3LOGMODULE = nsnull; @@ -538,10 +535,9 @@ nsresult nsPop3Protocol::GetPassword(char ** aPassword) // if the last prompt got us a bad password then show a special dialog if (TestFlag(POP3_PASSWORD_FAILED)) { - NS_WITH_SERVICE(nsIWalletService, walletservice, kWalletServiceCID, &rv); + rv = server->ForgetPassword(); if (NS_FAILED(rv)) return rv; - nsAutoString user(userName); - rv = walletservice->SI_RemoveUser(hostName, (PRUnichar *)user.GetUnicode()); + PRUnichar *passwordTemplate = nsnull; mStringService->GetStringByID(POP3_PREVIOUSLY_ENTERED_PASSWORD_IS_INVALID_ETC, &passwordTemplate); diff --git a/mozilla/mailnews/news/public/nsIMsgNewsFolder.idl b/mozilla/mailnews/news/public/nsIMsgNewsFolder.idl index 79a7ccc7b11..877358e02bd 100644 --- a/mozilla/mailnews/news/public/nsIMsgNewsFolder.idl +++ b/mozilla/mailnews/news/public/nsIMsgNewsFolder.idl @@ -34,5 +34,8 @@ interface nsIMsgNewsFolder : nsISupports { string getGroupPasswordWithUI(in wstring aPromptString, in wstring aPromptTitle, in nsIMsgWindow aMsgWindow); string getGroupUsernameWithUI(in wstring aPromptString, in wstring aPromptTitle, in nsIMsgWindow aMsgWindow); + void forgetGroupUsername(); + void forgetGroupPassword(); + nsIMsgFolder addNewsgroup(in string newsgroupName, in string setStr); }; diff --git a/mozilla/mailnews/news/src/nsNewsFolder.cpp b/mozilla/mailnews/news/src/nsNewsFolder.cpp index 102973ca122..0a2755c1abd 100644 --- a/mozilla/mailnews/news/src/nsNewsFolder.cpp +++ b/mozilla/mailnews/news/src/nsNewsFolder.cpp @@ -61,6 +61,8 @@ #include "nsXPIDLString.h" +#include "nsIWalletService.h" + // we need this because of an egcs 1.0 (and possibly gcc) compiler bug // that doesn't allow you to call ::nsISupports::GetIID() inside of a class // that multiply inherits from nsISupports @@ -70,6 +72,7 @@ static NS_DEFINE_CID(kNntpServiceCID, NS_NNTPSERVICE_CID); static NS_DEFINE_CID(kCNewsDB, NS_NEWSDB_CID); static NS_DEFINE_CID(kMsgMailSessionCID, NS_MSGMAILSESSION_CID); static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID); +static NS_DEFINE_CID(kWalletServiceCID, NS_WALLETSERVICE_CID); #define PREF_NEWS_MAX_HEADERS_TO_SHOW "news.max_headers_to_show" #define PREF_NEWS_ABBREVIATE_PRETTY_NAMES "news.abbreviate_pretty_name" @@ -1206,6 +1209,38 @@ NS_IMETHODIMP nsMsgNewsFolder::SetGroupPassword(const char *aGroupPassword) return NS_OK; } +NS_IMETHODIMP nsMsgNewsFolder::ForgetGroupUsername() +{ + nsresult rv; + NS_WITH_SERVICE(nsIWalletService, walletservice, kWalletServiceCID, &rv); + if (NS_FAILED(rv)) return rv; + + rv = SetGroupUsername(""); + if (NS_FAILED(rv)) return rv; + + nsCAutoString signonURI(mURI); + signonURI += "#username"; + + rv = walletservice->SI_RemoveUser((const char *)signonURI, PR_TRUE, nsnull); + return rv; +} + +NS_IMETHODIMP nsMsgNewsFolder::ForgetGroupPassword() +{ + nsresult rv; + NS_WITH_SERVICE(nsIWalletService, walletservice, kWalletServiceCID, &rv); + if (NS_FAILED(rv)) return rv; + + rv = SetGroupPassword(""); + if (NS_FAILED(rv)) return rv; + + nsCAutoString signonURI(mURI); + signonURI += "#password"; + + rv = walletservice->SI_RemoveUser((const char *)signonURI, PR_TRUE, nsnull); + return rv; +} + NS_IMETHODIMP nsMsgNewsFolder::GetGroupPasswordWithUI(const PRUnichar * aPromptMessage, const PRUnichar *aPromptTitle, @@ -1238,29 +1273,9 @@ nsMsgNewsFolder::GetGroupPasswordWithUI(const PRUnichar * aPromptMessage, const PRBool okayValue = PR_TRUE; nsCAutoString signonURI(mURI); -#if SINGLE_SIGNON_USING_FULL_URLS signonURI += "#password"; -#else - signonURI = NEWS_SCHEME; - signonURI += "//"; - nsXPIDLCString hostname; - rv = GetHostname(getter_Copies(hostname)); - if (NS_FAILED(rv)) return rv; - signonURI += (const char *)hostname; - signonURI += "-"; - - nsXPIDLString newsgroupname; - rv = GetName(getter_Copies(newsgroupname)); - if (NS_FAILED(rv)) return rv; - - nsCAutoString asciiName(newsgroupname); - - signonURI += (const char *)asciiName; - signonURI += "-password"; -#endif - - rv = dialog->PromptPassword((const char *)signonURI, aPromptTitle, aPromptMessage, getter_Copies(uniGroupPassword), &okayValue); + rv = dialog->PromptPassword((const char *)signonURI, PR_TRUE, aPromptTitle, aPromptMessage, getter_Copies(uniGroupPassword), &okayValue); if (NS_FAILED(rv)) return rv; if (!okayValue) // if the user pressed cancel, just return NULL; @@ -1309,28 +1324,9 @@ nsMsgNewsFolder::GetGroupUsernameWithUI(const PRUnichar * aPromptMessage, const PRBool okayValue = PR_TRUE; nsCAutoString signonURI(mURI); -#if SINGLE_SIGNON_USING_FULL_URLS signonURI += "#username"; -#else - signonURI = NEWS_SCHEME; - signonURI += "//"; - nsXPIDLCString hostname; - rv = GetHostname(getter_Copies(hostname)); - if (NS_FAILED(rv)) return rv; - signonURI += (const char *)hostname; - signonURI += "-"; - - nsXPIDLString newsgroupname; - rv = GetName(getter_Copies(newsgroupname)); - if (NS_FAILED(rv)) return rv; - - nsCAutoString asciiName(newsgroupname); - - signonURI += (const char *)asciiName; - signonURI += "-username"; -#endif - rv = dialog->Prompt((const char *)signonURI, aPromptTitle, aPromptMessage, getter_Copies(uniGroupUsername), &okayValue); + rv = dialog->Prompt((const char *)signonURI, PR_TRUE, aPromptTitle, aPromptMessage, getter_Copies(uniGroupUsername), &okayValue); if (NS_FAILED(rv)) return rv; if (!okayValue) // if the user pressed cancel, just return NULL; diff --git a/mozilla/netwerk/base/public/nsINetPrompt.idl b/mozilla/netwerk/base/public/nsINetPrompt.idl index 6f60f707a5e..ce0f18a9b0c 100644 --- a/mozilla/netwerk/base/public/nsINetPrompt.idl +++ b/mozilla/netwerk/base/public/nsINetPrompt.idl @@ -30,13 +30,13 @@ interface nsINetPrompt : nsISupports /** * Puts up an alert dialog with an OK button. */ - void alert( in string url, in wstring title, in wstring text); + void alert( in string url, in boolean stripurl, in wstring title, in wstring text); /** * Puts up a dialog with OK and Cancel buttons. * @return true for OK, false for Cancel */ - boolean confirm( in string url, in wstring title, in wstring text); + boolean confirm( in string url, in boolean stripurl, in wstring title, in wstring text); /** * Puts up a username/password dialog with OK and Cancel buttons. @@ -44,6 +44,7 @@ interface nsINetPrompt : nsISupports */ boolean promptUsernameAndPassword( in string url, + in boolean stripurl, in wstring title, in wstring text, out wstring user, @@ -55,6 +56,7 @@ interface nsINetPrompt : nsISupports */ boolean promptPassword( in string url, + in boolean stripurl, in wstring title, in wstring text, out wstring pwd); @@ -65,6 +67,7 @@ interface nsINetPrompt : nsISupports */ boolean prompt( in string url, + in boolean stripurl, in wstring title, in wstring text, out wstring pwd); diff --git a/mozilla/netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp b/mozilla/netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp index d642626fd41..e750850fce3 100644 --- a/mozilla/netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp +++ b/mozilla/netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp @@ -828,7 +828,7 @@ nsFtpConnectionThread::S_user() { message += host; } - rv = proxyprompter->PromptUsernameAndPassword(host, NULL, message.GetUnicode(), &user, &passwd, &retval); + rv = proxyprompter->PromptUsernameAndPassword(host, PR_TRUE, NULL, message.GetUnicode(), &user, &passwd, &retval); // if the user canceled or didn't supply a username we want to fail if (!retval || (user && !*user) ) return NS_ERROR_FAILURE; @@ -918,7 +918,7 @@ nsFtpConnectionThread::S_pass() { message += " on "; message += host; } - rv = proxyprompter->PromptPassword(userAtHostC, NULL, message.GetUnicode(), &passwd, &retval); + rv = proxyprompter->PromptPassword(userAtHostC, PR_TRUE, NULL, message.GetUnicode(), &passwd, &retval); nsCRT::free(userAtHostC); // we want to fail if the user canceled or didn't enter a password. diff --git a/mozilla/netwerk/protocol/http/src/nsHTTPChannel.cpp b/mozilla/netwerk/protocol/http/src/nsHTTPChannel.cpp index 4b118e2fa0f..8618cf6e215 100644 --- a/mozilla/netwerk/protocol/http/src/nsHTTPChannel.cpp +++ b/mozilla/netwerk/protocol/http/src/nsHTTPChannel.cpp @@ -1506,6 +1506,7 @@ nsHTTPChannel::Authenticate(const char *iChallenge, mURI->GetHost(getter_Copies(urlCString)); rv = proxyprompter->PromptUsernameAndPassword(urlCString, + PR_TRUE, NULL, message.GetUnicode(), &user, diff --git a/mozilla/xpfe/appshell/src/nsCommonDialogs.cpp b/mozilla/xpfe/appshell/src/nsCommonDialogs.cpp index 448dc59eb8f..9c967362793 100644 --- a/mozilla/xpfe/appshell/src/nsCommonDialogs.cpp +++ b/mozilla/xpfe/appshell/src/nsCommonDialogs.cpp @@ -232,7 +232,7 @@ NS_IMETHODIMP nsCommonDialogs::UniversalDialog /* perform the dialog */ - rv = DoDialog(inParent, block, kPromptURL); + rv = DoDialog( inParent, block, kPromptURL); /* get back output parameters */ diff --git a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp index bb3a370ab4e..c19758767d7 100644 --- a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp +++ b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp @@ -2805,18 +2805,18 @@ NS_IMETHODIMP nsWebShellWindow::Select( const PRUnichar *inDialogTitle, const PR return rv; } -NS_IMETHODIMP nsWebShellWindow::Alert(const char *url, const PRUnichar *title, const PRUnichar *text) +NS_IMETHODIMP nsWebShellWindow::Alert(const char *url, PRBool stripUrl, const PRUnichar *title, const PRUnichar *text) { return Alert( text ); } -NS_IMETHODIMP nsWebShellWindow::Confirm(const char *url, const PRUnichar *title, const PRUnichar *text, PRBool *_retval) +NS_IMETHODIMP nsWebShellWindow::Confirm(const char *url, PRBool stripUrl, const PRUnichar *title, const PRUnichar *text, PRBool *_retval) { return Confirm( text, _retval ); } -NS_IMETHODIMP nsWebShellWindow::PromptUsernameAndPassword(const char *url, const PRUnichar *title, const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, PRBool *_retval) +NS_IMETHODIMP nsWebShellWindow::PromptUsernameAndPassword(const char *url, PRBool stripUrl, const PRUnichar *title, const PRUnichar *text, PRUnichar **user, PRUnichar **pwd, PRBool *_retval) { nsresult res; NS_WITH_SERVICE(nsIWalletService, wallet, kWalletServiceCID, &res); @@ -2824,11 +2824,11 @@ NS_IMETHODIMP nsWebShellWindow::PromptUsernameAndPassword(const char *url, const return PromptUsernameAndPassword(text,user, pwd, _retval); } nsCOMPtr prompter = this; - return wallet->PromptUsernameAndPasswordURL(text,user, pwd, url, prompter, _retval); + return wallet->PromptUsernameAndPasswordURL(text,user, pwd, url, stripUrl, prompter, _retval); } -NS_IMETHODIMP nsWebShellWindow::PromptPassword(const char *url, const PRUnichar *title, const PRUnichar *text, PRUnichar **pwd, PRBool *_retval) +NS_IMETHODIMP nsWebShellWindow::PromptPassword(const char *url, PRBool stripUrl, const PRUnichar *title, const PRUnichar *text, PRUnichar **pwd, PRBool *_retval) { nsresult res; NS_WITH_SERVICE(nsIWalletService, wallet, kWalletServiceCID, &res); @@ -2836,10 +2836,10 @@ NS_IMETHODIMP nsWebShellWindow::PromptPassword(const char *url, const PRUnichar return PromptPassword(text, title, pwd, _retval); } nsCOMPtr prompter = this; - return wallet->PromptPasswordURL(text, pwd, url, prompter, _retval); + return wallet->PromptPasswordURL(text, pwd, url, stripUrl, prompter, _retval); } -NS_IMETHODIMP nsWebShellWindow::Prompt(const char *url, const PRUnichar *title, const PRUnichar *text, PRUnichar **value, PRBool *_retval) +NS_IMETHODIMP nsWebShellWindow::Prompt(const char *url, PRBool stripUrl, const PRUnichar *title, const PRUnichar *text, PRUnichar **value, PRBool *_retval) { nsresult res; NS_WITH_SERVICE(nsIWalletService, wallet, kWalletServiceCID, &res); @@ -2847,5 +2847,5 @@ NS_IMETHODIMP nsWebShellWindow::Prompt(const char *url, const PRUnichar *title, return Prompt(text, title, value, _retval); } nsCOMPtr prompter = this; - return wallet->PromptURL(text, nsnull, value, url, prompter, _retval); + return wallet->PromptURL(text, nsnull, value, url, stripUrl, prompter, _retval); }