On 5 déc, 15:13, philippe <[email protected]> wrote:
> I use gecko 1.9.2.23
>
> I have an error when I use the GetContentDomWindow on a
> nsIWebBrowserObject
>
> What I do before is:
>
> I create a browser into a window. I navigate on a page using loadURI.
> The page is OK
>
> I trap a key input and start to execute some code into my chrome when
> a key is pressed.
>
> Here is the code
>
> nsIDOMWindow* domWindow=NULL;
> rv=mWebBrowser->GetContentDOMWindow(&domWindow);
>
> nsCOMPtr<nsIScriptGlobalObjectOwner>
> theGlobalObjectOwner(do_GetInterface(domWindow));
>
> But domWindow is NULL and rv=mWebBrowser-
>
> >GetContentDOMWindow(&domWindow); returns 0x80004002.
>
> What is wrong with y code. Do you have some sample ?
>
> THank's a lot for your responses
>
> philippe
Here is my InitialisationProcess
In the container
rv = XPCOMGlueStartup(xpcomPath);
...
rv = XRE_InitEmbedding(xuldir, nsnull, nsnull, nsnull, 0);
Then in the chrome class
(nsIInterfaceRequestor,nsIWebBrowserChrome,nsIWebBrowserChromeFocus,nsIEmbeddingSiteWindow,nsIWebProgressListener,nsSupportsWeakReference)
NS_INTERFACE_MAP_BEGIN(WebBrowserChrome)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIWebBrowserChrome)
NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChrome)
NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChromeFocus)
NS_INTERFACE_MAP_ENTRY(nsIEmbeddingSiteWindow)
NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_END
mWebBrowser =
do_CreateInstance(NS_WEBBROWSER_CONTRACTID,&rv); //
nsCOMPtr<nsIWebBrowser> mWebBrowser (class member)
nsCOMPtr<nsIWebBrowserSetup>
webBrowserAsSetup(do_QueryInterface(mWebBrowser));
webBrowserAsSetup-
>SetProperty(nsIWebBrowserSetup::SETUP_ALLOW_JAVASCRIPT, allowJS); //
alowJS equals PR_TRUE
(void)mWebBrowser-
>SetContainerWindow(static_cast<nsIWebBrowserChrome*>( this));
nsCOMPtr<nsIDocShellTreeItem> dsti =
do_QueryInterface(mWebBrowser);
dsti->SetItemType(nsIDocShellTreeItem::typeContentWrapper);
browserBaseWindow = do_QueryInterface(mWebBrowser); //
nsCOMPtr<nsIBaseWindow> browserBaseWindow (class member)
// creates the native window
RealWebBrowserEmbedded* embedder; // container class
embedder =
static_cast<RealWebBrowserEmbedded*>(mypWebBrowserEmbedded); //
RealWebBrowserEmbedded* mypWebBrowserEmbedded; (class member)
WebBrowserContainer* container = embedder->getContainer();
mNativeWindow =
WebBrowserChromeUI::CreateNativeWindow(static_cast<nsIWebBrowserChrome*>(
this),container); //
creates a WINDOWs hWnd
rv=browserBaseWindow->InitWindow( mNativeWindow, nsnull, aX, aY,
aCX, aCY);
rv=browserBaseWindow->Create();
nsCOMPtr<nsIWebProgressListener>
listener(static_cast<nsIWebProgressListener*>( this));
nsCOMPtr<nsIWeakReference>
thisListener(do_GetWeakReference(listener));
(void)mWebBrowser->AddWebBrowserListener(thisListener,
NS_GET_IID(nsIWebProgressListener));
browserBaseWindow->SetVisibility(PR_TRUE);
nsCOMPtr<nsIWebBrowserFocus>
browserAsFocus=do_QueryInterface(mWebBrowser);
browserAsFocus->Activate();
if (mWebBrowser)
{
*aBrowser = mWebBrowser; // arg nsIWebBrowser*
NS_ADDREF(*aBrowser);
return NS_OK;
}
This Initialisation returns NS_OK
What is wrong ?
Thak's for your responses
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding