| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/enterprise_enrollment_screen.h" | 5 #include "chrome/browser/chromeos/login/enterprise_enrollment_screen.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/chromeos/cros/cros_library.h" | 9 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 10 #include "chrome/browser/chromeos/cros/cryptohome_library.h" | 10 #include "chrome/browser/chromeos/cros/cryptohome_library.h" |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 } | 93 } |
| 94 } | 94 } |
| 95 LOG(ERROR) << "Enrollment will not finish because the InstallAttrs has " | 95 LOG(ERROR) << "Enrollment will not finish because the InstallAttrs has " |
| 96 << "been locked already but does not contain valid data."; | 96 << "been locked already but does not contain valid data."; |
| 97 } | 97 } |
| 98 return false; | 98 return false; |
| 99 } | 99 } |
| 100 | 100 |
| 101 void EnterpriseEnrollmentScreen::OnClientLoginSuccess( | 101 void EnterpriseEnrollmentScreen::OnClientLoginSuccess( |
| 102 const ClientLoginResult& result) { | 102 const ClientLoginResult& result) { |
| 103 WriteInstallAttributesData(result); | 103 auth_fetcher_->StartIssueAuthToken( |
| 104 result.sid, result.lsid, GaiaConstants::kDeviceManagementService); |
| 104 } | 105 } |
| 105 | 106 |
| 106 void EnterpriseEnrollmentScreen::OnClientLoginFailure( | 107 void EnterpriseEnrollmentScreen::OnClientLoginFailure( |
| 107 const GoogleServiceAuthError& error) { | 108 const GoogleServiceAuthError& error) { |
| 108 HandleAuthError(error); | 109 HandleAuthError(error); |
| 109 } | 110 } |
| 110 | 111 |
| 111 void EnterpriseEnrollmentScreen::OnIssueAuthTokenSuccess( | 112 void EnterpriseEnrollmentScreen::OnIssueAuthTokenSuccess( |
| 112 const std::string& service, | 113 const std::string& service, |
| 113 const std::string& auth_token) { | 114 const std::string& auth_token) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 case policy::CloudPolicySubsystem::BAD_GAIA_TOKEN: | 159 case policy::CloudPolicySubsystem::BAD_GAIA_TOKEN: |
| 159 case policy::CloudPolicySubsystem::LOCAL_ERROR: | 160 case policy::CloudPolicySubsystem::LOCAL_ERROR: |
| 160 view()->ShowFatalEnrollmentError(); | 161 view()->ShowFatalEnrollmentError(); |
| 161 break; | 162 break; |
| 162 case policy::CloudPolicySubsystem::UNMANAGED: | 163 case policy::CloudPolicySubsystem::UNMANAGED: |
| 163 view()->ShowAccountError(); | 164 view()->ShowAccountError(); |
| 164 break; | 165 break; |
| 165 case policy::CloudPolicySubsystem::NETWORK_ERROR: | 166 case policy::CloudPolicySubsystem::NETWORK_ERROR: |
| 166 view()->ShowNetworkEnrollmentError(); | 167 view()->ShowNetworkEnrollmentError(); |
| 167 break; | 168 break; |
| 169 case policy::CloudPolicySubsystem::TOKEN_FETCHED: |
| 170 WriteInstallAttributesData(); |
| 171 return; |
| 168 case policy::CloudPolicySubsystem::SUCCESS: | 172 case policy::CloudPolicySubsystem::SUCCESS: |
| 169 // Success! | 173 // Success! |
| 170 registrar_.reset(); | 174 registrar_.reset(); |
| 171 view()->ShowConfirmationScreen(); | 175 view()->ShowConfirmationScreen(); |
| 172 return; | 176 return; |
| 173 } | 177 } |
| 174 | 178 |
| 175 // We have an error. | 179 // We have an error. |
| 176 LOG(WARNING) << "Policy subsystem error during enrollment: " << state | 180 LOG(WARNING) << "Policy subsystem error during enrollment: " << state |
| 177 << " details: " << error_details; | 181 << " details: " << error_details; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 // fall through. | 216 // fall through. |
| 213 case GoogleServiceAuthError::REQUEST_CANCELED: | 217 case GoogleServiceAuthError::REQUEST_CANCELED: |
| 214 LOG(ERROR) << "Unexpected GAIA auth error: " << error.state(); | 218 LOG(ERROR) << "Unexpected GAIA auth error: " << error.state(); |
| 215 view()->ShowFatalAuthError(); | 219 view()->ShowFatalAuthError(); |
| 216 return; | 220 return; |
| 217 } | 221 } |
| 218 | 222 |
| 219 NOTREACHED() << error.state(); | 223 NOTREACHED() << error.state(); |
| 220 } | 224 } |
| 221 | 225 |
| 222 void EnterpriseEnrollmentScreen::WriteInstallAttributesData( | 226 void EnterpriseEnrollmentScreen::WriteInstallAttributesData() { |
| 223 const ClientLoginResult& result) { | |
| 224 // Since this method is also called directly. | 227 // Since this method is also called directly. |
| 225 runnable_method_factory_.RevokeAll(); | 228 runnable_method_factory_.RevokeAll(); |
| 226 | 229 |
| 227 if (!view()) | 230 if (!view()) |
| 228 return; | 231 return; |
| 229 | 232 |
| 230 switch (g_browser_process->browser_policy_connector()->LockDevice(user_)) { | 233 switch (g_browser_process->browser_policy_connector()->LockDevice(user_)) { |
| 231 case policy::EnterpriseInstallAttributes::LOCK_SUCCESS: | 234 case policy::EnterpriseInstallAttributes::LOCK_SUCCESS: { |
| 232 // Proceed with register and policy fetch. | 235 // Proceed with policy fetch. |
| 233 auth_fetcher_->StartIssueAuthToken( | 236 policy::BrowserPolicyConnector* connector = |
| 234 result.sid, result.lsid, GaiaConstants::kDeviceManagementService); | 237 g_browser_process->browser_policy_connector(); |
| 238 connector->FetchPolicy(); |
| 235 return; | 239 return; |
| 236 case policy::EnterpriseInstallAttributes::LOCK_NOT_READY: | 240 } |
| 241 case policy::EnterpriseInstallAttributes::LOCK_NOT_READY: { |
| 237 // InstallAttributes not ready yet, retry later. | 242 // InstallAttributes not ready yet, retry later. |
| 238 LOG(WARNING) << "Install Attributes not ready yet will retry in " | 243 LOG(WARNING) << "Install Attributes not ready yet will retry in " |
| 239 << kLockRetryIntervalMs << "ms."; | 244 << kLockRetryIntervalMs << "ms."; |
| 240 MessageLoop::current()->PostDelayedTask( | 245 MessageLoop::current()->PostDelayedTask( |
| 241 FROM_HERE, | 246 FROM_HERE, |
| 242 runnable_method_factory_.NewRunnableMethod( | 247 runnable_method_factory_.NewRunnableMethod( |
| 243 &EnterpriseEnrollmentScreen::WriteInstallAttributesData, result), | 248 &EnterpriseEnrollmentScreen::WriteInstallAttributesData), |
| 244 kLockRetryIntervalMs); | 249 kLockRetryIntervalMs); |
| 245 return; | 250 return; |
| 246 case policy::EnterpriseInstallAttributes::LOCK_BACKEND_ERROR: | 251 } |
| 252 case policy::EnterpriseInstallAttributes::LOCK_BACKEND_ERROR: { |
| 247 view()->ShowFatalEnrollmentError(); | 253 view()->ShowFatalEnrollmentError(); |
| 248 return; | 254 return; |
| 249 case policy::EnterpriseInstallAttributes::LOCK_WRONG_USER: | 255 } |
| 256 case policy::EnterpriseInstallAttributes::LOCK_WRONG_USER: { |
| 250 LOG(ERROR) << "Enrollment can not proceed because the InstallAttrs " | 257 LOG(ERROR) << "Enrollment can not proceed because the InstallAttrs " |
| 251 << "has been locked already!"; | 258 << "has been locked already!"; |
| 252 view()->ShowFatalEnrollmentError(); | 259 view()->ShowFatalEnrollmentError(); |
| 253 return; | 260 return; |
| 261 } |
| 254 } | 262 } |
| 255 | 263 |
| 256 NOTREACHED(); | 264 NOTREACHED(); |
| 257 } | 265 } |
| 258 | 266 |
| 259 } // namespace chromeos | 267 } // namespace chromeos |
| OLD | NEW |