Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Unified Diff: net/url_request/url_request_http_job.cc

Issue 6881106: Treat ERR_CONNECTION_CLOSED as end-of-data marker for downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved detection code to URLRequestHttpJob. Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/url_request/url_request_http_job.cc
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index b7f8d4c6d39fc9b29394320f53efedfa7c6b46df..182133a7ae806a46a5928beebcf6b38661f6fc87 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -283,7 +283,22 @@ void URLRequestHttpJob::NotifyHeadersComplete() {
URLRequestJob::NotifyHeadersComplete();
}
-void URLRequestHttpJob::NotifyDone(const URLRequestStatus& status) {
+void URLRequestHttpJob::NotifyDone(const URLRequestStatus& original_status) {
+ URLRequestStatus status(original_status);
+ // Some servers send the body compressed, but specify the content length as
+ // the uncompressed size. Although this violates, the HTTP spec, we want to
+ // support it (as IE and FireFox do), but *only* for an exact match.
+ // See bug: 79694.
Randy Smith (Not in Mondays) 2011/05/03 21:30:41 I think the proper format for this last is "See ht
ahendrickson 2011/05/04 15:08:25 Done.
+ if (status.os_error() == net::ERR_CONNECTION_CLOSED) {
+ if (request_ && request_->response_headers()) {
+ if (postfilter_bytes_read() ==
+ request_->response_headers()->GetContentLength()) {
+ // Clear the error.
+ status = URLRequestStatus();
+ }
+ }
+ }
+
RecordCompressionHistograms();
URLRequestJob::NotifyDone(status);
}

Powered by Google App Engine
This is Rietveld 408576698