OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/chromeos/net/network_portal_detector_impl.h" | 5 #include "chrome/browser/chromeos/net/network_portal_detector_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 if (elapsed_time < delay_between_attempts && | 290 if (elapsed_time < delay_between_attempts && |
291 delay_between_attempts - elapsed_time > next_attempt_delay_) { | 291 delay_between_attempts - elapsed_time > next_attempt_delay_) { |
292 next_attempt_delay_ = delay_between_attempts - elapsed_time; | 292 next_attempt_delay_ = delay_between_attempts - elapsed_time; |
293 } | 293 } |
294 } else { | 294 } else { |
295 detection_start_time_ = GetCurrentTimeTicks(); | 295 detection_start_time_ = GetCurrentTimeTicks(); |
296 } | 296 } |
297 detection_task_.Reset( | 297 detection_task_.Reset( |
298 base::Bind(&NetworkPortalDetectorImpl::DetectCaptivePortalTask, | 298 base::Bind(&NetworkPortalDetectorImpl::DetectCaptivePortalTask, |
299 weak_ptr_factory_.GetWeakPtr())); | 299 weak_ptr_factory_.GetWeakPtr())); |
300 MessageLoop::current()->PostDelayedTask(FROM_HERE, | 300 base::MessageLoop::current()->PostDelayedTask( |
301 detection_task_.callback(), | 301 FROM_HERE, detection_task_.callback(), next_attempt_delay_); |
302 next_attempt_delay_); | |
303 } | 302 } |
304 | 303 |
305 void NetworkPortalDetectorImpl::DetectCaptivePortalTask() { | 304 void NetworkPortalDetectorImpl::DetectCaptivePortalTask() { |
306 DCHECK(IsPortalCheckPending()); | 305 DCHECK(IsPortalCheckPending()); |
307 | 306 |
308 state_ = STATE_CHECKING_FOR_PORTAL; | 307 state_ = STATE_CHECKING_FOR_PORTAL; |
309 attempt_start_time_ = GetCurrentTimeTicks(); | 308 attempt_start_time_ = GetCurrentTimeTicks(); |
310 | 309 |
311 if (attempt_count_ < kMaxRequestAttempts) { | 310 if (attempt_count_ < kMaxRequestAttempts) { |
312 ++attempt_count_; | 311 ++attempt_count_; |
313 VLOG(1) << "Portal detection started: " | 312 VLOG(1) << "Portal detection started: " |
314 << "network=" << active_network_id_ << ", " | 313 << "network=" << active_network_id_ << ", " |
315 << "attempt=" << attempt_count_ << " of " << kMaxRequestAttempts; | 314 << "attempt=" << attempt_count_ << " of " << kMaxRequestAttempts; |
316 } else { | 315 } else { |
317 DCHECK(lazy_detection_enabled_); | 316 DCHECK(lazy_detection_enabled_); |
318 VLOG(1) << "Lazy portal detection attempt started"; | 317 VLOG(1) << "Lazy portal detection attempt started"; |
319 } | 318 } |
320 | 319 |
321 captive_portal_detector_->DetectCaptivePortal( | 320 captive_portal_detector_->DetectCaptivePortal( |
322 test_url_, | 321 test_url_, |
323 base::Bind(&NetworkPortalDetectorImpl::OnPortalDetectionCompleted, | 322 base::Bind(&NetworkPortalDetectorImpl::OnPortalDetectionCompleted, |
324 weak_ptr_factory_.GetWeakPtr())); | 323 weak_ptr_factory_.GetWeakPtr())); |
325 detection_timeout_.Reset( | 324 detection_timeout_.Reset( |
326 base::Bind(&NetworkPortalDetectorImpl::PortalDetectionTimeout, | 325 base::Bind(&NetworkPortalDetectorImpl::PortalDetectionTimeout, |
327 weak_ptr_factory_.GetWeakPtr())); | 326 weak_ptr_factory_.GetWeakPtr())); |
328 MessageLoop::current()->PostDelayedTask(FROM_HERE, | 327 base::MessageLoop::current()->PostDelayedTask( |
329 detection_timeout_.callback(), | 328 FROM_HERE, detection_timeout_.callback(), request_timeout_); |
330 request_timeout_); | |
331 } | 329 } |
332 | 330 |
333 void NetworkPortalDetectorImpl::PortalDetectionTimeout() { | 331 void NetworkPortalDetectorImpl::PortalDetectionTimeout() { |
334 DCHECK(CalledOnValidThread()); | 332 DCHECK(CalledOnValidThread()); |
335 DCHECK(IsCheckingForPortal()); | 333 DCHECK(IsCheckingForPortal()); |
336 | 334 |
337 VLOG(1) << "Portal detection timeout: network=" << active_network_id_; | 335 VLOG(1) << "Portal detection timeout: network=" << active_network_id_; |
338 | 336 |
339 captive_portal_detector_->Cancel(); | 337 captive_portal_detector_->Cancel(); |
340 CaptivePortalDetector::Results results; | 338 CaptivePortalDetector::Results results; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 return base::TimeTicks::Now(); | 475 return base::TimeTicks::Now(); |
478 else | 476 else |
479 return time_ticks_for_testing_; | 477 return time_ticks_for_testing_; |
480 } | 478 } |
481 | 479 |
482 bool NetworkPortalDetectorImpl::DetectionTimeoutIsCancelledForTesting() const { | 480 bool NetworkPortalDetectorImpl::DetectionTimeoutIsCancelledForTesting() const { |
483 return detection_timeout_.IsCancelled(); | 481 return detection_timeout_.IsCancelled(); |
484 } | 482 } |
485 | 483 |
486 } // namespace chromeos | 484 } // namespace chromeos |
OLD | NEW |