From e1d55c857adc382821ae45b16ccb95c605984c42 Mon Sep 17 00:00:00 2001 From: "morse%netscape.com" Date: Wed, 26 May 1999 22:50:49 +0000 Subject: [PATCH] added modal dialogs for wallet --- layout/html/forms/src/nsFormFrame.cpp | 58 --------- xpfe/AppCores/src/nsBrowserAppCore.cpp | 167 +++++++++++++------------ 2 files changed, 88 insertions(+), 137 deletions(-) diff --git a/layout/html/forms/src/nsFormFrame.cpp b/layout/html/forms/src/nsFormFrame.cpp index 6dc0b4b687c7..5c6eaf6deb26 100644 --- a/layout/html/forms/src/nsFormFrame.cpp +++ b/layout/html/forms/src/nsFormFrame.cpp @@ -498,64 +498,6 @@ nsFormFrame::OnSubmit(nsIPresContext* aPresContext, nsIFrame* aFrame) NS_MakeAbsoluteURL(docURL, base, href, absURLSpec); NS_IF_RELEASE(docURL); -#ifndef HTMLDialogs -#ifdef ClientWallet - if (href == "internal-walletPrefill-handler") { - nsresult res; - nsIWalletService *walletservice; - res = nsServiceManager::GetService(kWalletServiceCID, - kIWalletServiceIID, - (nsISupports **)&walletservice); - if ((NS_OK == res) && (nsnull != walletservice)) { - nsString urlString = nsString(""); - res = walletservice->WALLET_Prefill(nsnull, urlString, PR_FALSE); - NS_RELEASE(walletservice); - return NS_OK; - } - } - if (href == "internal-walletEditor-handler") { - nsresult res; - nsIWalletService *walletservice; - res = nsServiceManager::GetService(kWalletServiceCID, - kIWalletServiceIID, - (nsISupports **)&walletservice); - if ((NS_OK == res) && (nsnull != walletservice)) { - res = walletservice->WALLET_PreEdit(nsnull); - NS_RELEASE(walletservice); - return NS_OK; - } - } -#endif -#ifdef SingleSignon - if (href == "internal-signonViewer-handler") { - nsresult res; - nsIWalletService *walletservice; - res = nsServiceManager::GetService(kWalletServiceCID, - kIWalletServiceIID, - (nsISupports **)&walletservice); - if ((NS_OK == res) && (nsnull != walletservice)) { - res = walletservice->SI_SignonViewerReturn(); - NS_RELEASE(walletservice); - return NS_OK; - } - } -#endif -#ifdef CookieManagement - if (href == "internal-cookieViewer-handler") { - nsresult res; - nsINetService *netservice; - res = nsServiceManager::GetService(kNetServiceCID, - kINetServiceIID, - (nsISupports **)&netservice); - if ((NS_OK == res) && (nsnull != netservice)) { - res = netservice->NET_CookieViewerReturn(); - NS_RELEASE(netservice); - return NS_OK; - } - } -#endif -#endif - // Now pass on absolute url to the click handler nsIPostData* postData = nsnull; if (isPost) { diff --git a/xpfe/AppCores/src/nsBrowserAppCore.cpp b/xpfe/AppCores/src/nsBrowserAppCore.cpp index e97469aa9013..4d30efa4a7dc 100644 --- a/xpfe/AppCores/src/nsBrowserAppCore.cpp +++ b/xpfe/AppCores/src/nsBrowserAppCore.cpp @@ -65,13 +65,11 @@ #include "nsIPresShell.h" #include "nsFileSpec.h" // needed for nsAutoCString -#if defined(ClientWallet) || defined(SingleSignon) #ifdef ClientWallet #include "nsIFileLocator.h" #include "nsFileLocations.h" static NS_DEFINE_IID(kIFileLocatorIID, NS_IFILELOCATOR_IID); static NS_DEFINE_CID(kFileLocatorCID, NS_FILELOCATOR_CID); -#endif #include "nsIWalletService.h" static NS_DEFINE_IID(kIWalletServiceIID, NS_IWALLETSERVICE_IID); static NS_DEFINE_IID(kWalletServiceCID, NS_WALLETSERVICE_CID); @@ -150,7 +148,6 @@ nsBrowserAppCore::nsBrowserAppCore() mContentAreaWebShell = nsnull; mGHistory = nsnull; mSearchContext = nsnull; - IncInstanceCount(); NS_INIT_REFCNT(); @@ -439,54 +436,6 @@ nsBrowserAppCore::WalletChangePassword() return NS_OK; } -NS_IMETHODIMP -nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow* aWin) -{ - NS_PRECONDITION(aWin != nsnull, "null ptr"); - if (! aWin) - return NS_ERROR_NULL_POINTER; - - nsIPresShell* shell; - shell = nsnull; - nsCOMPtr webcontent; - - nsCOMPtr scriptGlobalObject; - scriptGlobalObject = do_QueryInterface(aWin); - scriptGlobalObject->GetWebShell(getter_AddRefs(webcontent)); - - nsresult res; - nsString urlString = nsString(""); - if ( mContentAreaWebShell ) { - const PRUnichar *url = 0; - PRInt32 history; - res = mContentAreaWebShell->GetHistoryIndex(history); - if (NS_SUCCEEDED(res)) { - res = mContentAreaWebShell->GetURL( history, &url ); - if (NS_SUCCEEDED(res)) { - urlString = nsString(url); - } - } - } - - shell = GetPresShellFor(webcontent); - nsIWalletService *walletservice; - res = nsServiceManager::GetService(kWalletServiceCID, - kIWalletServiceIID, - (nsISupports **)&walletservice); - if (NS_SUCCEEDED(res) && (nsnull != walletservice)) { - res = walletservice->WALLET_Prefill(shell, urlString, PR_FALSE); - nsServiceManager::ReleaseService(kWalletServiceCID, walletservice); - } - -#ifndef HTMLDialogs - if (NS_SUCCEEDED(res)) { - return newWind("file:///htmldlgs.htm"); - } -#endif - - return NS_OK; -} - #include "nsIDOMHTMLDocument.h" static NS_DEFINE_IID(kIDOMHTMLDocumentIID, NS_IDOMHTMLDOCUMENT_IID); NS_IMETHODIMP @@ -514,10 +463,96 @@ nsBrowserAppCore::WalletQuickFillin(nsIDOMWindow* aWin) nsString urlString = nsString(""); res = walletservice->WALLET_Prefill(shell, urlString, PR_TRUE); nsServiceManager::ReleaseService(kWalletServiceCID, walletservice); + return NS_OK; + } else { + return res; + } +} + +#ifdef xxx +NS_IMETHODIMP +nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow* aWin, nsIDOMWindow* aForm) +{ + NS_PRECONDITION(aForm != nsnull, "null ptr"); + if (! aForm) + return NS_ERROR_NULL_POINTER; + + nsIPresShell* shell; + shell = nsnull; + nsCOMPtr webcontent; + + nsCOMPtr scriptGlobalObject; + scriptGlobalObject = do_QueryInterface(aForm); + scriptGlobalObject->GetWebShell(getter_AddRefs(webcontent)); + + nsresult res; + nsString urlString = nsString(""); + if ( mContentAreaWebShell ) { + const PRUnichar *url = 0; + PRInt32 history; + res = mContentAreaWebShell->GetHistoryIndex(history); + if (NS_SUCCEEDED(res)) { + res = mContentAreaWebShell->GetURL( history, &url ); + if (NS_SUCCEEDED(res)) { + urlString = nsString(url); + } + } } - return NS_OK; + shell = GetPresShellFor(webcontent); + nsIWalletService *walletservice; + res = nsServiceManager::GetService(kWalletServiceCID, + kIWalletServiceIID, + (nsISupports **)&walletservice); + if (NS_SUCCEEDED(res) && (nsnull != walletservice)) { + res = walletservice->WALLET_Prefill(shell, urlString, PR_TRUE); + nsServiceManager::ReleaseService(kWalletServiceCID, walletservice); + } + + // (code adapted from nsToolkitCore::ShowModal. yeesh.) + nsresult rv; + nsIAppShellService *appShell; + nsIWebShellWindow *window; + + window = nsnull; + + nsCOMPtr urlObj; + rv = NS_NewURL(getter_AddRefs(urlObj), "resource://res/samples/htmldlgs.htm"); + if (NS_FAILED(rv)) + return rv; + + rv = nsServiceManager::GetService(kAppShellServiceCID, kIAppShellServiceIID, + (nsISupports**) &appShell); + if (NS_FAILED(rv)) + return rv; + + // Create "save to disk" nsIXULCallbacks... + //nsIXULWindowCallbacks *cb = new nsFindDialogCallbacks( aURL, aContentType ); + nsIXULWindowCallbacks *cb = nsnull; + + nsCOMPtr parent; + DOMWindowToWebShellWindow(aCurrentFrontWin, &parent); + appShell->CreateDialogWindow(parent, urlObj, PR_TRUE, window, + nsnull, cb, 504, 436); + nsServiceManager::ReleaseService(kAppShellServiceCID, appShell); + + if (window != nsnull) { + nsCOMPtr parentWindowWidgetThing; + nsresult gotParent; + gotParent = parent ? parent->GetWidget(*getter_AddRefs(parentWindowWidgetThing)) : + NS_ERROR_FAILURE; + // Windows OS is the only one that needs the parent disabled, or cares + // arguably this should be done by the new window, within ShowModal... + if (NS_SUCCEEDED(gotParent)) + parentWindowWidgetThing->Enable(PR_FALSE); + window->ShowModal(); + if (NS_SUCCEEDED(gotParent)) + parentWindowWidgetThing->Enable(PR_TRUE); + } + + return rv; } +#endif NS_IMETHODIMP nsBrowserAppCore::WalletSamples() @@ -545,37 +580,11 @@ nsBrowserAppCore::WalletQuickFillin(nsIDOMWindow*) { return NS_OK; } NS_IMETHODIMP -nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow*) { +nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow*, nsIDOMWindow*) { return NS_OK; } #endif -#ifdef SingleSignon -NS_IMETHODIMP -nsBrowserAppCore::SignonViewer() -{ - nsIWalletService *walletservice; - nsresult res; - res = nsServiceManager::GetService(kWalletServiceCID, - kIWalletServiceIID, - (nsISupports **)&walletservice); - if ((NS_OK == res) && (nsnull != walletservice)) { - res = walletservice->SI_DisplaySignonInfoAsHTML(); - nsServiceManager::ReleaseService(kWalletServiceCID, walletservice); - } -#ifndef HTMLDialogs - return newWind("file:///htmldlgs.htm"); -#endif - return NS_OK; -} -#else -NS_IMETHODIMP -nsBrowserAppCore::SignonViewer() -{ - return NS_ERROR_NOT_IMPLEMENTED; -} -#endif - #ifdef CookieManagement NS_IMETHODIMP nsBrowserAppCore::CookieViewer()