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( |