зеркало из https://github.com/mozilla/gecko-dev.git
added modal dialogs for wallet
This commit is contained in:
Родитель
cc65e5cf25
Коммит
e1d55c857a
|
@ -498,64 +498,6 @@ nsFormFrame::OnSubmit(nsIPresContext* aPresContext, nsIFrame* aFrame)
|
||||||
NS_MakeAbsoluteURL(docURL, base, href, absURLSpec);
|
NS_MakeAbsoluteURL(docURL, base, href, absURLSpec);
|
||||||
NS_IF_RELEASE(docURL);
|
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
|
// Now pass on absolute url to the click handler
|
||||||
nsIPostData* postData = nsnull;
|
nsIPostData* postData = nsnull;
|
||||||
if (isPost) {
|
if (isPost) {
|
||||||
|
|
|
@ -65,13 +65,11 @@
|
||||||
#include "nsIPresShell.h"
|
#include "nsIPresShell.h"
|
||||||
#include "nsFileSpec.h" // needed for nsAutoCString
|
#include "nsFileSpec.h" // needed for nsAutoCString
|
||||||
|
|
||||||
#if defined(ClientWallet) || defined(SingleSignon)
|
|
||||||
#ifdef ClientWallet
|
#ifdef ClientWallet
|
||||||
#include "nsIFileLocator.h"
|
#include "nsIFileLocator.h"
|
||||||
#include "nsFileLocations.h"
|
#include "nsFileLocations.h"
|
||||||
static NS_DEFINE_IID(kIFileLocatorIID, NS_IFILELOCATOR_IID);
|
static NS_DEFINE_IID(kIFileLocatorIID, NS_IFILELOCATOR_IID);
|
||||||
static NS_DEFINE_CID(kFileLocatorCID, NS_FILELOCATOR_CID);
|
static NS_DEFINE_CID(kFileLocatorCID, NS_FILELOCATOR_CID);
|
||||||
#endif
|
|
||||||
#include "nsIWalletService.h"
|
#include "nsIWalletService.h"
|
||||||
static NS_DEFINE_IID(kIWalletServiceIID, NS_IWALLETSERVICE_IID);
|
static NS_DEFINE_IID(kIWalletServiceIID, NS_IWALLETSERVICE_IID);
|
||||||
static NS_DEFINE_IID(kWalletServiceCID, NS_WALLETSERVICE_CID);
|
static NS_DEFINE_IID(kWalletServiceCID, NS_WALLETSERVICE_CID);
|
||||||
|
@ -150,7 +148,6 @@ nsBrowserAppCore::nsBrowserAppCore()
|
||||||
mContentAreaWebShell = nsnull;
|
mContentAreaWebShell = nsnull;
|
||||||
mGHistory = nsnull;
|
mGHistory = nsnull;
|
||||||
mSearchContext = nsnull;
|
mSearchContext = nsnull;
|
||||||
|
|
||||||
IncInstanceCount();
|
IncInstanceCount();
|
||||||
NS_INIT_REFCNT();
|
NS_INIT_REFCNT();
|
||||||
|
|
||||||
|
@ -439,54 +436,6 @@ nsBrowserAppCore::WalletChangePassword()
|
||||||
return NS_OK;
|
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<nsIWebShell> webcontent;
|
|
||||||
|
|
||||||
nsCOMPtr<nsIScriptGlobalObject> 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"
|
#include "nsIDOMHTMLDocument.h"
|
||||||
static NS_DEFINE_IID(kIDOMHTMLDocumentIID, NS_IDOMHTMLDOCUMENT_IID);
|
static NS_DEFINE_IID(kIDOMHTMLDocumentIID, NS_IDOMHTMLDOCUMENT_IID);
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
|
@ -514,10 +463,96 @@ nsBrowserAppCore::WalletQuickFillin(nsIDOMWindow* aWin)
|
||||||
nsString urlString = nsString("");
|
nsString urlString = nsString("");
|
||||||
res = walletservice->WALLET_Prefill(shell, urlString, PR_TRUE);
|
res = walletservice->WALLET_Prefill(shell, urlString, PR_TRUE);
|
||||||
nsServiceManager::ReleaseService(kWalletServiceCID, walletservice);
|
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<nsIWebShell> webcontent;
|
||||||
|
|
||||||
|
nsCOMPtr<nsIScriptGlobalObject> 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<nsIURL> 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<nsIWebShellWindow> parent;
|
||||||
|
DOMWindowToWebShellWindow(aCurrentFrontWin, &parent);
|
||||||
|
appShell->CreateDialogWindow(parent, urlObj, PR_TRUE, window,
|
||||||
|
nsnull, cb, 504, 436);
|
||||||
|
nsServiceManager::ReleaseService(kAppShellServiceCID, appShell);
|
||||||
|
|
||||||
|
if (window != nsnull) {
|
||||||
|
nsCOMPtr<nsIWidget> 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
|
NS_IMETHODIMP
|
||||||
nsBrowserAppCore::WalletSamples()
|
nsBrowserAppCore::WalletSamples()
|
||||||
|
@ -545,37 +580,11 @@ nsBrowserAppCore::WalletQuickFillin(nsIDOMWindow*) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow*) {
|
nsBrowserAppCore::WalletSafeFillin(nsIDOMWindow*, nsIDOMWindow*) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
#ifdef CookieManagement
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsBrowserAppCore::CookieViewer()
|
nsBrowserAppCore::CookieViewer()
|
||||||
|
|
Загрузка…
Ссылка в новой задаче