Boris Zbarsky napsal(a):
> Feynman wrote:
>> webBrowser->GetContentDOMWindow(&domWindow);
>> rv = domWindow->GetDocument(&domDoc);
>
> Those leak, but that might not matter here.
>
>> rv = target->AddEventListener(NS_LITERAL_STRING("pageload"), listener,
>> PR_FALSE);
>
> There is no "pageload" event.
>
> Note that you want to be adding your listener to the chrome event
> listener for the window. Attaching a listener to a document won't tell
> you anything about other documents loading...
>
> -Boris
Thanks for response, I tested another solution, but it does not work.
MyEventListener::PageShow is never called, but according to
source code its sent from nsIDocument::LoadComplete. I dont know if its
exactly what I want achive, but its called much later after net_stop signal.
Thank you
class MyEventListener : public nsIDOMPageTransitionListener
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMEVENTLISTENER
NS_IMETHOD PageShow(nsIDOMEvent* aEvent);
NS_IMETHOD PageHide(nsIDOMEvent* aEvent);
MyEventListener();
private:
~MyEventListener();
};
NS_IMPL_ISUPPORTS1(MyEventListener, nsIDOMEventListener)
MyEventListener::MyEventListener()
{
/* member initializers and constructor code */
}
MyEventListener::~MyEventListener()
{
/* destructor code */
}
NS_IMETHODIMP
MyEventListener::HandleEvent(nsIDOMEvent* aDOMEvent)
{
printf("A\n");
return NS_OK;
}
NS_IMETHODIMP
MyEventListener::PageShow(nsIDOMEvent* aDOMEvent)
{
printf("A\n");
}
NS_IMETHODIMP
MyEventListener::PageHide(nsIDOMEvent* aDOMEvent)
{
printf("A\n");
}
nsIWebBrowser *webBrowser;
nsIDOMWindow *domWindow;
gtk_moz_embed_get_nsIWebBrowser(GTK_MOZ_EMBED(browser->mozEmbed),
&webBrowser);
nsIDOMDocument *domDoc;
nsresult rv;
webBrowser->GetContentDOMWindow(&domWindow);
rv = domWindow->GetDocument(&domDoc);
if (NS_FAILED(rv)) exit(1);
nsCOMPtr<nsIDocument> doc = do_QueryInterface(domDoc);
nsCOMPtr<nsIDOMEventTarget> target(do_QueryInterface(doc));
MyEventListener *listener = new MyEventListener();
rv = target->AddEventListener(NS_LITERAL_STRING("pageshow"), listener,
PR_FALSE);
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding