diff --git a/mozilla/extensions/wallet/src/nsWalletService.cpp b/mozilla/extensions/wallet/src/nsWalletService.cpp index 16c30dd795b..31bc627d5c8 100644 --- a/mozilla/extensions/wallet/src/nsWalletService.cpp +++ b/mozilla/extensions/wallet/src/nsWalletService.cpp @@ -165,7 +165,7 @@ NS_IMETHODIMP nsWalletlibService::Notify(nsIContent* formNode, nsIDOMWindow* win if (!formNode) { return NS_ERROR_FAILURE; } - ::WLLT_OnSubmit(formNode); + ::WLLT_OnSubmit(formNode, window); return NS_OK; } diff --git a/mozilla/extensions/wallet/src/singsign.cpp b/mozilla/extensions/wallet/src/singsign.cpp index 0e43481fdff..88c68b642fa 100644 --- a/mozilla/extensions/wallet/src/singsign.cpp +++ b/mozilla/extensions/wallet/src/singsign.cpp @@ -335,13 +335,13 @@ SI_InitSignonFileName() { ***********/ PRIVATE PRBool -si_ConfirmYN(PRUnichar * szMessage) { - return Wallet_ConfirmYN(szMessage); +si_ConfirmYN(PRUnichar * szMessage, nsIDOMWindow* window) { + return Wallet_ConfirmYN(szMessage, window); } PRIVATE PRInt32 -si_3ButtonConfirm(PRUnichar * szMessage) { - return Wallet_3ButtonConfirm(szMessage); +si_3ButtonConfirm(PRUnichar * szMessage, nsIDOMWindow* window) { + return Wallet_3ButtonConfirm(szMessage, window); } // This will go away once select is passed a prompter interface @@ -1824,7 +1824,7 @@ si_SaveSignonDataLocked() { /* Ask user if it is ok to save the signon data */ PRIVATE PRBool -si_OkToSave(const char *passwordRealm, const nsString& userName) { +si_OkToSave(const char *passwordRealm, const nsString& userName, nsIDOMWindow* window) { /* if url/user already exists, then it is safe to save it again */ if (si_CheckForUser(passwordRealm, userName)) { @@ -1835,7 +1835,7 @@ si_OkToSave(const char *passwordRealm, const nsString& userName) { if (!si_RememberSignons && !si_GetNotificationPref()) { PRUnichar * notification = Wallet_Localize("PasswordNotification"); si_SetNotificationPref(PR_TRUE); - if (!si_ConfirmYN(notification)) { + if (!si_ConfirmYN(notification, window)) { Recycle(notification); SI_SetBoolPref(pref_rememberSignons, PR_FALSE); return PR_FALSE; @@ -1856,7 +1856,7 @@ si_OkToSave(const char *passwordRealm, const nsString& userName) { message = Wallet_Localize("WantToSavePasswordObscured?"); } - PRInt32 button = si_3ButtonConfirm(message); + PRInt32 button = si_3ButtonConfirm(message, window); if (button == NEVER_BUTTON) { si_PutReject(passwordRealm, userName, PR_TRUE); } @@ -1868,7 +1868,9 @@ si_OkToSave(const char *passwordRealm, const nsString& userName) { * Check for a signon submission and remember the data if so */ PRIVATE void -si_RememberSignonData (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray * signonData) +si_RememberSignonData + (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray * signonData, + nsIDOMWindow* window) { int passwordCount = 0; int pswd[3]; @@ -1909,7 +1911,7 @@ si_RememberSignonData (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray if (jCount()) { data2 = NS_STATIC_CAST(si_SignonDataStruct*, signonData->ElementAt(j)); - if (si_OkToSave(passwordRealm, data2->value)) { + if (si_OkToSave(passwordRealm, data2->value, window)) { for (j=0; jCount(); j++) { data2 = NS_STATIC_CAST(si_SignonDataStruct*, signonData->ElementAt(j)); nsAutoString value = data2->value; @@ -1979,7 +1981,9 @@ si_RememberSignonData (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray } PUBLIC void -SINGSIGN_RememberSignonData (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray * signonData) +SINGSIGN_RememberSignonData + (nsIPrompt* dialog, const char* passwordRealm, nsVoidArray * signonData, + nsIDOMWindow* window) { nsresult rv; NS_WITH_SERVICE(nsIURL, uri, "component://netscape/network/standard-url", &rv); @@ -1995,7 +1999,7 @@ SINGSIGN_RememberSignonData (nsIPrompt* dialog, const char* passwordRealm, nsVoi if (NS_FAILED(rv)) { return; } - si_RememberSignonData(dialog, strippedRealm, signonData); + si_RememberSignonData(dialog, strippedRealm, signonData, window); PR_Free(strippedRealm); } diff --git a/mozilla/extensions/wallet/src/singsign.h b/mozilla/extensions/wallet/src/singsign.h index 743938c60cd..55d7f5970ad 100644 --- a/mozilla/extensions/wallet/src/singsign.h +++ b/mozilla/extensions/wallet/src/singsign.h @@ -33,6 +33,7 @@ #include "nsString.h" #include "nsVoidArray.h" #include "nsIPref.h" +#include "nsIDOMWindow.h" /* Duplicates defines as in nsIPrompt.idl -- keep in sync! */ #define SINGSIGN_SAVE_PASSWORD_NEVER 0 @@ -116,7 +117,8 @@ extern PRBool SINGSIGN_ReencryptAll(); extern void -SINGSIGN_RememberSignonData(nsIPrompt* dialog, const char* URLName, nsVoidArray * signonData); +SINGSIGN_RememberSignonData + (nsIPrompt* dialog, const char* URLName, nsVoidArray * signonData, nsIDOMWindow* window); XP_END_PROTOS diff --git a/mozilla/extensions/wallet/src/wallet.cpp b/mozilla/extensions/wallet/src/wallet.cpp index fd79315710a..0bca2a16ef2 100644 --- a/mozilla/extensions/wallet/src/wallet.cpp +++ b/mozilla/extensions/wallet/src/wallet.cpp @@ -38,6 +38,7 @@ #include "nsIDOMHTMLInputElement.h" #include "nsIDOMHTMLSelectElement.h" #include "nsIDOMHTMLOptionElement.h" +#include "nsICommonDialogs.h" #include "nsIURL.h" #include "nsFileStream.h" @@ -72,6 +73,7 @@ static NS_DEFINE_IID(kIDOMHTMLOptionElementIID, NS_IDOMHTMLOPTIONELEMENT_IID); static NS_DEFINE_IID(kIIOServiceIID, NS_IIOSERVICE_IID); static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID); +static NS_DEFINE_CID(kCommonDialogsCID, NS_CommonDialog_CID ); static NS_DEFINE_CID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID); static NS_DEFINE_CID(kProfileCID, NS_PROFILE_CID); @@ -737,26 +739,26 @@ Wallet_Localize(char* genericString) { /**********************/ PUBLIC PRBool -Wallet_Confirm(PRUnichar * szMessage) +Wallet_Confirm(PRUnichar * szMessage, nsIDOMWindow* window) { PRBool retval = PR_TRUE; /* default value */ nsresult res; - NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &res); + NS_WITH_SERVICE(nsICommonDialogs, dialog, kCommonDialogsCID, &res); if (NS_FAILED(res)) { return retval; } const nsAutoString message = szMessage; retval = PR_FALSE; /* in case user exits dialog by clicking X */ - res = dialog->Confirm(nsnull, message.GetUnicode(), &retval); + res = dialog->Confirm(window, nsnull, message.GetUnicode(), &retval); return retval; } PUBLIC PRBool -Wallet_ConfirmYN(PRUnichar * szMessage) { +Wallet_ConfirmYN(PRUnichar * szMessage, nsIDOMWindow* window) { nsresult res; - NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &res); + NS_WITH_SERVICE(nsICommonDialogs, dialog, kCommonDialogsCID, &res); if (NS_FAILED(res)) { return PR_FALSE; } @@ -767,6 +769,7 @@ Wallet_ConfirmYN(PRUnichar * szMessage) { PRUnichar * confirm_string = Wallet_Localize("Confirm"); res = dialog->UniversalDialog( + window, /* parent window */ NULL, /* title message */ confirm_string, /* title text in top line of window */ szMessage, /* this is the main message */ @@ -793,10 +796,10 @@ Wallet_ConfirmYN(PRUnichar * szMessage) { } PUBLIC PRInt32 -Wallet_3ButtonConfirm(PRUnichar * szMessage) +Wallet_3ButtonConfirm(PRUnichar * szMessage, nsIDOMWindow* window) { nsresult res; - NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &res); + NS_WITH_SERVICE(nsICommonDialogs, dialog, kCommonDialogsCID, &res); if (NS_FAILED(res)) { return 0; /* default value is NO */ } @@ -808,6 +811,7 @@ Wallet_3ButtonConfirm(PRUnichar * szMessage) PRUnichar * confirm_string = Wallet_Localize("Confirm"); res = dialog->UniversalDialog( + window, /* parent window */ NULL, /* title message */ confirm_string, /* title text in top line of window */ szMessage, /* this is the main message */ @@ -851,9 +855,11 @@ Wallet_Alert(PRUnichar * szMessage) } PUBLIC PRBool -Wallet_CheckConfirmYN(PRUnichar * szMessage, PRUnichar * szCheckMessage, PRBool* checkValue) { +Wallet_CheckConfirmYN + (PRUnichar * szMessage, PRUnichar * szCheckMessage, PRBool* checkValue, + nsIDOMWindow* window) { nsresult res; - NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &res); + NS_WITH_SERVICE(nsICommonDialogs, dialog, kCommonDialogsCID, &res); if (NS_FAILED(res)) { *checkValue = 0; return PR_FALSE; @@ -865,6 +871,7 @@ Wallet_CheckConfirmYN(PRUnichar * szMessage, PRUnichar * szCheckMessage, PRBool* PRUnichar * confirm_string = Wallet_Localize("Confirm"); res = dialog->UniversalDialog( + window, /* parent window */ NULL, /* title message */ confirm_string, /* title text in top line of window */ szMessage, /* this is the main message */ @@ -2583,7 +2590,7 @@ Wallet_SignonViewerReturn(const nsString& results) * see if user wants to capture data on current page */ PRIVATE PRBool -wallet_OKToCapture(char* urlName) { +wallet_OKToCapture(char* urlName, nsIDOMWindow* window) { nsAutoString url; url.AssignWithConversion(urlName); /* exit if pref is not set */ @@ -2604,7 +2611,7 @@ wallet_OKToCapture(char* urlName) { /* ask user if we should capture the values on this form */ PRUnichar * message = Wallet_Localize("WantToCaptureForm?"); - PRInt32 button = Wallet_3ButtonConfirm(message); + PRInt32 button = Wallet_3ButtonConfirm(message, window); if (button == NEVER_BUTTON) { /* add URL to list with NO_CAPTURE indicator set */ value.SetCharAt('y', NO_CAPTURE); @@ -3355,7 +3362,7 @@ public: }; PUBLIC void -WLLT_OnSubmit(nsIContent* currentForm) { +WLLT_OnSubmit(nsIContent* currentForm, nsIDOMWindow* window) { nsCOMPtr currentFormNode(do_QueryInterface(currentForm)); @@ -3503,7 +3510,7 @@ WLLT_OnSubmit(nsIContent* currentForm) { if (currentFormNode == formNode) { NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &rv); if (NS_SUCCEEDED(rv)) { - SINGSIGN_RememberSignonData(dialog, URLName, signonData); + SINGSIGN_RememberSignonData(dialog, URLName, signonData, window); } } PRInt32 count2 = signonData->Count(); @@ -3525,7 +3532,8 @@ WLLT_OnSubmit(nsIContent* currentForm) { } #else /* save form if it meets all necessary conditions */ - if (wallet_GetFormsCapturingPref() && (OKToPrompt) && wallet_OKToCapture(URLName)) { + if (wallet_GetFormsCapturingPref() && + (OKToPrompt) && wallet_OKToCapture(URLName, window)) { /* conditions all met, now save it */ for (PRUint32 elementY = 0; elementY < numElements; elementY++) { diff --git a/mozilla/extensions/wallet/src/wallet.h b/mozilla/extensions/wallet/src/wallet.h index 79360b46d67..9b6583b4bc8 100644 --- a/mozilla/extensions/wallet/src/wallet.h +++ b/mozilla/extensions/wallet/src/wallet.h @@ -75,7 +75,7 @@ extern void WLLT_GetPrefillListForViewer(nsString& aPrefillList); extern void -WLLT_OnSubmit(nsIContent* formNode); +WLLT_OnSubmit(nsIContent* formNode, nsIDOMWindow* window); extern void WLLT_FetchFromNetCenter(); @@ -98,9 +98,9 @@ extern PRUnichar * Wallet_Localize(char * genericString); extern char* Wallet_RandomName(char* suffix); -extern PRBool Wallet_ConfirmYN(PRUnichar * szMessage); +extern PRBool Wallet_ConfirmYN(PRUnichar * szMessage, nsIDOMWindow* window); -extern PRInt32 Wallet_3ButtonConfirm(PRUnichar * szMessage); +extern PRInt32 Wallet_3ButtonConfirm(PRUnichar * szMessage, nsIDOMWindow* window); extern nsresult Wallet_Encrypt2(const nsString& text, nsString& crypt);