PRBool nsXPInstallManager::ConfirmChromeInstall(nsIDOMWindowInternal* aParentWindow, const PRUnichar **aPackage) { // get the dialog strings nsXPIDLString applyNowText; nsXPIDLString confirmText; nsCOMPtr<nsIStringBundleService> bundleSvc = do_GetService(NS_STRINGBUNDLE_CONTRACTID); if (!bundleSvc) return PR_FALSE; nsCOMPtr<nsIStringBundle> xpiBundle; bundleSvc->CreateBundle( XPINSTALL_BUNDLE_URL, getter_AddRefs(xpiBundle) ); if (!xpiBundle) return PR_FALSE; const PRUnichar *formatStrings[2] = { aPackage[0], aPackage[1] }; if ( mChromeType == CHROME_LOCALE ) { xpiBundle->GetStringFromName( NS_LITERAL_STRING("ApplyNowLocale").get(), getter_Copies(applyNowText)); xpiBundle->FormatStringFromName( NS_LITERAL_STRING("ConfirmLocale").get(), formatStrings, 2, getter_Copies(confirmText)); } else { xpiBundle->GetStringFromName( NS_LITERAL_STRING("ApplyNowSkin").get(), getter_Copies(applyNowText)); xpiBundle->FormatStringFromName( NS_LITERAL_STRING("ConfirmSkin").get(), formatStrings, 2, getter_Copies(confirmText)); } if (confirmText.IsEmpty()) return PR_FALSE; // confirmation dialog PRBool bInstall = PR_FALSE; nsCOMPtr<nsIPromptService> dlgService(do_GetService(NS_PROMPTSERVICE_CONTRACTID)); if (dlgService) { dlgService->Confirm( aParentWindow, nsnull, confirmText, &bInstall ); } return bInstall; }
bool nsMapiHook::IsBlindSendAllowed() { bool enabled = false; bool warn = true; nsCOMPtr<nsIPrefBranch> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID); if (prefBranch) { prefBranch->GetBoolPref(PREF_MAPI_WARN_PRIOR_TO_BLIND_SEND, &warn); prefBranch->GetBoolPref(PREF_MAPI_BLIND_SEND_ENABLED, &enabled); } if (!enabled) return false; if (!warn) return true; // Everything is okay. nsresult rv; nsCOMPtr<nsIStringBundleService> bundleService = mozilla::services::GetStringBundleService(); if (!bundleService) return false; nsCOMPtr<nsIStringBundle> bundle; rv = bundleService->CreateBundle(MAPI_PROPERTIES_CHROME, getter_AddRefs(bundle)); if (NS_FAILED(rv) || !bundle) return false; nsString warningMsg; rv = bundle->GetStringFromName(NS_LITERAL_STRING("mapiBlindSendWarning").get(), getter_Copies(warningMsg)); if (NS_FAILED(rv)) return false; nsString dontShowAgainMessage; rv = bundle->GetStringFromName(NS_LITERAL_STRING("mapiBlindSendDontShowAgain").get(), getter_Copies(dontShowAgainMessage)); if (NS_FAILED(rv)) return false; nsCOMPtr<nsIPromptService> dlgService(do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv)); if (NS_FAILED(rv) || !dlgService) return false; bool continueToWarn = true; bool okayToContinue = false; dlgService->ConfirmCheck(nsnull, nsnull, warningMsg.get(), dontShowAgainMessage.get(), &continueToWarn, &okayToContinue); if (!continueToWarn && okayToContinue && prefBranch) prefBranch->SetBoolPref(PREF_MAPI_WARN_PRIOR_TO_BLIND_SEND, false); return okayToContinue; }
PRBool nsMapiHook::DisplayLoginDialog(PRBool aLogin, PRUnichar **aUsername, PRUnichar **aPassword) { nsresult rv; PRBool btnResult = PR_FALSE; nsCOMPtr<nsIPromptService> dlgService(do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv)); if (NS_SUCCEEDED(rv) && dlgService) { nsCOMPtr<nsIStringBundleService> bundleService(do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv)); if (NS_FAILED(rv) || !bundleService) return PR_FALSE; nsCOMPtr<nsIStringBundle> bundle; rv = bundleService->CreateBundle(MAPI_PROPERTIES_CHROME, getter_AddRefs(bundle)); if (NS_FAILED(rv) || !bundle) return PR_FALSE; nsCOMPtr<nsIStringBundle> brandBundle; rv = bundleService->CreateBundle( "chrome://branding/locale/brand.properties", getter_AddRefs(brandBundle)); if (NS_FAILED(rv)) return PR_FALSE; nsString brandName; rv = brandBundle->GetStringFromName( NS_LITERAL_STRING("brandFullName").get(), getter_Copies(brandName)); if (NS_FAILED(rv)) return PR_FALSE; nsString loginTitle; const PRUnichar *brandStrings[] = { brandName.get() }; NS_NAMED_LITERAL_STRING(loginTitlePropertyTag, "loginTitle"); const PRUnichar *dTitlePropertyTag = loginTitlePropertyTag.get(); rv = bundle->FormatStringFromName(dTitlePropertyTag, brandStrings, 1, getter_Copies(loginTitle)); if (NS_FAILED(rv)) return PR_FALSE; if (aLogin) { nsString loginText; rv = bundle->GetStringFromName(NS_LITERAL_STRING("loginTextwithName").get(), getter_Copies(loginText)); if (NS_FAILED(rv) || loginText.IsEmpty()) return PR_FALSE; rv = dlgService->PromptUsernameAndPassword(nsnull, loginTitle.get(), loginText.get(), aUsername, aPassword, nsnull, PR_FALSE, &btnResult); } else { //nsString loginString; nsString loginText; const PRUnichar *userNameStrings[] = { *aUsername }; NS_NAMED_LITERAL_STRING(loginTextPropertyTag, "loginText"); const PRUnichar *dpropertyTag = loginTextPropertyTag.get(); rv = bundle->FormatStringFromName(dpropertyTag, userNameStrings, 1, getter_Copies(loginText)); if (NS_FAILED(rv)) return PR_FALSE; rv = dlgService->PromptPassword(nsnull, loginTitle.get(), loginText.get(), aPassword, nsnull, PR_FALSE, &btnResult); } } return btnResult; }
bool nsMapiHook::DisplayLoginDialog(bool aLogin, char16_t **aUsername, char16_t **aPassword) { nsresult rv; bool btnResult = false; nsCOMPtr<nsIPromptService> dlgService(do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv)); if (NS_SUCCEEDED(rv) && dlgService) { nsCOMPtr<nsIStringBundleService> bundleService = mozilla::services::GetStringBundleService(); if (!bundleService) return false; nsCOMPtr<nsIStringBundle> bundle; rv = bundleService->CreateBundle(MAPI_PROPERTIES_CHROME, getter_AddRefs(bundle)); if (NS_FAILED(rv) || !bundle) return false; nsCOMPtr<nsIStringBundle> brandBundle; rv = bundleService->CreateBundle( "chrome://branding/locale/brand.properties", getter_AddRefs(brandBundle)); if (NS_FAILED(rv)) return false; nsString brandName; rv = brandBundle->GetStringFromName( MOZ_UTF16("brandFullName"), getter_Copies(brandName)); if (NS_FAILED(rv)) return false; nsString loginTitle; const char16_t *brandStrings[] = { brandName.get() }; NS_NAMED_LITERAL_STRING(loginTitlePropertyTag, "loginTitle"); const char16_t *dTitlePropertyTag = loginTitlePropertyTag.get(); rv = bundle->FormatStringFromName(dTitlePropertyTag, brandStrings, 1, getter_Copies(loginTitle)); if (NS_FAILED(rv)) return false; if (aLogin) { nsString loginText; rv = bundle->GetStringFromName(MOZ_UTF16("loginTextwithName"), getter_Copies(loginText)); if (NS_FAILED(rv) || loginText.IsEmpty()) return false; bool dummyValue = false; rv = dlgService->PromptUsernameAndPassword(nullptr, loginTitle.get(), loginText.get(), aUsername, aPassword, nullptr, &dummyValue, &btnResult); } else { //nsString loginString; nsString loginText; const char16_t *userNameStrings[] = { *aUsername }; NS_NAMED_LITERAL_STRING(loginTextPropertyTag, "loginText"); const char16_t *dpropertyTag = loginTextPropertyTag.get(); rv = bundle->FormatStringFromName(dpropertyTag, userNameStrings, 1, getter_Copies(loginText)); if (NS_FAILED(rv)) return false; bool dummyValue = false; rv = dlgService->PromptPassword(nullptr, loginTitle.get(), loginText.get(), aPassword, nullptr, &dummyValue, &btnResult); } } return btnResult; }