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

Unified Diff: net/url_request/url_fetcher_core.cc

Issue 2313013002: Revert of Adjust callers and networking delegates in net/ to modified APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@URLRequestRead
Patch Set: Created 4 years, 3 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
« no previous file with comments | « net/url_request/url_fetcher_core.h ('k') | net/url_request/url_request_context_builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_fetcher_core.cc
diff --git a/net/url_request/url_fetcher_core.cc b/net/url_request/url_fetcher_core.cc
index d4fc8990ef92eae791999ef4b97d2ede5d25ccbc..3d49ad233d242badf58232f4f1897b3740ef2330 100644
--- a/net/url_request/url_fetcher_core.cc
+++ b/net/url_request/url_fetcher_core.cc
@@ -407,17 +407,15 @@
was_fetched_via_proxy_ = request_->was_fetched_via_proxy();
was_cached_ = request_->was_cached();
total_received_bytes_ += request_->GetTotalReceivedBytes();
- int result = request->Cancel();
- OnReadCompleted(request, result);
- }
-}
-
-void URLFetcherCore::OnResponseStarted(URLRequest* request, int net_error) {
+ request->Cancel();
+ OnReadCompleted(request, 0);
+ }
+}
+
+void URLFetcherCore::OnResponseStarted(URLRequest* request) {
DCHECK_EQ(request, request_.get());
DCHECK(network_task_runner_->BelongsToCurrentThread());
- DCHECK_NE(ERR_IO_PENDING, net_error);
-
- if (net_error == OK) {
+ if (request_->status().is_success()) {
response_code_ = request_->GetResponseCode();
response_headers_ = request_->response_headers();
socket_address_ = request_->GetSocketAddress();
@@ -454,7 +452,10 @@
if (throttler_manager)
url_throttler_entry_ = throttler_manager->RegisterRequestUrl(url_);
- while (bytes_read > 0) {
+ do {
+ if (!request_->status().is_success() || bytes_read <= 0)
+ break;
+
current_response_bytes_ += bytes_read;
InformDelegateDownloadProgress();
@@ -464,12 +465,13 @@
// Write failed or waiting for write completion.
return;
}
- bytes_read = request_->Read(buffer_.get(), kBufferSize);
- }
+ } while (request_->Read(buffer_.get(), kBufferSize, &bytes_read));
+
+ const URLRequestStatus status = request_->status();
// See comments re: HEAD requests in ReadResponse().
- if (bytes_read != ERR_IO_PENDING || request_type_ == URLFetcher::HEAD) {
- status_ = URLRequestStatus::FromError(bytes_read);
+ if (!status.is_io_pending() || request_type_ == URLFetcher::HEAD) {
+ status_ = status;
received_response_content_length_ =
request_->received_response_content_length();
total_received_bytes_ += request_->GetTotalReceivedBytes();
@@ -884,9 +886,11 @@
// completed immediately, without trying to read any data back (all we care
// about is the response code and headers, which we already have).
int bytes_read = 0;
- if (request_type_ != URLFetcher::HEAD)
- bytes_read = request_->Read(buffer_.get(), kBufferSize);
-
+ if (request_->status().is_success() &&
+ (request_type_ != URLFetcher::HEAD)) {
+ if (!request_->Read(buffer_.get(), kBufferSize, &bytes_read))
+ bytes_read = -1; // Match OnReadCompleted() interface contract.
+ }
OnReadCompleted(request_.get(), bytes_read);
}
« no previous file with comments | « net/url_request/url_fetcher_core.h ('k') | net/url_request/url_request_context_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698