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..c3886f6f12393d37ace785460527f4e095f2f215 100644 |
--- a/chrome/browser/chromeos/net/network_portal_detector_impl.cc |
+++ b/chrome/browser/chromeos/net/network_portal_detector_impl.cc |
@@ -551,8 +551,15 @@ void NetworkPortalDetectorImpl::OnAttemptCompleted( |
} |
// Observers (via OnDetectionCompleted) may already schedule new attempt. |
- if (is_idle()) |
- ScheduleAttempt(results.retry_after_delta); |
+ if (!is_idle()) |
+ return; |
+ |
+ // If behind a captive portal and the response code was 200 (OK), do not |
+ // schedule a new attempt. |
+ if (state.status == CAPTIVE_PORTAL_STATUS_PORTAL && response_code == 200) |
+ return; |
+ |
+ ScheduleAttempt(results.retry_after_delta); |
} |
void NetworkPortalDetectorImpl::Observe( |