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

Reply via email to