| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/login/enrollment/auto_enrollment_check_step.h" | 5 #include "chrome/browser/chromeos/login/enrollment/auto_enrollment_check_step.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "chrome/browser/chromeos/login/screens/screen_observer.h" | 11 #include "chrome/browser/chromeos/login/screens/screen_observer.h" |
| 12 #include "chromeos/chromeos_switches.h" | 12 #include "chromeos/chromeos_switches.h" |
| 13 #include "chromeos/network/network_state.h" | 13 #include "chromeos/network/network_state.h" |
| 14 #include "chromeos/network/network_state_handler.h" | 14 #include "chromeos/network/network_state_handler.h" |
| 15 | 15 |
| 16 namespace chromeos { | 16 namespace chromeos { |
| 17 | 17 |
| 18 AutoEnrollmentCheckStep::AutoEnrollmentCheckStep( | 18 AutoEnrollmentCheckStep::AutoEnrollmentCheckStep( |
| 19 ScreenObserver* screen_observer, | 19 ScreenObserver* screen_observer, |
| 20 AutoEnrollmentController* auto_enrollment_controller) | 20 AutoEnrollmentController* auto_enrollment_controller) |
| 21 : screen_observer_(screen_observer), | 21 : screen_observer_(screen_observer), |
| 22 auto_enrollment_controller_(auto_enrollment_controller), | 22 auto_enrollment_controller_(auto_enrollment_controller), |
| 23 captive_portal_status_( | 23 captive_portal_status_( |
| 24 NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN), | 24 captive_portal::CAPTIVE_PORTAL_STATUS_UNKNOWN), |
| 25 auto_enrollment_state_(policy::AUTO_ENROLLMENT_STATE_IDLE) {} | 25 auto_enrollment_state_(policy::AUTO_ENROLLMENT_STATE_IDLE) {} |
| 26 | 26 |
| 27 AutoEnrollmentCheckStep::~AutoEnrollmentCheckStep() { | 27 AutoEnrollmentCheckStep::~AutoEnrollmentCheckStep() { |
| 28 NetworkPortalDetector::Get()->RemoveObserver(this); | 28 NetworkPortalDetector::Get()->RemoveObserver(this); |
| 29 } | 29 } |
| 30 | 30 |
| 31 void AutoEnrollmentCheckStep::Start() { | 31 void AutoEnrollmentCheckStep::Start() { |
| 32 if (AutoEnrollmentController::GetMode() != | 32 if (AutoEnrollmentController::GetMode() != |
| 33 AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT) { | 33 AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT) { |
| 34 SignalCompletion(); | 34 SignalCompletion(); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 56 const NetworkPortalDetector::CaptivePortalState& state) { | 56 const NetworkPortalDetector::CaptivePortalState& state) { |
| 57 UpdateState(state.status, auto_enrollment_state_); | 57 UpdateState(state.status, auto_enrollment_state_); |
| 58 } | 58 } |
| 59 | 59 |
| 60 void AutoEnrollmentCheckStep::OnAutoEnrollmentCheckProgressed( | 60 void AutoEnrollmentCheckStep::OnAutoEnrollmentCheckProgressed( |
| 61 policy::AutoEnrollmentState state) { | 61 policy::AutoEnrollmentState state) { |
| 62 UpdateState(captive_portal_status_, state); | 62 UpdateState(captive_portal_status_, state); |
| 63 } | 63 } |
| 64 | 64 |
| 65 void AutoEnrollmentCheckStep::UpdateState( | 65 void AutoEnrollmentCheckStep::UpdateState( |
| 66 NetworkPortalDetector::CaptivePortalStatus new_captive_portal_status, | 66 captive_portal::CaptivePortalStatus new_captive_portal_status, |
| 67 policy::AutoEnrollmentState new_auto_enrollment_state) { | 67 policy::AutoEnrollmentState new_auto_enrollment_state) { |
| 68 // Configure the error screen to show the approriate error message. | 68 // Configure the error screen to show the approriate error message. |
| 69 if (!UpdateCaptivePortalStatus(new_captive_portal_status)) | 69 if (!UpdateCaptivePortalStatus(new_captive_portal_status)) |
| 70 UpdateAutoEnrollmentState(new_auto_enrollment_state); | 70 UpdateAutoEnrollmentState(new_auto_enrollment_state); |
| 71 | 71 |
| 72 // Update the connecting indicator. | 72 // Update the connecting indicator. |
| 73 ErrorScreen* error_screen = screen_observer_->GetErrorScreen(); | 73 ErrorScreen* error_screen = screen_observer_->GetErrorScreen(); |
| 74 error_screen->ShowConnectingIndicator( | 74 error_screen->ShowConnectingIndicator( |
| 75 new_auto_enrollment_state == policy::AUTO_ENROLLMENT_STATE_PENDING); | 75 new_auto_enrollment_state == policy::AUTO_ENROLLMENT_STATE_PENDING); |
| 76 | 76 |
| 77 // Determine whether a retry is in order. | 77 // Determine whether a retry is in order. |
| 78 bool retry = (new_captive_portal_status == | 78 bool retry = (new_captive_portal_status == |
| 79 NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE) && | 79 captive_portal::CAPTIVE_PORTAL_STATUS_ONLINE) && |
| 80 (captive_portal_status_ != | 80 (captive_portal_status_ != |
| 81 NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE); | 81 captive_portal::CAPTIVE_PORTAL_STATUS_ONLINE); |
| 82 | 82 |
| 83 // Save the new state. | 83 // Save the new state. |
| 84 captive_portal_status_ = new_captive_portal_status; | 84 captive_portal_status_ = new_captive_portal_status; |
| 85 auto_enrollment_state_ = new_auto_enrollment_state; | 85 auto_enrollment_state_ = new_auto_enrollment_state; |
| 86 | 86 |
| 87 // Check whether a decision got made. | 87 // Check whether a decision got made. |
| 88 switch (new_auto_enrollment_state) { | 88 switch (new_auto_enrollment_state) { |
| 89 case policy::AUTO_ENROLLMENT_STATE_IDLE: | 89 case policy::AUTO_ENROLLMENT_STATE_IDLE: |
| 90 NOTREACHED(); | 90 NOTREACHED(); |
| 91 // fall through. | 91 // fall through. |
| 92 case policy::AUTO_ENROLLMENT_STATE_PENDING: | 92 case policy::AUTO_ENROLLMENT_STATE_PENDING: |
| 93 case policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR: | 93 case policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR: |
| 94 break; | 94 break; |
| 95 case policy::AUTO_ENROLLMENT_STATE_SERVER_ERROR: | 95 case policy::AUTO_ENROLLMENT_STATE_SERVER_ERROR: |
| 96 // Server errors don't block OOBE. | 96 // Server errors don't block OOBE. |
| 97 case policy::AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT: | 97 case policy::AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT: |
| 98 case policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT: | 98 case policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT: |
| 99 // Decision made, ready to proceed. | 99 // Decision made, ready to proceed. |
| 100 SignalCompletion(); | 100 SignalCompletion(); |
| 101 return; | 101 return; |
| 102 } | 102 } |
| 103 | 103 |
| 104 // Retry if applicable. This is last so eventual callbacks find consistent | 104 // Retry if applicable. This is last so eventual callbacks find consistent |
| 105 // state. | 105 // state. |
| 106 if (retry) | 106 if (retry) |
| 107 auto_enrollment_controller_->Retry(); | 107 auto_enrollment_controller_->Retry(); |
| 108 } | 108 } |
| 109 | 109 |
| 110 bool AutoEnrollmentCheckStep::UpdateCaptivePortalStatus( | 110 bool AutoEnrollmentCheckStep::UpdateCaptivePortalStatus( |
| 111 NetworkPortalDetector::CaptivePortalStatus new_captive_portal_status) { | 111 captive_portal::CaptivePortalStatus new_captive_portal_status) { |
| 112 switch (new_captive_portal_status) { | 112 switch (new_captive_portal_status) { |
| 113 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN: | 113 case captive_portal::CAPTIVE_PORTAL_STATUS_UNKNOWN: |
| 114 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE: | 114 case captive_portal::CAPTIVE_PORTAL_STATUS_ONLINE: |
| 115 return false; | 115 return false; |
| 116 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE: | 116 case captive_portal::CAPTIVE_PORTAL_STATUS_OFFLINE: |
| 117 ShowErrorScreen(ErrorScreen::ERROR_STATE_OFFLINE); | 117 ShowErrorScreen(ErrorScreen::ERROR_STATE_OFFLINE); |
| 118 return true; | 118 return true; |
| 119 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL: | 119 case captive_portal::CAPTIVE_PORTAL_STATUS_PORTAL: |
| 120 ShowErrorScreen(ErrorScreen::ERROR_STATE_PORTAL); | 120 ShowErrorScreen(ErrorScreen::ERROR_STATE_PORTAL); |
| 121 if (captive_portal_status_ != new_captive_portal_status) | 121 if (captive_portal_status_ != new_captive_portal_status) |
| 122 screen_observer_->GetErrorScreen()->FixCaptivePortal(); | 122 screen_observer_->GetErrorScreen()->FixCaptivePortal(); |
| 123 return true; | 123 return true; |
| 124 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED: | 124 case captive_portal::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED: |
| 125 ShowErrorScreen(ErrorScreen::ERROR_STATE_PROXY); | 125 ShowErrorScreen(ErrorScreen::ERROR_STATE_PROXY); |
| 126 return true; | 126 return true; |
| 127 case NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_COUNT: | 127 case captive_portal::CAPTIVE_PORTAL_STATUS_COUNT: |
| 128 // Trigger NOTREACHED() below. | 128 // Trigger NOTREACHED() below. |
| 129 break; | 129 break; |
| 130 } | 130 } |
| 131 | 131 |
| 132 NOTREACHED() << "Bad status " << new_captive_portal_status; | 132 NOTREACHED() << "Bad status " << new_captive_portal_status; |
| 133 return false; | 133 return false; |
| 134 } | 134 } |
| 135 | 135 |
| 136 bool AutoEnrollmentCheckStep::UpdateAutoEnrollmentState( | 136 bool AutoEnrollmentCheckStep::UpdateAutoEnrollmentState( |
| 137 policy::AutoEnrollmentState new_auto_enrollment_state) { | 137 policy::AutoEnrollmentState new_auto_enrollment_state) { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 167 } | 167 } |
| 168 | 168 |
| 169 void AutoEnrollmentCheckStep::SignalCompletion() { | 169 void AutoEnrollmentCheckStep::SignalCompletion() { |
| 170 NetworkPortalDetector::Get()->RemoveObserver(this); | 170 NetworkPortalDetector::Get()->RemoveObserver(this); |
| 171 auto_enrollment_progress_subscription_.reset(); | 171 auto_enrollment_progress_subscription_.reset(); |
| 172 screen_observer_->OnExit( | 172 screen_observer_->OnExit( |
| 173 ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 173 ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 174 } | 174 } |
| 175 | 175 |
| 176 } // namespace chromeos | 176 } // namespace chromeos |
| OLD | NEW |