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 "components/user_manager/user_manager_base.h" | 5 #include "components/user_manager/user_manager_base.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 const char kGAPSCookie[] = "gaps_cookie"; | 92 const char kGAPSCookie[] = "gaps_cookie"; |
93 | 93 |
94 // Key of the reason for re-auth. | 94 // Key of the reason for re-auth. |
95 const char kReauthReasonKey[] = "reauth_reason"; | 95 const char kReauthReasonKey[] = "reauth_reason"; |
96 | 96 |
97 // Upper bound for a histogram metric reporting the amount of time between | 97 // Upper bound for a histogram metric reporting the amount of time between |
98 // one regular user logging out and a different regular user logging in. | 98 // one regular user logging out and a different regular user logging in. |
99 const int kLogoutToLoginDelayMaxSec = 1800; | 99 const int kLogoutToLoginDelayMaxSec = 1800; |
100 | 100 |
101 // Callback that is called after user removal is complete. | 101 // Callback that is called after user removal is complete. |
102 void OnRemoveUserComplete(const std::string& user_email, | 102 void OnRemoveUserComplete(const AccountId& account_id, |
103 bool success, | 103 bool success, |
104 cryptohome::MountError return_code) { | 104 cryptohome::MountError return_code) { |
105 // Log the error, but there's not much we can do. | 105 // Log the error, but there's not much we can do. |
106 if (!success) { | 106 if (!success) { |
107 LOG(ERROR) << "Removal of cryptohome for " << user_email | 107 LOG(ERROR) << "Removal of cryptohome for " << account_id.Serialize() |
108 << " failed, return code: " << return_code; | 108 << " failed, return code: " << return_code; |
109 } | 109 } |
110 } | 110 } |
111 | 111 |
112 // Runs on SequencedWorkerPool thread. Passes resolved locale to UI thread. | 112 // Runs on SequencedWorkerPool thread. Passes resolved locale to UI thread. |
113 void ResolveLocale(const std::string& raw_locale, | 113 void ResolveLocale(const std::string& raw_locale, |
114 std::string* resolved_locale) { | 114 std::string* resolved_locale) { |
115 ignore_result(l10n_util::CheckAndResolveLocale(raw_locale, resolved_locale)); | 115 ignore_result(l10n_util::CheckAndResolveLocale(raw_locale, resolved_locale)); |
116 } | 116 } |
117 | 117 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 } | 346 } |
347 | 347 |
348 void UserManagerBase::RemoveUserInternal(const AccountId& account_id, | 348 void UserManagerBase::RemoveUserInternal(const AccountId& account_id, |
349 RemoveUserDelegate* delegate) { | 349 RemoveUserDelegate* delegate) { |
350 RemoveNonOwnerUserInternal(account_id, delegate); | 350 RemoveNonOwnerUserInternal(account_id, delegate); |
351 } | 351 } |
352 | 352 |
353 void UserManagerBase::RemoveNonOwnerUserInternal(const AccountId& account_id, | 353 void UserManagerBase::RemoveNonOwnerUserInternal(const AccountId& account_id, |
354 RemoveUserDelegate* delegate) { | 354 RemoveUserDelegate* delegate) { |
355 if (delegate) | 355 if (delegate) |
356 delegate->OnBeforeUserRemoved(account_id.GetUserEmail()); | 356 delegate->OnBeforeUserRemoved(account_id); |
357 RemoveUserFromList(account_id); | 357 RemoveUserFromList(account_id); |
358 cryptohome::AsyncMethodCaller::GetInstance()->AsyncRemove( | 358 cryptohome::AsyncMethodCaller::GetInstance()->AsyncRemove( |
359 account_id.GetUserEmail(), | 359 account_id.GetUserEmail(), base::Bind(&OnRemoveUserComplete, account_id)); |
360 base::Bind(&OnRemoveUserComplete, account_id.GetUserEmail())); | |
361 | 360 |
362 if (delegate) | 361 if (delegate) |
363 delegate->OnUserRemoved(account_id.GetUserEmail()); | 362 delegate->OnUserRemoved(account_id); |
364 } | 363 } |
365 | 364 |
366 void UserManagerBase::RemoveUserFromList(const AccountId& account_id) { | 365 void UserManagerBase::RemoveUserFromList(const AccountId& account_id) { |
367 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 366 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
368 RemoveNonCryptohomeData(account_id); | 367 RemoveNonCryptohomeData(account_id); |
369 if (user_loading_stage_ == STAGE_LOADED) { | 368 if (user_loading_stage_ == STAGE_LOADED) { |
370 DeleteUser(RemoveRegularOrSupervisedUserFromList(account_id)); | 369 DeleteUser(RemoveRegularOrSupervisedUserFromList(account_id)); |
371 } else if (user_loading_stage_ == STAGE_LOADING) { | 370 } else if (user_loading_stage_ == STAGE_LOADING) { |
372 DCHECK(gaia::ExtractDomainName(account_id.GetUserEmail()) == | 371 DCHECK(gaia::ExtractDomainName(account_id.GetUserEmail()) == |
373 chromeos::login::kSupervisedUserDomain || | 372 chromeos::login::kSupervisedUserDomain || |
(...skipping 1015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 } | 1388 } |
1390 | 1389 |
1391 void UserManagerBase::DeleteUser(User* user) { | 1390 void UserManagerBase::DeleteUser(User* user) { |
1392 const bool is_active_user = (user == active_user_); | 1391 const bool is_active_user = (user == active_user_); |
1393 delete user; | 1392 delete user; |
1394 if (is_active_user) | 1393 if (is_active_user) |
1395 active_user_ = nullptr; | 1394 active_user_ = nullptr; |
1396 } | 1395 } |
1397 | 1396 |
1398 } // namespace user_manager | 1397 } // namespace user_manager |
OLD | NEW |