| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/captive_portal/captive_portal_detector.h" | 5 #include "chrome/browser/captive_portal/captive_portal_detector.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "net/base/load_flags.h" | 10 #include "net/base/load_flags.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 // URL, and returns a CaptivePortalService::Result based on its result. | 96 // URL, and returns a CaptivePortalService::Result based on its result. |
| 97 void CaptivePortalDetector::GetCaptivePortalResultFromResponse( | 97 void CaptivePortalDetector::GetCaptivePortalResultFromResponse( |
| 98 const net::URLFetcher* url_fetcher, | 98 const net::URLFetcher* url_fetcher, |
| 99 Results* results) const { | 99 Results* results) const { |
| 100 DCHECK(results); | 100 DCHECK(results); |
| 101 DCHECK(!url_fetcher->GetStatus().is_io_pending()); | 101 DCHECK(!url_fetcher->GetStatus().is_io_pending()); |
| 102 | 102 |
| 103 results->result = RESULT_NO_RESPONSE; | 103 results->result = RESULT_NO_RESPONSE; |
| 104 results->response_code = url_fetcher->GetResponseCode(); | 104 results->response_code = url_fetcher->GetResponseCode(); |
| 105 results->retry_after_delta = base::TimeDelta(); | 105 results->retry_after_delta = base::TimeDelta(); |
| 106 results->landing_url = url_fetcher->GetURL(); |
| 106 | 107 |
| 107 // If there's a network error of some sort when fetching a file via HTTP, | 108 // If there's a network error of some sort when fetching a file via HTTP, |
| 108 // there may be a networking problem, rather than a captive portal. | 109 // there may be a networking problem, rather than a captive portal. |
| 109 // TODO(mmenke): Consider special handling for redirects that end up at | 110 // TODO(mmenke): Consider special handling for redirects that end up at |
| 110 // errors, especially SSL certificate errors. | 111 // errors, especially SSL certificate errors. |
| 111 if (url_fetcher->GetStatus().status() != net::URLRequestStatus::SUCCESS) | 112 if (url_fetcher->GetStatus().status() != net::URLRequestStatus::SUCCESS) |
| 112 return; | 113 return; |
| 113 | 114 |
| 114 // In the case of 503 errors, look for the Retry-After header. | 115 // In the case of 503 errors, look for the Retry-After header. |
| 115 if (results->response_code == 503) { | 116 if (results->response_code == 503) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 return base::Time::Now(); | 161 return base::Time::Now(); |
| 161 else | 162 else |
| 162 return time_for_testing_; | 163 return time_for_testing_; |
| 163 } | 164 } |
| 164 | 165 |
| 165 bool CaptivePortalDetector::FetchingURL() const { | 166 bool CaptivePortalDetector::FetchingURL() const { |
| 166 return url_fetcher_.get() != NULL; | 167 return url_fetcher_.get() != NULL; |
| 167 } | 168 } |
| 168 | 169 |
| 169 } // namespace captive_portal | 170 } // namespace captive_portal |
| OLD | NEW |