Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(433)

Side by Side Diff: chrome/browser/chromeos/net/network_portal_detector_impl.cc

Issue 1076853003: Refactor net::BackoffEntry to not require subclassing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address pneubeck's review comments Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 391 }
392 392
393 int NetworkPortalDetectorImpl::NoResponseResultCount() { 393 int NetworkPortalDetectorImpl::NoResponseResultCount() {
394 return no_response_result_count_; 394 return no_response_result_count_;
395 } 395 }
396 396
397 base::TimeTicks NetworkPortalDetectorImpl::AttemptStartTime() { 397 base::TimeTicks NetworkPortalDetectorImpl::AttemptStartTime() {
398 return attempt_start_time_; 398 return attempt_start_time_;
399 } 399 }
400 400
401 base::TimeTicks NetworkPortalDetectorImpl::GetCurrentTimeTicks() { 401 base::TimeTicks NetworkPortalDetectorImpl::NowTicks() {
402 if (time_ticks_for_testing_.is_null()) 402 if (time_ticks_for_testing_.is_null())
403 return base::TimeTicks::Now(); 403 return base::TimeTicks::Now();
404 return time_ticks_for_testing_; 404 return time_ticks_for_testing_;
405 } 405 }
406 406
407 407
408 //////////////////////////////////////////////////////////////////////////////// 408 ////////////////////////////////////////////////////////////////////////////////
409 // NetworkPortalDetectorImpl, private: 409 // NetworkPortalDetectorImpl, private:
410 410
411 void NetworkPortalDetectorImpl::StartDetection() { 411 void NetworkPortalDetectorImpl::StartDetection() {
412 DCHECK(is_idle()); 412 DCHECK(is_idle());
413 413
414 ResetStrategyAndCounters(); 414 ResetStrategyAndCounters();
415 detection_start_time_ = GetCurrentTimeTicks(); 415 detection_start_time_ = NowTicks();
416 ScheduleAttempt(base::TimeDelta()); 416 ScheduleAttempt(base::TimeDelta());
417 } 417 }
418 418
419 void NetworkPortalDetectorImpl::StopDetection() { 419 void NetworkPortalDetectorImpl::StopDetection() {
420 attempt_task_.Cancel(); 420 attempt_task_.Cancel();
421 attempt_timeout_.Cancel(); 421 attempt_timeout_.Cancel();
422 captive_portal_detector_->Cancel(); 422 captive_portal_detector_->Cancel();
423 state_ = STATE_IDLE; 423 state_ = STATE_IDLE;
424 ResetStrategyAndCounters(); 424 ResetStrategyAndCounters();
425 } 425 }
(...skipping 17 matching lines...) Expand all
443 attempt_task_.Reset(base::Bind(&NetworkPortalDetectorImpl::StartAttempt, 443 attempt_task_.Reset(base::Bind(&NetworkPortalDetectorImpl::StartAttempt,
444 weak_factory_.GetWeakPtr())); 444 weak_factory_.GetWeakPtr()));
445 base::MessageLoop::current()->PostDelayedTask( 445 base::MessageLoop::current()->PostDelayedTask(
446 FROM_HERE, attempt_task_.callback(), next_attempt_delay_); 446 FROM_HERE, attempt_task_.callback(), next_attempt_delay_);
447 } 447 }
448 448
449 void NetworkPortalDetectorImpl::StartAttempt() { 449 void NetworkPortalDetectorImpl::StartAttempt() {
450 DCHECK(is_portal_check_pending()); 450 DCHECK(is_portal_check_pending());
451 451
452 state_ = STATE_CHECKING_FOR_PORTAL; 452 state_ = STATE_CHECKING_FOR_PORTAL;
453 attempt_start_time_ = GetCurrentTimeTicks(); 453 attempt_start_time_ = NowTicks();
454 454
455 captive_portal_detector_->DetectCaptivePortal( 455 captive_portal_detector_->DetectCaptivePortal(
456 test_url_, 456 test_url_,
457 base::Bind(&NetworkPortalDetectorImpl::OnAttemptCompleted, 457 base::Bind(&NetworkPortalDetectorImpl::OnAttemptCompleted,
458 weak_factory_.GetWeakPtr())); 458 weak_factory_.GetWeakPtr()));
459 attempt_timeout_.Reset( 459 attempt_timeout_.Reset(
460 base::Bind(&NetworkPortalDetectorImpl::OnAttemptTimeout, 460 base::Bind(&NetworkPortalDetectorImpl::OnAttemptTimeout,
461 weak_factory_.GetWeakPtr())); 461 weak_factory_.GetWeakPtr()));
462 462
463 base::MessageLoop::current()->PostDelayedTask( 463 base::MessageLoop::current()->PostDelayedTask(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 if (!attempt_completed_report_.Equals(attempt_completed_report)) { 504 if (!attempt_completed_report_.Equals(attempt_completed_report)) {
505 attempt_completed_report_ = attempt_completed_report; 505 attempt_completed_report_ = attempt_completed_report;
506 attempt_completed_report_.Report(); 506 attempt_completed_report_.Report();
507 } 507 }
508 508
509 state_ = STATE_IDLE; 509 state_ = STATE_IDLE;
510 attempt_timeout_.Cancel(); 510 attempt_timeout_.Cancel();
511 511
512 CaptivePortalState state; 512 CaptivePortalState state;
513 state.response_code = response_code; 513 state.response_code = response_code;
514 state.time = GetCurrentTimeTicks(); 514 state.time = NowTicks();
515 switch (result) { 515 switch (result) {
516 case captive_portal::RESULT_NO_RESPONSE: 516 case captive_portal::RESULT_NO_RESPONSE:
517 if (state.response_code == net::HTTP_PROXY_AUTHENTICATION_REQUIRED) { 517 if (state.response_code == net::HTTP_PROXY_AUTHENTICATION_REQUIRED) {
518 state.status = CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED; 518 state.status = CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED;
519 } else if (network && network->is_captive_portal()) { 519 } else if (network && network->is_captive_portal()) {
520 // Take into account shill's detection results. 520 // Take into account shill's detection results.
521 state.status = CAPTIVE_PORTAL_STATUS_PORTAL; 521 state.status = CAPTIVE_PORTAL_STATUS_PORTAL;
522 } else { 522 } else {
523 state.status = CAPTIVE_PORTAL_STATUS_OFFLINE; 523 state.status = CAPTIVE_PORTAL_STATUS_OFFLINE;
524 } 524 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 } 616 }
617 617
618 void NetworkPortalDetectorImpl::RecordDetectionStats( 618 void NetworkPortalDetectorImpl::RecordDetectionStats(
619 const NetworkState* network, 619 const NetworkState* network,
620 CaptivePortalStatus status) { 620 CaptivePortalStatus status) {
621 // Don't record stats for offline state. 621 // Don't record stats for offline state.
622 if (!network) 622 if (!network)
623 return; 623 return;
624 624
625 if (!detection_start_time_.is_null()) 625 if (!detection_start_time_.is_null())
626 RecordDetectionDuration(GetCurrentTimeTicks() - detection_start_time_); 626 RecordDetectionDuration(NowTicks() - detection_start_time_);
627 RecordDetectionResult(status); 627 RecordDetectionResult(status);
628 628
629 switch (status) { 629 switch (status) {
630 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN: 630 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN:
631 NOTREACHED(); 631 NOTREACHED();
632 break; 632 break;
633 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE: 633 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE:
634 if (network->IsConnectedState()) 634 if (network->IsConnectedState())
635 RecordDiscrepancyWithShill(network, status); 635 RecordDiscrepancyWithShill(network, status);
636 break; 636 break;
(...skipping 16 matching lines...) Expand all
653 } 653 }
654 654
655 void NetworkPortalDetectorImpl::ResetStrategyAndCounters() { 655 void NetworkPortalDetectorImpl::ResetStrategyAndCounters() {
656 last_detection_result_ = CAPTIVE_PORTAL_STATUS_UNKNOWN; 656 last_detection_result_ = CAPTIVE_PORTAL_STATUS_UNKNOWN;
657 same_detection_result_count_ = 0; 657 same_detection_result_count_ = 0;
658 no_response_result_count_ = 0; 658 no_response_result_count_ = 0;
659 strategy_->Reset(); 659 strategy_->Reset();
660 } 660 }
661 661
662 } // namespace chromeos 662 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698