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..8471b193c87a7133e837baf0f1f9ef0fb385ae9c 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,11 +143,10 @@ 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) { |
| + bytes_read = request->Read(buffer.get(), kResourceBufferSizeBytes); |
| + if (bytes_read >= 0) { |
| status = ShouldContinueReadingRequest(request, bytes_read); |
| - } else if (!request->status().is_success()) { |
| + } else if (bytes_read != net::ERR_IO_PENDING) { |
|
pasko
2016/10/04 11:18:42
So if we get net::ERR_IO_PENDING, this will turn i
maksims (do not use this acc)
2016/10/04 11:51:35
Basically, previous implementation has this error
pasko
2016/10/04 12:14:16
I noticed you fixed it. Thank you!
Feel free to r
|
| FinishRequest(request); |
| return; |
| } |
| @@ -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; |
| } |