Peter,

   using http-on-examine-response is working fine in all the versions
of firefox starting from 1.5.0.4; I haven't tested it below that.

   and thankx a lot for your comments

regards,
Arun


On Jun 30, 1:12 am, Peter Djalaliev <peter.djalal...@gmail.com> wrote:
> Hi Arun,
>
> You are right, this should work.  The http-on-examine-response fires
> when Firefox receives an HTTP response:
>
> http://mxr.mozilla.org/firefox/source/netwerk/protocol/http/src/nsHtt...
>
> The first response arrives after the TLS connection has been
> established, so the channel should always have the server certificate
> at this point.
>
> I couldn't find information about when http-on-examine-response was
> introduced, but it was definitely earlier than nsITraceableChannel.
>
> Peter
>
> On Jun 29, 4:29 am, MAK <arungene...@gmail.com> wrote:
>
>
>
> > Thankx a lot Peter
>
> >    This works fine.
>
> >    But as you mentioned this is not possible with the older series
> > browsers. So I just tried to fetch the certificate when "http-on-
> > examine-response" is fired.
>
> >    I could fetch the certificates of all the internal domains. So can
> > this be used as such or still I need to use the nsITracableChannel due
> > to some other controversies.
>
> >    Will there be any problems in querying the nsISSLStatus interface
> > within "http-on-examine-response" ?
>
> > regards
> > Arun
>
> > On Jun 26, 8:08 pm, Peter Djalaliev <peter.djalal...@gmail.com> wrote:
>
> > > Arun,
>
> > > One way is to register a nsIStreamListener using the
> > > nsITraceableChannel interface of the HTTP channel.  Your
> > > nsIStreamListener will need to implement onStartRequest(),
> > > onStopRequest() and onDataAvailable().  In your case, however, the
> > > last two will just be almost empty methods.  In onStartRequest(), you
> > > can get the nsISSLStatus from the HTTP channel.
>
> > > You can register your nsIStreamListener using the "http-on-examine-
> > > response".  When the event fires, you get the nsITraceableChannel
> > > interface from the HTTP channel and and replace the original stream
> > > listener with your own.  Be sure to keep a pointer to the original
> > > stream listeners.  Each of your methods above must call in the end the
> > > corresponding method from the original listener.  Otherwise whatever
> > > initiated the the request (e.g. the docshell) will be out-of-sync with
> > > the networking library.
>
> > > Ideally, you shouldn't do anything in onDataAvailable() but call the
> > > original stream listener.  Otherwise, performance may degrade
> > > noticeably.
>
> > > You can find more info and sample code 
> > > here:http://www.softwareishard.com/blog/firebug/nsitraceablechannel-interc...
>
> > > Note that nsITraceableChannel was introduced in Firefox 3.0.3..  For
> > > earlier versions, I don't know if there is a way to get the
> > > nsISSLStatus.  From what I can see in the Firefox source code, only
> > > the module that initiated the HTTPS request can get this information.
>
> > > I hope this helps.
>
> > > Best Regards,
> > > Peter Djalaliev
>
> > > On Jun 26, 2:40 am, MAK <arungene...@gmail.com> wrote:
>
> > > > Thankx Peter,
>
> > > >    But how is the registration for nsIRequestObserver done. I tried
> > > > out many options, but in no way I'm able to query the nsISSLStatus
> > > > interface through nsIRequestObserver.
>
> > > > regards,
> > > > Arun

-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to