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 |