Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/predictors/resource_prefetcher.h" | 5 #include "chrome/browser/predictors/resource_prefetcher.h" |
| 6 | 6 |
| 7 #include <iterator> | 7 #include <iterator> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 170 void ResourcePrefetcher::ReadFullResponse(net::URLRequest* request) { | 170 void ResourcePrefetcher::ReadFullResponse(net::URLRequest* request) { |
| 171 bool status = true; | 171 bool status = true; |
| 172 while (status) { | 172 while (status) { |
| 173 int bytes_read = 0; | 173 int bytes_read = 0; |
| 174 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer( | 174 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer( |
| 175 kResourceBufferSizeBytes)); | 175 kResourceBufferSizeBytes)); |
| 176 status = request->Read(buffer.get(), kResourceBufferSizeBytes, &bytes_read); | 176 status = request->Read(buffer.get(), kResourceBufferSizeBytes, &bytes_read); |
| 177 | 177 |
| 178 if (status) { | 178 if (status) { |
| 179 status = ShouldContinueReadingRequest(request, bytes_read); | 179 status = ShouldContinueReadingRequest(request, bytes_read); |
| 180 } else if (request->status().error()) { | 180 } else if (!request->status().is_success()) { |
|
pasko
2016/07/29 09:35:29
I could be missing something .. but will this not
pasko
2016/07/29 09:40:42
oh, my reading was wrong, the status is actually f
| |
| 181 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); | 181 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); |
| 182 return; | 182 return; |
| 183 } | 183 } |
| 184 } | 184 } |
| 185 } | 185 } |
| 186 | 186 |
| 187 bool ResourcePrefetcher::ShouldContinueReadingRequest(net::URLRequest* request, | 187 bool ResourcePrefetcher::ShouldContinueReadingRequest(net::URLRequest* request, |
| 188 int bytes_read) { | 188 int bytes_read) { |
| 189 if (bytes_read == 0) { // When bytes_read == 0, no more data. | 189 if (bytes_read == 0) { // When bytes_read == 0, no more data. |
| 190 if (request->was_cached()) | 190 if (request->was_cached()) |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 215 FinishRequest(request, Request::PREFETCH_STATUS_CERT_REQUIRED); | 215 FinishRequest(request, Request::PREFETCH_STATUS_CERT_REQUIRED); |
| 216 } | 216 } |
| 217 | 217 |
| 218 void ResourcePrefetcher::OnSSLCertificateError(net::URLRequest* request, | 218 void ResourcePrefetcher::OnSSLCertificateError(net::URLRequest* request, |
| 219 const net::SSLInfo& ssl_info, | 219 const net::SSLInfo& ssl_info, |
| 220 bool fatal) { | 220 bool fatal) { |
| 221 FinishRequest(request, Request::PREFETCH_STATUS_CERT_ERROR); | 221 FinishRequest(request, Request::PREFETCH_STATUS_CERT_ERROR); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void ResourcePrefetcher::OnResponseStarted(net::URLRequest* request) { | 224 void ResourcePrefetcher::OnResponseStarted(net::URLRequest* request) { |
| 225 if (request->status().error()) { | 225 if (!request->status().is_success()) { |
| 226 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); | 226 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); |
| 227 return; | 227 return; |
| 228 } | 228 } |
| 229 | 229 |
| 230 // TODO(shishir): Do not read cached entries, or ones that are not cacheable. | 230 // TODO(shishir): Do not read cached entries, or ones that are not cacheable. |
| 231 ReadFullResponse(request); | 231 ReadFullResponse(request); |
| 232 } | 232 } |
| 233 | 233 |
| 234 void ResourcePrefetcher::OnReadCompleted(net::URLRequest* request, | 234 void ResourcePrefetcher::OnReadCompleted(net::URLRequest* request, |
| 235 int bytes_read) { | 235 int bytes_read) { |
| 236 if (request->status().error()) { | 236 if (!request->status().is_success()) { |
| 237 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); | 237 FinishRequest(request, Request::PREFETCH_STATUS_FAILED); |
| 238 return; | 238 return; |
| 239 } | 239 } |
| 240 | 240 |
| 241 if (ShouldContinueReadingRequest(request, bytes_read)) | 241 if (ShouldContinueReadingRequest(request, bytes_read)) |
| 242 ReadFullResponse(request); | 242 ReadFullResponse(request); |
| 243 } | 243 } |
| 244 | 244 |
| 245 } // namespace predictors | 245 } // namespace predictors |
| OLD | NEW |