Since you're the first and foremost expert on everything IE, I'm
addressing this question directly to you.
I am developing an IE Add-on that has to rewrite URLs as they go
through the APP chain. I am funneling http and https traffic to a
remote https proxy, which, in turn, does it's thing, fetches the pages
and returns them to the user.
I elected to use the vtbl patching method to grab a hold of methods in
http and https protocols. I have implemented http handler to forward
calls to https handler, which I also intercept. I do this in Start[Ex]
by creating another instance of https protocol and using that to
handle the request (which brings us to one of the problems - handling
per-request state). I also have my own IInternetProtocolSink and
IBindInfo implementation, which adds INTERNET_FLAG_NO_COOKIES and
removed BINDINFO_OPTIONS_ENABLE_UTF8 per one of your conversations in
Problems I am having:
1. When http and http flows are not altered (my handlers work in pass-
through mode and no remote proxy is involved) and I try to login to
gmail for exaple, I get an error from IE: INET_E_SECURITY_PROBLEM with
error = 0. I suspect this has to do with redirect from http to https.
This conclusion is supported by an observation that if I type the
gmail's URL with httpS, I can login just fine.
2. When I redirect http flow to https flow as mentioned above (in
Start[Ex] of the http handler), use my remote proxy and try to login
to gmail, I either get a page saying that my cookies are turned off,
or redirected back to the login page. I do handle my own cookies by
parsing Set-Cookie header and calling InternetGetCookieEx to retrieve
cookies set by scripts. I funnel them right back in
BeginningTransaction (I do call BeginningTransaction of original sink
Is there any chance we could talk about it?
Thank you in advance,