NOT PART OF BUILD (Photon port only)
- added new prompt service - new history resource.
This commit is contained in:
Родитель
ccb8817a18
Коммит
afd9368f28
|
@ -33,6 +33,7 @@ CPPSRCS = \
|
|||
PhMozEmbedStream.cpp \
|
||||
PtMozilla.cpp \
|
||||
WebBrowserContainer.cpp \
|
||||
PromptService.cpp \
|
||||
nsUnknownContentTypeHandler.cpp
|
||||
|
||||
SHARED_LIBRARY_LIBS= \
|
||||
|
|
|
@ -0,0 +1,331 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 2001 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
/* PromptService is intended to override the default Mozilla PromptService,
|
||||
giving nsIPrompt implementations of our own design, rather than using
|
||||
Mozilla's. Do this by building this into a component and registering the
|
||||
factory with the same CID/ContractID as Mozilla's (see MfcEmbed.cpp).
|
||||
*/
|
||||
|
||||
#include "PromptService.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsMemory.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIEmbeddingSiteWindow.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsIPromptService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIWebBrowserChrome.h"
|
||||
#include "nsIWindowWatcher.h"
|
||||
#include "PtMozilla.h"
|
||||
|
||||
|
||||
//*****************************************************************************
|
||||
// CPromptService
|
||||
//*****************************************************************************
|
||||
|
||||
class CPromptService: public nsIPromptService {
|
||||
public:
|
||||
CPromptService();
|
||||
virtual ~CPromptService();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIPROMPTSERVICE
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIWindowWatcher> mWWatch;
|
||||
CWebBrowserContainer *GetWebBrowser(nsIDOMWindow *aWindow);
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
|
||||
NS_IMPL_ISUPPORTS1(CPromptService, nsIPromptService)
|
||||
|
||||
CPromptService::CPromptService() :
|
||||
mWWatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1")) {
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
CPromptService::~CPromptService() {
|
||||
}
|
||||
|
||||
CWebBrowserContainer *CPromptService::GetWebBrowser(nsIDOMWindow *aWindow)
|
||||
{
|
||||
nsCOMPtr<nsIWebBrowserChrome> chrome;
|
||||
CWebBrowserContainer *val = 0;
|
||||
|
||||
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
|
||||
if (!wwatch) return nsnull;
|
||||
|
||||
if( wwatch ) {
|
||||
nsCOMPtr<nsIDOMWindow> fosterParent;
|
||||
if (!aWindow) { // it will be a dependent window. try to find a foster parent.
|
||||
wwatch->GetActiveWindow(getter_AddRefs(fosterParent));
|
||||
aWindow = fosterParent;
|
||||
}
|
||||
nsresult rv = wwatch->GetChromeForWindow(aWindow, getter_AddRefs(chrome));
|
||||
}
|
||||
|
||||
if (chrome) {
|
||||
nsCOMPtr<nsIEmbeddingSiteWindow> site(do_QueryInterface(chrome));
|
||||
if (site) {
|
||||
site->GetSiteWindow(reinterpret_cast<void **>(&val));
|
||||
}
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP CPromptService::Alert(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
w->InvokeDialogCallback(Pt_MOZ_DIALOG_ALERT, mTitle.ToNewCString(), mText.ToNewCString(), nsnull, nsnull);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::AlertCheck(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
const PRUnichar *checkboxMsg,
|
||||
PRBool *checkValue)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
nsString mMsg(checkboxMsg);
|
||||
int ret;
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
|
||||
w->InvokeDialogCallback(Pt_MOZ_DIALOG_ALERT, mTitle.ToNewCString(), mText.ToNewCString(), \
|
||||
mMsg.ToNewCString(), &ret);
|
||||
*checkValue = ret;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP CPromptService::Confirm(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRBool *_retval)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
|
||||
if (w->InvokeDialogCallback(Pt_MOZ_DIALOG_CONFIRM, mTitle.ToNewCString(), mText.ToNewCString(), nsnull, nsnull) == Pt_CONTINUE)
|
||||
*_retval = PR_TRUE;
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::ConfirmCheck(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
const PRUnichar *checkboxMsg,
|
||||
PRBool *checkValue,
|
||||
PRBool *_retval)
|
||||
{
|
||||
// TODO implement proper confirmation checkbox dialog
|
||||
return Confirm(parent, dialogTitle, text, _retval);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::Prompt(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRUnichar **value,
|
||||
const PRUnichar *checkboxMsg,
|
||||
PRBool *checkValue,
|
||||
PRBool *_retval)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
nsString mMsg(checkboxMsg);
|
||||
int ret;
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
|
||||
|
||||
if (w->InvokeDialogCallback(Pt_MOZ_DIALOG_CONFIRM, mTitle.ToNewCString(), mText.ToNewCString(), \
|
||||
mMsg.ToNewCString(), &ret) == Pt_CONTINUE)
|
||||
*_retval = PR_TRUE;
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
*checkValue = ret;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::PromptUsernameAndPassword(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRUnichar **username,
|
||||
PRUnichar **password,
|
||||
const PRUnichar *checkboxMsg,
|
||||
PRBool *checkValue,
|
||||
PRBool *_retval)
|
||||
{
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
PtMozillaWidget_t *moz = (PtMozillaWidget_t *) w->m_pOwner;
|
||||
PtCallbackList_t *cb;
|
||||
PtCallbackInfo_t cbinfo;
|
||||
PtMozillaAuthenticateCb_t auth;
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mRealm(checkboxMsg);
|
||||
|
||||
/* ATENTIE */ printf( "CWebBrowserContainer::PromptUsernameAndPassword\n" );
|
||||
|
||||
if (!moz->auth_cb)
|
||||
return NS_OK;
|
||||
|
||||
cb = moz->auth_cb;
|
||||
memset(&cbinfo, 0, sizeof(cbinfo));
|
||||
cbinfo.reason = Pt_CB_MOZ_AUTHENTICATE;
|
||||
cbinfo.cbdata = &auth;
|
||||
|
||||
memset(&auth, 0, sizeof(PtMozillaAuthenticateCb_t));
|
||||
auth.title = mTitle.ToNewCString();
|
||||
auth.realm = mRealm.ToNewCString();
|
||||
|
||||
if (PtInvokeCallbackList(cb, (PtWidget_t *)moz, &cbinfo) == Pt_CONTINUE)
|
||||
{
|
||||
nsCString mUser(auth.user);
|
||||
nsCString mPass(auth.pass);
|
||||
*username = mUser.ToNewUnicode();
|
||||
*password = mPass.ToNewUnicode();
|
||||
*_retval = PR_TRUE;
|
||||
}
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::PromptPassword(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRUnichar **password,
|
||||
const PRUnichar *checkboxMsg,
|
||||
PRBool *checkValue,
|
||||
PRBool *_retval)
|
||||
{
|
||||
/* ATENTIE */ printf( "CWebBrowserContainer::PromptPassword\n" );
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::Select(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text, PRUint32 count,
|
||||
const PRUnichar **selectList,
|
||||
PRInt32 *outSelection,
|
||||
PRBool *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptService::ConfirmEx(nsIDOMWindow *parent,
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRUint32 buttonFlags,
|
||||
const PRUnichar *button0Title,
|
||||
const PRUnichar *button1Title,
|
||||
const PRUnichar *button2Title,
|
||||
const PRUnichar *checkMsg,
|
||||
PRBool *checkValue,
|
||||
PRInt32 *buttonPressed)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// CPromptServiceFactory
|
||||
//*****************************************************************************
|
||||
|
||||
class CPromptServiceFactory : public nsIFactory {
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIFACTORY
|
||||
|
||||
CPromptServiceFactory();
|
||||
virtual ~CPromptServiceFactory();
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
|
||||
NS_IMPL_ISUPPORTS1(CPromptServiceFactory, nsIFactory)
|
||||
|
||||
CPromptServiceFactory::CPromptServiceFactory() {
|
||||
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
CPromptServiceFactory::~CPromptServiceFactory() {
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptServiceFactory::CreateInstance(nsISupports *aOuter, const nsIID & aIID, void **aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
|
||||
*aResult = NULL;
|
||||
CPromptService *inst = new CPromptService;
|
||||
if (!inst)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult rv = inst->QueryInterface(aIID, aResult);
|
||||
if (rv != NS_OK) {
|
||||
// We didn't get the right interface, so clean up
|
||||
delete inst;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CPromptServiceFactory::LockFactory(PRBool lock)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
|
||||
void InitPromptService( ) {
|
||||
}
|
||||
|
||||
nsresult NS_NewPromptServiceFactory(nsIFactory** aFactory)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aFactory);
|
||||
*aFactory = nsnull;
|
||||
|
||||
CPromptServiceFactory *result = new CPromptServiceFactory;
|
||||
if (!result)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
NS_ADDREF(result);
|
||||
*aFactory = result;
|
||||
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 2001 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef __PromptService_h
|
||||
#define __PromptService_h
|
||||
|
||||
#include "nsError.h"
|
||||
|
||||
class nsIFactory;
|
||||
|
||||
extern "C" NS_EXPORT nsresult NS_NewPromptServiceFactory(nsIFactory** aFactory);
|
||||
#define kPromptServiceFactoryFuncName "NS_NewPromptServiceFactory"
|
||||
|
||||
extern "C" NS_EXPORT void InitPromptService( );
|
||||
#define kPromptServiceInitFuncName "InitPromptService"
|
||||
|
||||
#endif
|
|
@ -55,6 +55,7 @@
|
|||
#include "nsNetUtil.h"
|
||||
#include "nsMPFileLocProvider.h"
|
||||
#include "nsIFocusController.h"
|
||||
#include "PromptService.h"
|
||||
|
||||
|
||||
#include "nsIViewManager.h"
|
||||
|
@ -76,7 +77,6 @@
|
|||
#define NS_TO_PH_RGB(ns) (ns & 0xff) << 16 | (ns & 0xff00) | ((ns >> 16) & 0xff)
|
||||
#define PH_TO_NS_RGB(ns) (ns & 0xff) << 16 | (ns & 0xff00) | ((ns >> 16) & 0xff)
|
||||
|
||||
|
||||
#define NS_EXTERN_IID(_name) \
|
||||
extern const nsIID _name;
|
||||
|
||||
|
@ -84,7 +84,6 @@
|
|||
NS_EXTERN_IID(kHTMLEditorCID);
|
||||
NS_EXTERN_IID(kCookieServiceCID);
|
||||
NS_EXTERN_IID(kWindowCID);
|
||||
|
||||
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
|
||||
static NS_DEFINE_CID(kAppShellServiceCID, NS_APPSHELL_SERVICE_CID);
|
||||
|
@ -92,6 +91,10 @@ static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
|||
static NS_DEFINE_CID(kSimpleURICID, NS_SIMPLEURI_CID);
|
||||
static NS_DEFINE_CID(kPrintOptionsCID, NS_PRINTOPTIONS_CID);
|
||||
|
||||
#define NS_PROMPTSERVICE_CID \
|
||||
{0xa2112d6a, 0x0e28, 0x421f, {0xb4, 0x6a, 0x25, 0xc0, 0xb3, 0x8, 0xcb, 0xd0}}
|
||||
static NS_DEFINE_CID(kPromptServiceCID, NS_PROMPTSERVICE_CID);
|
||||
|
||||
static void mozilla_set_pref( PtWidget_t *widget, char *option, char *value );
|
||||
static void mozilla_get_pref( PtWidget_t *widget, char *option, char *value );
|
||||
|
||||
|
@ -114,9 +117,19 @@ static void MozCreateWindow(PtMozillaWidget_t *moz)
|
|||
exit(-1);
|
||||
}
|
||||
|
||||
//moz->MyBrowser->WebBrowser->SetContainerWindow(NS_STATIC_CAST(nsIWebBrowserChrome*, this));
|
||||
//nsCOMPtr<nsIDocShellTreeItem> dsti = do_QueryInterface(moz->MyBrowser->WebBrowser);
|
||||
//dsti->SetItemType(nsIDocShellTreeItem::typeContentWrapper);
|
||||
|
||||
// Create the container object
|
||||
moz->MyBrowser->WebBrowserContainer = new CWebBrowserContainer((PtWidget_t *)moz);
|
||||
if (moz->MyBrowser->WebBrowserContainer == NULL) {
|
||||
printf("Could not create webbrowsercontainer\n");
|
||||
exit(-1);
|
||||
}
|
||||
moz->MyBrowser->WebBrowserContainer->AddRef();
|
||||
|
||||
|
||||
moz->MyBrowser->WebBrowser->SetContainerWindow( NS_STATIC_CAST( nsIWebBrowserChrome*, moz->MyBrowser->WebBrowserContainer ) );
|
||||
//nsCOMPtr<nsIDocShellTreeItem> dsti = do_QueryInterface(moz->MyBrowser->WebBrowser);
|
||||
//dsti->SetItemType(nsIDocShellTreeItem::typeContentWrapper);
|
||||
|
||||
// Create the webbrowser window
|
||||
moz->MyBrowser->WebBrowserAsWin = do_QueryInterface(moz->MyBrowser->WebBrowser);
|
||||
|
@ -128,17 +141,10 @@ static void MozCreateWindow(PtMozillaWidget_t *moz)
|
|||
// webBrowserAsSetup->SetProperty(nsIWebBrowserSetup::SETUP_ALLOW_PLUGINS, aAllowPlugins);
|
||||
// webBrowserAsSetup->SetProperty(nsIWebBrowserSetup::SETUP_CONTAINS_CHROME, PR_TRUE);
|
||||
|
||||
// Create the container object
|
||||
moz->MyBrowser->WebBrowserContainer = new CWebBrowserContainer((PtWidget_t *)moz);
|
||||
if (moz->MyBrowser->WebBrowserContainer == NULL)
|
||||
{
|
||||
printf("Could not create webbrowsercontainer\n");
|
||||
exit(-1);
|
||||
}
|
||||
moz->MyBrowser->WebBrowserContainer->AddRef();
|
||||
|
||||
|
||||
// Set up the web shell
|
||||
moz->MyBrowser->WebBrowser->SetParentURIContentListener(moz->MyBrowser->WebBrowserContainer);
|
||||
// ATENTIE moz->MyBrowser->WebBrowser->SetParentURIContentListener( (nsIURIContentListener*) moz );
|
||||
|
||||
// XXX delete when tree owner is not necessary (to receive context menu events)
|
||||
nsCOMPtr<nsIDocShellTreeItem> browserAsItem = do_QueryInterface(moz->MyBrowser->WebBrowser);
|
||||
|
@ -146,8 +152,7 @@ static void MozCreateWindow(PtMozillaWidget_t *moz)
|
|||
|
||||
// XXX delete when docshell becomes inaccessible
|
||||
moz->MyBrowser->rootDocShell = do_GetInterface(moz->MyBrowser->WebBrowser);
|
||||
if (moz->MyBrowser->rootDocShell == nsnull)
|
||||
{
|
||||
if (moz->MyBrowser->rootDocShell == nsnull) {
|
||||
printf("Could not get root docshell object\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
@ -741,6 +746,34 @@ static int mozilla_get_info(PtWidget_t *widget, PtArg_t *argt)
|
|||
strcpy( (char*)argt->value, s );
|
||||
}
|
||||
break;
|
||||
|
||||
case Pt_ARG_MOZ_GET_HISTORY: {
|
||||
WWWRequest *req = ( WWWRequest * ) argt->len;
|
||||
PtWebClientHistoryData_t *HistoryReplyBuf = (PtWebClientHistoryData_t *) argt->value;
|
||||
int i, j;
|
||||
PRInt32 total;
|
||||
moz->MyBrowser->mSessionHistory->GetCount( &total );
|
||||
|
||||
for( i=total-2, j=0; i>=0 && j<req->History.num; i--, j++) {
|
||||
nsIHistoryEntry *entry;
|
||||
moz->MyBrowser->mSessionHistory->GetEntryAtIndex( i, PR_FALSE, &entry );
|
||||
|
||||
PRUnichar *title;
|
||||
nsIURI *url;
|
||||
entry->GetTitle( &title );
|
||||
entry->GetURI( &url );
|
||||
|
||||
nsString stitle( title );
|
||||
strncpy( HistoryReplyBuf[j].title, stitle.ToNewCString(), 127 );
|
||||
HistoryReplyBuf[j].title[127] = '\0';
|
||||
|
||||
char *urlspec;
|
||||
url->GetSpec( &urlspec );
|
||||
strcpy( HistoryReplyBuf[j].url, urlspec );
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return (Pt_CONTINUE);
|
||||
|
@ -1180,6 +1213,7 @@ PtWidgetClass_t *PtCreateMozillaClass( void )
|
|||
{ Pt_ARG_MOZ_COMMAND, mozilla_modify, Pt_QUERY_PREVENT },
|
||||
{ Pt_ARG_MOZ_OPTION, mozilla_modify, mozilla_get_info },
|
||||
{ Pt_ARG_MOZ_GET_CONTEXT, NULL, mozilla_get_info },
|
||||
{ Pt_ARG_MOZ_GET_HISTORY, NULL, mozilla_get_info },
|
||||
{ Pt_ARG_MOZ_ENCODING, mozilla_modify, mozilla_get_info },
|
||||
{ Pt_ARG_MOZ_WEB_DATA_URL, mozilla_modify, Pt_QUERY_PREVENT },
|
||||
{ Pt_ARG_MOZ_WEB_DATA, mozilla_modify, Pt_QUERY_PREVENT },
|
||||
|
@ -1256,5 +1290,15 @@ PtWidgetClass_t *PtCreateMozillaClass( void )
|
|||
InitProfiles( getenv( "HOME" ), ".mozilla" );
|
||||
Init_nsUnknownContentTypeHandler_Factory( );
|
||||
|
||||
nsCOMPtr<nsIFactory> promptFactory;
|
||||
NS_NewPromptServiceFactory(getter_AddRefs(promptFactory));
|
||||
nsComponentManager::RegisterFactory(kPromptServiceCID,
|
||||
"Prompt Service",
|
||||
"@mozilla.org/embedcomp/prompt-service;1",
|
||||
promptFactory,
|
||||
PR_TRUE); // replace existing
|
||||
|
||||
InitializeWindowCreator( );
|
||||
|
||||
return (PtMozilla->wclass);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "nsIStreamListener.h"
|
||||
#include "nsIExternalHelperAppService.h"
|
||||
#include "nsISHistory.h"
|
||||
#include "nsIHistoryEntry.h"
|
||||
|
||||
/*
|
||||
* PtMozilla public
|
||||
|
@ -57,6 +58,7 @@ extern PtWidgetClassRef_t *PtMozilla;
|
|||
#define Pt_ARG_MOZ_GET_CONTEXT Pt_RESOURCE( 104, 10 )
|
||||
#define Pt_ARG_MOZ_UNKNOWN_RESP Pt_RESOURCE( 104, 11 )
|
||||
#define Pt_ARG_MOZ_DOWNLOAD Pt_RESOURCE( 104, 12 )
|
||||
#define Pt_ARG_MOZ_GET_HISTORY Pt_RESOURCE( 104, 13 )
|
||||
|
||||
#define Pt_CB_MOZ_PROGRESS Pt_RESOURCE( 104, 20 )
|
||||
#define Pt_CB_MOZ_START Pt_RESOURCE( 104, 21 )
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
#include "nsIDOMHTMLHtmlElement.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMNamedNodeMap.h"
|
||||
#include "nsIWindowCreator.h"
|
||||
#include "nsIWindowWatcher.h"
|
||||
|
||||
CWebBrowserContainer::CWebBrowserContainer(PtWidget_t *pOwner)
|
||||
{
|
||||
|
@ -114,7 +116,6 @@ NS_INTERFACE_MAP_BEGIN(CWebBrowserContainer)
|
|||
NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeOwner)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIPrompt)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIContextMenuListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsICommandHandler)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
|
||||
|
@ -126,13 +127,6 @@ NS_INTERFACE_MAP_END
|
|||
|
||||
NS_IMETHODIMP CWebBrowserContainer::GetInterface(const nsIID & uuid, void * *result)
|
||||
{
|
||||
const nsIID &iid = NS_GET_IID(nsIPrompt);
|
||||
if (memcmp(&uuid, &iid, sizeof(nsIID)) == 0)
|
||||
{
|
||||
*result = (nsIPrompt *) this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
return QueryInterface(uuid, result);
|
||||
}
|
||||
|
||||
|
@ -199,165 +193,6 @@ NS_IMETHODIMP CWebBrowserContainer::OnShowContextMenu(PRUint32 aContextFlags, ns
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// nsIPrompt
|
||||
|
||||
/* void alert (in wstring text); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::Alert(const PRUnichar* dialogTitle, const PRUnichar *text)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
|
||||
InvokeDialogCallback(Pt_MOZ_DIALOG_ALERT, mTitle.ToNewCString(), mText.ToNewCString(), nsnull, nsnull);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean confirmCheck (in wstring text, in wstring checkMsg, out boolean checkValue); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::AlertCheck(const PRUnichar* dialogTitle, const PRUnichar *text, const PRUnichar *checkMsg, PRBool *checkValue)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
nsString mMsg(checkMsg);
|
||||
int ret;
|
||||
|
||||
InvokeDialogCallback(Pt_MOZ_DIALOG_ALERT, mTitle.ToNewCString(), mText.ToNewCString(), \
|
||||
mMsg.ToNewCString(), &ret);
|
||||
*checkValue = ret;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* boolean confirm (in wstring text); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::Confirm(const PRUnichar* dialogTitle, const PRUnichar *text, PRBool *_retval)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
|
||||
if (InvokeDialogCallback(Pt_MOZ_DIALOG_CONFIRM, mTitle.ToNewCString(), mText.ToNewCString(), nsnull, nsnull) == Pt_CONTINUE)
|
||||
*_retval = PR_TRUE;
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean confirmCheck (in wstring text, in wstring checkMsg, out boolean checkValue); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::ConfirmCheck(const PRUnichar* dialogTitle, const PRUnichar *text, const PRUnichar *checkMsg, PRBool *checkValue, PRBool *_retval)
|
||||
{
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
nsString mMsg(checkMsg);
|
||||
int ret;
|
||||
|
||||
|
||||
if (InvokeDialogCallback(Pt_MOZ_DIALOG_CONFIRM, mTitle.ToNewCString(), mText.ToNewCString(), \
|
||||
mMsg.ToNewCString(), &ret) == Pt_CONTINUE)
|
||||
*_retval = PR_TRUE;
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
*checkValue = ret;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CWebBrowserContainer::ConfirmEx(const PRUnichar *dialogTitle, const PRUnichar *text, PRUint32 buttonFlags, const PRUnichar *button0Title, const PRUnichar *button1Title,
|
||||
const PRUnichar *button2Title, const PRUnichar *checkMsg, PRBool *checkValue, PRInt32 *buttonPressed) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CWebBrowserContainer::Prompt(const PRUnichar *dialogTitle, const PRUnichar *text, PRUnichar **value, const PRUnichar *checkMsg,
|
||||
PRBool *checkValue, PRBool *_retval )
|
||||
{
|
||||
PtMozillaWidget_t *moz = (PtMozillaWidget_t *) m_pOwner;
|
||||
PtCallbackList_t *cb;
|
||||
PtCallbackInfo_t cbinfo;
|
||||
PtMozillaPromptCb_t pr;
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mText(text);
|
||||
nsString mDflt(checkMsg);
|
||||
|
||||
if (!moz->prompt_cb)
|
||||
return NS_OK;
|
||||
|
||||
cb = moz->prompt_cb;
|
||||
memset(&cbinfo, 0, sizeof(cbinfo));
|
||||
cbinfo.reason = Pt_CB_MOZ_PROMPT;
|
||||
cbinfo.cbdata = ≺
|
||||
|
||||
memset(&pr, 0, sizeof(PtMozillaPromptCb_t));
|
||||
pr.title = mTitle.ToNewCString();
|
||||
pr.text = mText.ToNewCString();
|
||||
pr.dflt_resp = mDflt.ToNewCString();
|
||||
|
||||
if (PtInvokeCallbackList(cb, (PtWidget_t *)moz, &cbinfo) == Pt_END)
|
||||
*_retval = PR_FALSE;
|
||||
else
|
||||
{
|
||||
nsCString mResp(pr.response);
|
||||
*value = mResp.ToNewUnicode();
|
||||
*_retval = PR_TRUE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean promptUsernameAndPassword (in wstring text, out wstring user, out wstring pwd); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::PromptUsernameAndPassword(
|
||||
const PRUnichar *dialogTitle,
|
||||
const PRUnichar *text,
|
||||
PRUnichar **username,
|
||||
PRUnichar **password, const PRUnichar *checkMsg, PRBool *checkValue, PRBool *_retval)
|
||||
{
|
||||
PtMozillaWidget_t *moz = (PtMozillaWidget_t *) m_pOwner;
|
||||
PtCallbackList_t *cb;
|
||||
PtCallbackInfo_t cbinfo;
|
||||
PtMozillaAuthenticateCb_t auth;
|
||||
nsString mTitle(dialogTitle);
|
||||
nsString mRealm(checkMsg);
|
||||
|
||||
if (!moz->auth_cb)
|
||||
return NS_OK;
|
||||
|
||||
cb = moz->auth_cb;
|
||||
memset(&cbinfo, 0, sizeof(cbinfo));
|
||||
cbinfo.reason = Pt_CB_MOZ_AUTHENTICATE;
|
||||
cbinfo.cbdata = &auth;
|
||||
|
||||
memset(&auth, 0, sizeof(PtMozillaAuthenticateCb_t));
|
||||
auth.title = mTitle.ToNewCString();
|
||||
auth.realm = mRealm.ToNewCString();
|
||||
|
||||
if (PtInvokeCallbackList(cb, (PtWidget_t *)moz, &cbinfo) == Pt_CONTINUE)
|
||||
{
|
||||
nsCString mUser(auth.user);
|
||||
nsCString mPass(auth.pass);
|
||||
*username = mUser.ToNewUnicode();
|
||||
*password = mPass.ToNewUnicode();
|
||||
*_retval = PR_TRUE;
|
||||
}
|
||||
else
|
||||
*_retval = PR_FALSE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean promptPassword (in wstring text, in wstring title, out wstring pwd); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::PromptPassword(
|
||||
const PRUnichar *dialogTitle, const PRUnichar *text,
|
||||
PRUnichar **password, const PRUnichar *checkMsg,
|
||||
PRBool *checkValue, PRBool *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* boolean select (in wstring inDialogTitle, in wstring inMsg, in PRUint32 inCount, [array, size_is (inCount)] in wstring inList, out long outSelection); */
|
||||
NS_IMETHODIMP CWebBrowserContainer::Select(const PRUnichar *inDialogTitle, const PRUnichar *inMsg, PRUint32 inCount, const PRUnichar **inList, PRInt32 *outSelection, PRBool *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// nsIWebProgressListener
|
||||
|
||||
|
@ -1018,7 +853,9 @@ NS_IMETHODIMP CWebBrowserContainer::SetTitle(const PRUnichar * aTitle) {
|
|||
/* [noscript] readonly attribute voidPtr siteWindow; */
|
||||
NS_IMETHODIMP CWebBrowserContainer::GetSiteWindow(void * *aSiteWindow)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
|
||||
*aSiteWindow = this;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -1266,3 +1103,59 @@ NS_IMETHODIMP CWebBrowserContainer::FocusNextElement() {
|
|||
NS_IMETHODIMP CWebBrowserContainer::FocusPrevElement() {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Window Creator
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
class CWindowCreator : public nsIWindowCreator
|
||||
{
|
||||
public:
|
||||
CWindowCreator();
|
||||
virtual ~CWindowCreator();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIWINDOWCREATOR
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS1(CWindowCreator, nsIWindowCreator);
|
||||
|
||||
CWindowCreator::CWindowCreator()
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
CWindowCreator::~CWindowCreator()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP CWindowCreator::CreateChromeWindow(nsIWebBrowserChrome *aParent,
|
||||
PRUint32 aChromeFlags,
|
||||
nsIWebBrowserChrome **_retval)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
InitializeWindowCreator creates and hands off an object with a callback
|
||||
to a window creation function. This will be used by Gecko C++ code
|
||||
(never JS) to create new windows when no previous window is handy
|
||||
to begin with. This is done in a few exceptional cases, like PSM code.
|
||||
Failure to set this callback will only disable the ability to create
|
||||
new windows under these circumstances.
|
||||
*/
|
||||
|
||||
nsresult InitializeWindowCreator()
|
||||
{
|
||||
// Create a CWindowCreator and give it to the WindowWatcher service
|
||||
// The WindowWatcher service will own it so we don't keep a ref.
|
||||
CWindowCreator *windowCreator = new CWindowCreator;
|
||||
if (!windowCreator) return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
|
||||
if (!wwatch) return NS_ERROR_FAILURE;
|
||||
return wwatch->SetWindowCreator(windowCreator);
|
||||
}
|
||||
|
|
|
@ -59,7 +59,6 @@ class CWebBrowserContainer :
|
|||
public nsIURIContentListener,
|
||||
public nsIDocShellTreeOwner,
|
||||
public nsIInterfaceRequestor,
|
||||
public nsIPrompt,
|
||||
public nsIContextMenuListener,
|
||||
public nsICommandHandler,
|
||||
public nsIPrintListener,
|
||||
|
@ -104,9 +103,6 @@ public:
|
|||
NS_DECL_NSICOMMANDHANDLER
|
||||
NS_DECL_NSIPRINTLISTENER
|
||||
|
||||
// "Services" accessed through nsIInterfaceRequestor
|
||||
NS_DECL_NSIPROMPT
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIInputStream> mStream;
|
||||
nsCOMPtr<nsIStreamListener> mStreamListener;
|
||||
|
@ -115,4 +111,6 @@ private:
|
|||
PRBool mDoingStream;
|
||||
};
|
||||
|
||||
nsresult InitializeWindowCreator();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -45,7 +45,7 @@ nsUnknownContentTypeHandler::~nsUnknownContentTypeHandler( ) { }
|
|||
NS_IMETHODIMP nsUnknownContentTypeHandler::ShowProgressDialog(nsIHelperAppLauncher *aLauncher, nsISupports *aContext ) {
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
printf("ShowProgressDialog!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
/* ATENTIE */ printf("ShowProgressDialog!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
|
||||
/* we need a dummy listener because the nsExternalAppHandler class verifies that a progress window has been displayed */
|
||||
nsCOMPtr<nsIWebProgressListener> dummy = new nsWebProgressListener;
|
||||
|
@ -56,20 +56,16 @@ NS_IMETHODIMP nsUnknownContentTypeHandler::ShowProgressDialog(nsIHelperAppLaunch
|
|||
|
||||
NS_IMETHODIMP nsUnknownContentTypeHandler::Show( nsIHelperAppLauncher *aLauncher, nsISupports *aContext ) {
|
||||
nsresult rv = NS_OK;
|
||||
printf("Show!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
/* ATENTIE */ printf("Show!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
|
||||
/* try to get the PtMozillawidget_t* pointer form the aContext - use the fact the the WebBrowserContainer is
|
||||
registering itself as nsIDocumentLoaderObserver ( SetDocLoaderObserver ) */
|
||||
|
||||
/* aContext is a nsDocShell* */
|
||||
nsCOMPtr<nsIDocShell> docShell( do_GetInterface( aContext ) );
|
||||
nsIURIContentListener *dl;
|
||||
rv = docShell->GetParentURIContentListener( &dl );
|
||||
|
||||
CWebBrowserContainer *webc = NS_STATIC_CAST( CWebBrowserContainer*, dl );
|
||||
printf("webc=%p\n", webc );
|
||||
PtMozillaWidget_t *moz = ( PtMozillaWidget_t * ) webc->m_pOwner;
|
||||
|
||||
nsCOMPtr<nsIDOMWindow> domw( do_GetInterface( aContext ) );
|
||||
nsIDOMWindow *parent;
|
||||
domw->GetParent( &parent );
|
||||
CWebBrowserContainer *w = GetWebBrowser( parent );
|
||||
PtMozillaWidget_t *moz = ( PtMozillaWidget_t * ) w->m_pOwner;
|
||||
|
||||
/* go ahead and start the downloading process */
|
||||
nsCOMPtr<nsIWebProgressListener> listener = NS_STATIC_CAST(nsIWebProgressListener*, moz->MyBrowser->WebBrowserContainer );
|
||||
|
@ -110,16 +106,43 @@ printf("webc=%p\n", webc );
|
|||
|
||||
/* only Show() method is used - remove this code */
|
||||
NS_IMETHODIMP nsUnknownContentTypeHandler::PromptForSaveToFile( nsISupports * aWindowContext, const PRUnichar * aDefaultFile, const PRUnichar * aSuggestedFileExtension, nsILocalFile ** aNewFile ) {
|
||||
printf("PromptForSaveToFile!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
/* ATENTIE */ printf("PromptForSaveToFile!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
CWebBrowserContainer *nsUnknownContentTypeHandler::GetWebBrowser(nsIDOMWindow *aWindow)
|
||||
{
|
||||
nsCOMPtr<nsIWebBrowserChrome> chrome;
|
||||
CWebBrowserContainer *val = 0;
|
||||
|
||||
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
|
||||
if (!wwatch) return nsnull;
|
||||
|
||||
if( wwatch ) {
|
||||
nsCOMPtr<nsIDOMWindow> fosterParent;
|
||||
if (!aWindow) { // it will be a dependent window. try to find a foster parent.
|
||||
wwatch->GetActiveWindow(getter_AddRefs(fosterParent));
|
||||
aWindow = fosterParent;
|
||||
}
|
||||
wwatch->GetChromeForWindow(aWindow, getter_AddRefs(chrome));
|
||||
}
|
||||
|
||||
if (chrome) {
|
||||
nsCOMPtr<nsIEmbeddingSiteWindow> site(do_QueryInterface(chrome));
|
||||
if (site) {
|
||||
site->GetSiteWindow(reinterpret_cast<void **>(&val));
|
||||
}
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
//###########################################################################
|
||||
NS_IMPL_ISUPPORTS2(nsWebProgressListener, nsIWebProgressListener, nsISupportsWeakReference);
|
||||
|
||||
nsWebProgressListener::nsWebProgressListener() {
|
||||
printf("11111111111111\n");
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
|
@ -130,25 +153,21 @@ nsWebProgressListener::~nsWebProgressListener() { }
|
|||
/* void onProgressChange (in nsIWebProgress aProgress, in nsIRequest aRequest, in long curSelfProgress, in long maxSelfProgress, in long curTotalProgress, in long maxTotalProgress); */
|
||||
NS_IMETHODIMP nsWebProgressListener::OnProgressChange(nsIWebProgress *aProgress, nsIRequest *aRequest, PRInt32 curSelfProgress, PRInt32 maxSelfProgress, PRInt32 curTotalProgress, PRInt32 maxTotalProgress) {
|
||||
|
||||
printf("OnProgressChange curSelfProgress=%d maxSelfProgress=%d curTotalProgress=%d maxTotalProgress=%d\n",
|
||||
/* ATENTIE */ printf("OnProgressChange curSelfProgress=%d maxSelfProgress=%d curTotalProgress=%d maxTotalProgress=%d\n",
|
||||
curSelfProgress, maxSelfProgress, curTotalProgress, maxTotalProgress );
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsWebProgressListener::OnStateChange(nsIWebProgress* aWebProgress, nsIRequest *aRequest, PRInt32 progressStateFlags, nsresult aStatus) {
|
||||
printf("222\n");
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsWebProgressListener::OnLocationChange(nsIWebProgress* aWebProgress, nsIRequest* aRequest, nsIURI *location) {
|
||||
printf("333\n");
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsWebProgressListener::OnStatusChange(nsIWebProgress* aWebProgress, nsIRequest* aRequest, nsresult aStatus, const PRUnichar* aMessage) {
|
||||
printf("OnStatusChange aStatus=%d\n", aStatus );
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsWebProgressListener::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRInt32 state) {
|
||||
printf("555\n");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -177,7 +196,7 @@ NS_IMPL_RELEASE( className );
|
|||
/* QueryInterface implementation for this class. */
|
||||
NS_IMETHODIMP className::QueryInterface( REFNSIID anIID, void **anInstancePtr ) {
|
||||
nsresult rv = NS_OK;
|
||||
printf("QueryInterface!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
/* ATENTIE */ printf("QueryInterface!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n");
|
||||
|
||||
/* Check for place to return result. */
|
||||
if( !anInstancePtr ) rv = NS_ERROR_NULL_POINTER;
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include "nsIWebProgressListener.h"
|
||||
#include "nsIWebBrowserPersist.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIWindowWatcher.h"
|
||||
#include "WebBrowserContainer.h"
|
||||
|
||||
|
||||
static NS_DEFINE_CID( kCID, NS_IHELPERAPPLAUNCHERDIALOG_IID );
|
||||
|
@ -19,6 +21,8 @@ public:
|
|||
nsUnknownContentTypeHandler();
|
||||
virtual ~nsUnknownContentTypeHandler();
|
||||
|
||||
|
||||
|
||||
// This class implements the nsISupports interface functions.
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
|
@ -27,6 +31,9 @@ public:
|
|||
|
||||
// This class implements the nsIHelperAppLauncherDialog interface functions.
|
||||
NS_DECL_NSIHELPERAPPLAUNCHERDIALOG
|
||||
|
||||
private:
|
||||
CWebBrowserContainer* GetWebBrowser(nsIDOMWindow *aWindow);
|
||||
}; // nsUnknownContentTypeHandler
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче