Chromium Code Reviews| Index: chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc |
| diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_step.cc b/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc |
| similarity index 70% |
| rename from chrome/browser/chromeos/login/enrollment/auto_enrollment_check_step.cc |
| rename to chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc |
| index 276e4053a420150a888ccbf50cc6ab49d778f6e9..d7f025ea1b71f8cf938aedf6561c0bac9d6fb2a2 100644 |
| --- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_step.cc |
| +++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc |
| @@ -2,46 +2,51 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/chromeos/login/enrollment/auto_enrollment_check_step.h" |
| +#include "chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.h" |
| #include "base/bind.h" |
| #include "base/bind_helpers.h" |
| #include "base/command_line.h" |
| #include "base/logging.h" |
| #include "chrome/browser/chromeos/login/screens/screen_observer.h" |
| +#include "chrome/browser/chromeos/login/wizard_controller.h" |
| #include "chromeos/chromeos_switches.h" |
| #include "chromeos/network/network_state.h" |
| #include "chromeos/network/network_state_handler.h" |
| namespace chromeos { |
| -AutoEnrollmentCheckStep::AutoEnrollmentCheckStep( |
| - ScreenObserver* screen_observer, |
| +AutoEnrollmentCheckScreen::AutoEnrollmentCheckScreen( |
| + ScreenObserver* observer, |
| + AutoEnrollmentCheckScreenActor* actor, |
| AutoEnrollmentController* auto_enrollment_controller) |
| - : screen_observer_(screen_observer), |
| + : WizardScreen(observer), |
| + actor_(actor), |
| auto_enrollment_controller_(auto_enrollment_controller), |
| captive_portal_status_( |
| NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN), |
| - auto_enrollment_state_(policy::AUTO_ENROLLMENT_STATE_IDLE) {} |
| + auto_enrollment_state_(policy::AUTO_ENROLLMENT_STATE_IDLE) { |
| + DCHECK(actor_); |
|
ygorshenin1
2014/05/20 16:54:40
Why do you need this DCHECK()? In the following co
pastarmovj
2014/05/22 13:41:44
Correct. This is an artifact from the code I copie
|
| + if (actor_) |
| + actor_->SetDelegate(this); |
| +} |
| -AutoEnrollmentCheckStep::~AutoEnrollmentCheckStep() { |
| +AutoEnrollmentCheckScreen::~AutoEnrollmentCheckScreen() { |
| NetworkPortalDetector::Get()->RemoveObserver(this); |
| } |
| -void AutoEnrollmentCheckStep::Start() { |
| - if (AutoEnrollmentController::GetMode() != |
| - AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT) { |
| - SignalCompletion(); |
| +void AutoEnrollmentCheckScreen::Start() { |
| + if (!IsStartNeeded()) |
| return; |
| - } |
| // Make sure the auto-enrollment client is running. |
| auto_enrollment_controller_->Start(); |
| auto_enrollment_progress_subscription_ = |
| auto_enrollment_controller_->RegisterProgressCallback( |
| - base::Bind(&AutoEnrollmentCheckStep::OnAutoEnrollmentCheckProgressed, |
| - base::Unretained(this))); |
| + base::Bind( |
| + &AutoEnrollmentCheckScreen::OnAutoEnrollmentCheckProgressed, |
| + base::Unretained(this))); |
| auto_enrollment_state_ = auto_enrollment_controller_->state(); |
| // NB: AddAndFireObserver below call back into OnPortalDetectionCompleted. |
| @@ -51,18 +56,61 @@ void AutoEnrollmentCheckStep::Start() { |
| portal_detector->AddAndFireObserver(this); |
| } |
| -void AutoEnrollmentCheckStep::OnPortalDetectionCompleted( |
| +bool AutoEnrollmentCheckScreen::IsStartNeeded() { |
| + // Check that forced reenrollment is wanted and if the check is needed or we |
| + // already know the outcome. |
| + if (AutoEnrollmentController::GetMode() != |
| + AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT || |
| + auto_enrollment_state_ == |
| + policy::AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT || |
| + auto_enrollment_state_ == policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT) { |
| + SignalCompletion(); |
| + return false; |
| + } |
| + return true; |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::PrepareToShow() { |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::Show() { |
| + if (IsStartNeeded()) { |
| + Start(); |
| + if (actor_) |
| + actor_->Show(); |
| + } |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::Hide() { |
| +} |
| + |
| +std::string AutoEnrollmentCheckScreen::GetName() const { |
| + return WizardController::kAutoEnrollmentCheckScreenName; |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::OnExit() { |
| + get_screen_observer()->OnExit( |
| + ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::OnActorDestroyed( |
| + AutoEnrollmentCheckScreenActor* actor) { |
| + if (actor_ == actor) |
| + actor_ = NULL; |
| +} |
| + |
| +void AutoEnrollmentCheckScreen::OnPortalDetectionCompleted( |
| const NetworkState* /* network */, |
| const NetworkPortalDetector::CaptivePortalState& state) { |
| UpdateState(state.status, auto_enrollment_state_); |
| } |
| -void AutoEnrollmentCheckStep::OnAutoEnrollmentCheckProgressed( |
| +void AutoEnrollmentCheckScreen::OnAutoEnrollmentCheckProgressed( |
| policy::AutoEnrollmentState state) { |
| UpdateState(captive_portal_status_, state); |
| } |
| -void AutoEnrollmentCheckStep::UpdateState( |
| +void AutoEnrollmentCheckScreen::UpdateState( |
| NetworkPortalDetector::CaptivePortalStatus new_captive_portal_status, |
| policy::AutoEnrollmentState new_auto_enrollment_state) { |
| // Configure the error screen to show the approriate error message. |
| @@ -70,7 +118,7 @@ void AutoEnrollmentCheckStep::UpdateState( |
| UpdateAutoEnrollmentState(new_auto_enrollment_state); |
| // Update the connecting indicator. |
| - ErrorScreen* error_screen = screen_observer_->GetErrorScreen(); |
| + ErrorScreen* error_screen = get_screen_observer()->GetErrorScreen(); |
| error_screen->ShowConnectingIndicator( |
| new_auto_enrollment_state == policy::AUTO_ENROLLMENT_STATE_PENDING); |
| @@ -107,7 +155,7 @@ void AutoEnrollmentCheckStep::UpdateState( |
| auto_enrollment_controller_->Retry(); |
| } |
| -bool AutoEnrollmentCheckStep::UpdateCaptivePortalStatus( |
| +bool AutoEnrollmentCheckScreen::UpdateCaptivePortalStatus( |
| NetworkPortalDetector::CaptivePortalStatus new_captive_portal_status) { |
| switch (new_captive_portal_status) { |
| case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN: |
| @@ -119,7 +167,7 @@ bool AutoEnrollmentCheckStep::UpdateCaptivePortalStatus( |
| case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL: |
| ShowErrorScreen(ErrorScreen::ERROR_STATE_PORTAL); |
| if (captive_portal_status_ != new_captive_portal_status) |
| - screen_observer_->GetErrorScreen()->FixCaptivePortal(); |
| + get_screen_observer()->GetErrorScreen()->FixCaptivePortal(); |
| return true; |
| case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED: |
| ShowErrorScreen(ErrorScreen::ERROR_STATE_PROXY); |
| @@ -133,7 +181,7 @@ bool AutoEnrollmentCheckStep::UpdateCaptivePortalStatus( |
| return false; |
| } |
| -bool AutoEnrollmentCheckStep::UpdateAutoEnrollmentState( |
| +bool AutoEnrollmentCheckScreen::UpdateAutoEnrollmentState( |
| policy::AutoEnrollmentState new_auto_enrollment_state) { |
| switch (new_auto_enrollment_state) { |
| case policy::AUTO_ENROLLMENT_STATE_IDLE: |
| @@ -154,22 +202,22 @@ bool AutoEnrollmentCheckStep::UpdateAutoEnrollmentState( |
| return false; |
| } |
| -void AutoEnrollmentCheckStep::ShowErrorScreen( |
| +void AutoEnrollmentCheckScreen::ShowErrorScreen( |
| ErrorScreen::ErrorState error_state) { |
| const NetworkState* network = |
| NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); |
| - ErrorScreen* error_screen = screen_observer_->GetErrorScreen(); |
| + ErrorScreen* error_screen = get_screen_observer()->GetErrorScreen(); |
| error_screen->SetUIState(ErrorScreen::UI_STATE_AUTO_ENROLLMENT_ERROR); |
| error_screen->AllowGuestSignin(true); |
| error_screen->SetErrorState(error_state, |
| network ? network->name() : std::string()); |
| - screen_observer_->ShowErrorScreen(); |
| + get_screen_observer()->ShowErrorScreen(); |
| } |
| -void AutoEnrollmentCheckStep::SignalCompletion() { |
| +void AutoEnrollmentCheckScreen::SignalCompletion() { |
| NetworkPortalDetector::Get()->RemoveObserver(this); |
| auto_enrollment_progress_subscription_.reset(); |
| - screen_observer_->OnExit( |
| + get_screen_observer()->OnExit( |
| ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| } |