Chromium Code Reviews| Index: chrome/browser/chromeos/net/network_portal_detector_impl.cc |
| diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl.cc b/chrome/browser/chromeos/net/network_portal_detector_impl.cc |
| index b4691cdd4f7e92e6ed87b1cbacbae275e4599dad..a256f2f6e1994502d44163c3fe73c1bf20d2ead6 100644 |
| --- a/chrome/browser/chromeos/net/network_portal_detector_impl.cc |
| +++ b/chrome/browser/chromeos/net/network_portal_detector_impl.cc |
| @@ -550,9 +550,14 @@ void NetworkPortalDetectorImpl::OnAttemptCompleted( |
| OnDetectionCompleted(network, state); |
| } |
| - // Observers (via OnDetectionCompleted) may already schedule new attempt. |
| - if (is_idle()) |
| + // Do not schedule attempt if (1) Observers (via OnDetectionCompleted) has |
| + // already scheduled a new attempt or (2) we are behind a captive portal with |
| + // response code 200, which can be either the result of NetworkPortalDetector |
| + // or shill's detection. |
| + if (is_idle() && |
| + (state.status != CAPTIVE_PORTAL_STATUS_PORTAL || response_code != 200)) { |
| ScheduleAttempt(results.retry_after_delta); |
| + } |
|
stevenjb
2017/03/17 16:53:01
This logic got a bit complicated, let's break it u
Qiang(Joe) Xu
2017/03/17 17:23:55
agree. Done, thanks!
|
| } |
| void NetworkPortalDetectorImpl::Observe( |