Chromium Code Reviews| Index: chrome/browser/predictors/resource_prefetcher.cc |
| diff --git a/chrome/browser/predictors/resource_prefetcher.cc b/chrome/browser/predictors/resource_prefetcher.cc |
| index 422e67183b7ace968d1485b308a170f613d71b39..38c78aaa6e78f21f46bfd0cff4f58103a96ef3b2 100644 |
| --- a/chrome/browser/predictors/resource_prefetcher.cc |
| +++ b/chrome/browser/predictors/resource_prefetcher.cc |
| @@ -22,6 +22,7 @@ static const size_t kResourceBufferSizeBytes = 50000; |
| } // namespace |
| namespace predictors { |
| + |
| ResourcePrefetcher::ResourcePrefetcher( |
| Delegate* delegate, |
| const ResourcePrefetchPredictorConfig& config, |
| @@ -142,13 +143,12 @@ void ResourcePrefetcher::ReadFullResponse(net::URLRequest* request) { |
| int bytes_read = 0; |
| scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer( |
| kResourceBufferSizeBytes)); |
| - status = request->Read(buffer.get(), kResourceBufferSizeBytes, &bytes_read); |
| - |
| - if (status) { |
| - status = ShouldContinueReadingRequest(request, bytes_read); |
| - } else if (!request->status().is_success()) { |
| + bytes_read = request->Read(buffer.get(), kResourceBufferSizeBytes); |
| + if (bytes_read < 0) { |
| FinishRequest(request); |
| return; |
| + } else if (bytes_read != net::ERR_IO_PENDING) { |
|
pasko
2016/09/30 10:56:22
This condition is never true because bytes_read is
|
| + status = ShouldContinueReadingRequest(request, bytes_read); |
| } |
| } |
| } |
| @@ -190,17 +190,24 @@ void ResourcePrefetcher::OnSSLCertificateError(net::URLRequest* request, |
| FinishRequest(request); |
| } |
| -void ResourcePrefetcher::OnResponseStarted(net::URLRequest* request) { |
| - // TODO(shishir): Do not read cached entries, or ones that are not cacheable. |
| - if (request->status().is_success()) |
| - ReadFullResponse(request); |
| - else |
| +void ResourcePrefetcher::OnResponseStarted(net::URLRequest* request, |
| + int net_error) { |
| + DCHECK_NE(net::ERR_IO_PENDING, net_error); |
| + |
| + if (net_error != net::OK) { |
| FinishRequest(request); |
| + return; |
| + } |
| + |
| + // TODO(shishir): Do not read cached entries, or ones that are not cacheable. |
| + ReadFullResponse(request); |
| } |
| void ResourcePrefetcher::OnReadCompleted(net::URLRequest* request, |
| int bytes_read) { |
| - if (!request->status().is_success()) { |
| + DCHECK_NE(net::ERR_IO_PENDING, bytes_read); |
| + |
| + if (bytes_read < 0) { |
| FinishRequest(request); |
| return; |
| } |