RESOLVED FIXED 157028
[curl] Requests interrupted when using https via proxy
https://bugs.webkit.org/show_bug.cgi?id=157028
Summary [curl] Requests interrupted when using https via proxy
Fujii Hironori
Reported 2016-04-26 01:02:00 PDT
[curl] Requests interrupted when using https via proxy trunk@200070 WinCairo port perl Tools\Scripts\build-webkit --debug --wincairo --64-bit 1) Set environment variables http_proxy and https_proxy 2) Set a environment variable WEBKIT_IGNORE_SSL_ERRORS=1 3) Launch MiniBrowser 4) Go to https://webkit.org 5) A message box "Frame load interrupted" shown call stack: > [External Code] > MiniBrowserLib.dll!MiniBrowserWebHost::didFailProvisionalLoadWithError(IWebView * __formal, IWebError * error, IWebFrame * __formal) Line 113 C++ > WebKit.dll!WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const WebCore::ResourceError & error) Line 453 C++ > WebKit.dll!WebCore::FrameLoader::checkLoadCompleteForThisFrame() Line 2246 C++ > WebKit.dll!WebCore::FrameLoader::checkLoadComplete() Line 2465 C++ > WebKit.dll!WebCore::FrameLoader::receivedMainResourceError(const WebCore::ResourceError & error) Line 2784 C++ > WebKit.dll!WebCore::DocumentLoader::mainReceivedError(const WebCore::ResourceError & error) Line 270 C++ > WebKit.dll!WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource * resource) Line 393 C++ > WebKit.dll!WebCore::CachedResource::checkNotify() Line 299 C++ > WebKit.dll!WebCore::CachedResource::cancelLoad() Line 336 C++ > WebKit.dll!WebCore::SubresourceLoader::didCancel(const WebCore::ResourceError & __formal) Line 498 C++ > WebKit.dll!WebCore::ResourceLoader::cancel(const WebCore::ResourceError & error) Line 589 C++ > WebKit.dll!WebCore::DocumentLoader::cancelMainResourceLoad(const WebCore::ResourceError & resourceError) Line 1570 C++ > WebKit.dll!WebCore::DocumentLoader::stopLoadingForPolicyChange() Line 846 C++ > WebKit.dll!WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction policy) Line 790 C++ > WebKit.dll!WebCore::DocumentLoader::responseReceived::__l2::<lambda>(WebCore::PolicyAction policy) Line 725 C++ > [External Code] > WebKit.dll!WebCore::PolicyCallback::call(WebCore::PolicyAction action) Line 107 C++ > WebKit.dll!WebCore::PolicyChecker::continueAfterContentPolicy(WebCore::PolicyAction policy) Line 244 C++ > WebKit.dll!WebCore::PolicyChecker::checkContentPolicy::__l2::<lambda>(WebCore::PolicyAction action) Line 157 C++ > [External Code] > WebKit.dll!WebFrameLoaderClient::receivedPolicyDecision(WebCore::PolicyAction action) Line 1352 C++ > WebKit.dll!WebFramePolicyListener::receivedPolicyDecision(WebCore::PolicyAction action) Line 126 C++ > WebKit.dll!WebFramePolicyListener::ignore() Line 109 C++ > WebKit.dll!DefaultPolicyDelegate::decidePolicyForMIMEType(IWebView * webView, wchar_t * type, IWebURLRequest * request, IWebFrame * __formal, IWebPolicyDecisionListener * listener) Line 168 C++ > WebKit.dll!WebFrameLoaderClient::dispatchDecidePolicyForResponse(const WebCore::ResourceResponse & response, const WebCore::ResourceRequest & request, std::function<void __cdecl(enum WebCore::PolicyAction)> function) Line 541 C++ > WebKit.dll!WebCore::PolicyChecker::checkContentPolicy(const WebCore::ResourceResponse & response, std::function<void __cdecl(enum WebCore::PolicyAction)> function) Line 158 C++ > WebKit.dll!WebCore::DocumentLoader::responseReceived(WebCore::CachedResource * resource, const WebCore::ResourceResponse & response) Line 726 C++ > WebKit.dll!WebCore::CachedRawResource::responseReceived(const WebCore::ResourceResponse & response) Line 186 C++ > WebKit.dll!WebCore::SubresourceLoader::didReceiveResponse(const WebCore::ResourceResponse & response) Line 262 C++ > WebKit.dll!WebCore::ResourceLoader::didReceiveResponse(WebCore::ResourceHandle * __formal, const WebCore::ResourceResponse & response) Line 628 C++ > WebKit.dll!WebCore::headerCallback(char * ptr, unsigned __int64 size, unsigned __int64 nmemb, void * data) Line 548 C++ > libcurl.dll!Curl_client_chop_write(connectdata * conn, int type, char * ptr, unsigned __int64 len) Line 456 C > libcurl.dll!Curl_proxyCONNECT(connectdata * conn, int sockindex, const char * hostname, int remote_port, bool blocking) Line 369 C > libcurl.dll!Curl_proxy_connect(connectdata * conn) Line 72 C > libcurl.dll!Curl_http_connect(connectdata * conn, bool * done) Line 1349 C > libcurl.dll!multi_runsingle(Curl_multi * multi, timeval now, SessionHandle * data) Line 1216 C > libcurl.dll!curl_multi_perform(void * multi_handle, int * running_handles) Line 1811 C > WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 652 C++ > [External Code] > WebKit.dll!WebCore::Timer::fired() Line 142 C++ > WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 124 C++ > WebKit.dll!WebCore::ThreadTimers::setSharedTimer::__l8::<lambda>() Line 73 C++ > [External Code] > WebKit.dll!WebCore::MainThreadSharedTimer::fired() Line 53 C++ > WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 91 C++ > [External Code] > WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 97 C++ > MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 185 C++ > MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 857 C++ > MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 262 C++ > [External Code]
Attachments
Patch (1.85 KB, patch)
2016-04-26 01:44 PDT, Fujii Hironori
no flags
Patch (1.85 KB, patch)
2016-04-26 01:53 PDT, Fujii Hironori
no flags
Fujii Hironori
Comment 1 2016-04-26 01:12:22 PDT
Client sends "CONNECT", then a proxy responds "200 Connection Established". libcurl calls WebCore::headerCallback. In WebFrameLoaderClient::dispatchDecidePolicyForResponse(), response.mimeType() is null. WebView::canShowMIMEType() returns false. Then, the request is canceled. A following bug might be same problem. Bug 20481 – [Curl] Cannot log on google with proxy
Fujii Hironori
Comment 2 2016-04-26 01:44:01 PDT
Fujii Hironori
Comment 3 2016-04-26 01:53:29 PDT
Fujii Hironori
Comment 4 2016-04-26 01:59:33 PDT
AFAIK, curl port is used only by WinCairo port. CC-ed the experts.
Alex Christensen
Comment 5 2016-04-26 10:36:22 PDT
(In reply to comment #4) > AFAIK, curl port is used only by WinCairo port. CC-ed the experts. That is correct.
WebKit Commit Bot
Comment 6 2016-04-26 11:26:42 PDT
Comment on attachment 277351 [details] Patch Clearing flags on attachment: 277351 Committed r200100: <http://trac.webkit.org/changeset/200100>
WebKit Commit Bot
Comment 7 2016-04-26 11:26:47 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.