Steve,
I beleive you had a similar issue adding the WebProgressListener.
I tried both nsIWebProgressListener and nsIWebProgress...but no luck
yet
if (strcmp(aTopic,"app-startup")==0)
{
rv = NS_GetServiceManager(getter_AddRefs(servMan));
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIWebProgress> webBrowser;
rv
=servMan->GetServiceByContractID("@mozilla.org/docloaderservice;1",
NS_GET_IID(nsIWebProgress),
getter_AddRefs(webBrowser));
if (webBrowser)
rv =
webBrowser->AddProgressListener(NS_STATIC_CAST(nsIWebProgressListener*,this),
nsIWebProgress::NOTIFY_STATE_DOCUMENT);
}
Both the techniques fail at AddProgressListener line with ILLEGAL_VALUE
as the error.
Can you tell me what the problem could be.
Thanks,
lav
lav wrote:
> Thanks for the response Steve.
>
> I will look into them. But do you know why this method would not work?
> as to where I am goign to wrong, in the way I have understood it...
> Also, can you please tell me if nsIWebProgressListener, would help me
> view the Get and the Post data from the http request headers?
>
> lav
> steve.lu wrote:
> > These interfaces, nsIWebProgressListener, nsIUnicharStreamListener,
> > nsIHttpHeaderVisitor, will give you
> > everything you need including request header, post data, response
> > header, and html text.
> >
> > Search mozilla source code for above interfaces and you will find many
> > examples.
> >
> > Steve
> >
> > lav wrote:
> > > Hi,
> > >
> > > I am trying to build an XPCOM that monitors the http request and
> > > response headers and data.
> > > I have a working version of a sample, that implements nsIObserver. I
> > > would like to be notified on http-on-modify-request topic, to get hold
> > > of the nsIhttpChannel interface.
> > >
> > > My question is, is is okay to do the above in the Observe method
> > > implementation of my XPCOM. FOr eg in "xpcom-startup" or "app-startup"
> > > event. Well, i tried adding them, using AddObserver method, but it
> > > keeps failing.
> > >
> > > Dont know where i am goign wrong.
> > >
> > > Any help is greatly appreciated.
> > >
> > > here is the code snippet
> > >
> > > MyComponent::Observe(nsISupports *aSubject, const char *aTopic, const
> > > PRUnichar *aData)
> > > {
> > > nsresult rv;
> > > nsCOMPtr<nsIServiceManager> servMan;
> > > if (strcmp(aTopic,"app-startup")==0)
> > > {
> > > rv = NS_GetServiceManager(getter_AddRefs(servMan));
> > > if (NS_FAILED(rv))
> > > return rv;
> > > nsCOMPtr<nsIObserverService> observerService;
> > >
> > > servMan->GetServiceByContractID("@mozilla.org/observer-service;1",
> > > NS_GET_IID(nsIObserverService),
> > > getter_AddRefs(observerService));
> > > if (!observerService)
> > > return NS_ERROR_FAILURE;
> > > rv = observerService->AddObserver(
> > > this,
> > > "http-on-modify-request", PR_TRUE);
> > > }
> > > return NS_OK;
> > > }
> > > Thanks,
> > > lav
> > >
> > > _______________________________________________
> > > dev-tech-xpcom mailing list
> > > [email protected]
> > > https://lists.mozilla.org/listinfo/dev-tech-xpcom
> > >
> > >
> > >
_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom