[webkit-dev] [WinCairo] Can not get Mime from https through a proxy

Carlos Díez Fernández carlosdf at gmail.com
Sun Feb 26 02:32:13 PST 2012


Hello,

I'm using Webkit Wincairo (from trunk) release behind a proxy with the
environment variable "http_proxy" set for curl to use it.
To do the request I use the following code (this is C# using WebKit Interop)):

                WebMutableURLRequest request = new WebMutableURLRequestClass();
                request.initWithURL(url,
_WebURLRequestCachePolicy.WebURLRequestUseProtocolCachePolicy, 60);
                request.setHTTPMethod("GET");

When I navigate through HTTP pages everything works fine, but if I go
to a HTTPS site, webkit sends a error
(didFailProvisionalLoadWithError)

Debugging WebKit I found that in
Source/WebCore/platform/network/curl/ResourceHandleManager.cpp) on
"headerCallback" method
the line "d->m_response.setMimeType(extractMIMETypeFromMediaType(d->m_response.httpHeaderField("Content-Type")));"
sets a empty MimeType because the http headers are void (the hashmap is void).
And then canShowMime() returns false and WebKit throws the
"didFailProvisionalLoadWithError" error.

I tested this with 0.5 release of WebKit.net (with a precompiled
webkit release) and I got the same error.

I found interesting that if I load the google home page and I go to a
HTTPS site it works.
I do not know if google page does a HTTP redirect and the MimeType is
extracted from the original HTTP request.

Also if I force canShowMime() to true, the HTTPS request works. And
also If I do not use a proxy, everything works fine.
I tested my code with Apple libraries instead of Wincairo and with
Apple libraries it works well.

Did someone got the same error? I'm doing the request wrong?
I tried to go deep into the error but I'm lost, i don't know if this
is a libcurl bug or webkit.

Thanks,
Carlos Díez


More information about the webkit-dev mailing list