On 5 déc, 15:13, philippe <pa510...@exchange.france.ncr.com> 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
dev-embedding@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to