Curl adds the header 'Expect: 100-Continue' when sending a POST request. When we receive the header 'HTTP/1.1 100 Continue' we should not call ResourceHandleClient::didReceiveResponse(), as the request might be cancelled because the MIME type is empty in this case.
Created attachment 192200 [details] Patch
A good way to reproduce this, is to create a new bug at https://bugs.webkit.org/. When clicking the commit button after filling in the various fields, the POST request sent is always failing for me.
Created attachment 200899 [details] Patch
Modified the patch slightly, inspired by the blackberry port. The blackberry port also ignores http code 100 (and other info codes), see the method NetworkJob::handleNotifyStatusReceived() in WebCore\platform\network\blackberry\NetworkJob.cpp. The blackberry port also doesn't classify http code 304 (Not modified) as a redirect. I did the same thing for Curl, now the 304 code is reported as a response (ResourceHandleClient::didReceiveResponse() is called).
Comment on attachment 200899 [details] Patch Looks great!
Comment on attachment 200899 [details] Patch Clearing flags on attachment: 200899 Committed r149672: <http://trac.webkit.org/changeset/149672>
All reviewed patches have been landed. Closing bug.
(In reply to comment #5) > (From update of attachment 200899 [details]) > Looks great! Thanks for the review ;)