Index: chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
similarity index 85% |
copy from chrome/browser/chromeos/login/users/chrome_user_manager.cc |
copy to chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
index d7fdd8b90c530105ed15b3f865df64497bafbed3..32aab49d6e5425ed8803537df535e4ca2b158a81 100644 |
--- a/chrome/browser/chromeos/login/users/chrome_user_manager.cc |
+++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
@@ -2,7 +2,7 @@ |
// 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/users/chrome_user_manager.h" |
+#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" |
#include <cstddef> |
#include <set> |
@@ -21,6 +21,7 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/thread_task_runner_handle.h" |
#include "base/values.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chrome_notification_types.h" |
@@ -30,7 +31,6 @@ |
#include "chrome/browser/chromeos/login/signin/auth_sync_observer_factory.h" |
#include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" |
#include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" |
-#include "chrome/browser/chromeos/login/users/remove_user_delegate.h" |
#include "chrome/browser/chromeos/login/users/supervised_user_manager_impl.h" |
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
#include "chrome/browser/chromeos/policy/device_local_account.h" |
@@ -49,6 +49,7 @@ |
#include "chromeos/login/user_names.h" |
#include "chromeos/settings/cros_settings_names.h" |
#include "components/session_manager/core/session_manager.h" |
+#include "components/user_manager/remove_user_delegate.h" |
#include "components/user_manager/user_image/user_image.h" |
#include "components/user_manager/user_type.h" |
#include "content/public/browser/browser_thread.h" |
@@ -78,8 +79,8 @@ const char kPublicAccountPendingDataRemoval[] = |
} // namespace |
// static |
-void UserManager::RegisterPrefs(PrefRegistrySimple* registry) { |
- UserManagerBase::RegisterPrefs(registry); |
+void ChromeUserManagerImpl::RegisterPrefs(PrefRegistrySimple* registry) { |
+ ChromeUserManager::RegisterPrefs(registry); |
registry->RegisterListPref(kPublicAccounts); |
registry->RegisterStringPref(kPublicAccountPendingDataRemoval, std::string()); |
@@ -87,8 +88,15 @@ void UserManager::RegisterPrefs(PrefRegistrySimple* registry) { |
SessionLengthLimiter::RegisterPrefs(registry); |
} |
-ChromeUserManager::ChromeUserManager() |
- : cros_settings_(CrosSettings::Get()), |
+// static |
+scoped_ptr<ChromeUserManager> ChromeUserManagerImpl::CreateChromeUserManager() { |
+ return scoped_ptr<ChromeUserManager>(new ChromeUserManagerImpl()); |
+} |
+ |
+ChromeUserManagerImpl::ChromeUserManagerImpl() |
+ : ChromeUserManager(base::ThreadTaskRunnerHandle::Get(), |
+ BrowserThread::GetBlockingPool()), |
+ cros_settings_(CrosSettings::Get()), |
device_local_account_policy_service_(NULL), |
supervised_user_manager_(new SupervisedUserManagerImpl(this)), |
weak_factory_(this) { |
@@ -110,13 +118,13 @@ ChromeUserManager::ChromeUserManager() |
if (base::MessageLoop::current()) { |
base::MessageLoop::current()->PostTask( |
FROM_HERE, |
- base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, |
+ base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, |
weak_factory_.GetWeakPtr())); |
} |
local_accounts_subscription_ = cros_settings_->AddSettingsObserver( |
kAccountsPrefDeviceLocalAccounts, |
- base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, |
+ base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, |
weak_factory_.GetWeakPtr())); |
multi_profile_user_controller_.reset( |
new MultiProfileUserController(this, GetLocalState())); |
@@ -138,12 +146,12 @@ ChromeUserManager::ChromeUserManager() |
wallpaper_policy_observer_->Init(); |
} |
-ChromeUserManager::~ChromeUserManager() { |
+ChromeUserManagerImpl::~ChromeUserManagerImpl() { |
} |
-void ChromeUserManager::Shutdown() { |
+void ChromeUserManagerImpl::Shutdown() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::Shutdown(); |
+ ChromeUserManager::Shutdown(); |
local_accounts_subscription_.reset(); |
@@ -165,11 +173,12 @@ void ChromeUserManager::Shutdown() { |
registrar_.RemoveAll(); |
} |
-MultiProfileUserController* ChromeUserManager::GetMultiProfileUserController() { |
+MultiProfileUserController* |
+ChromeUserManagerImpl::GetMultiProfileUserController() { |
return multi_profile_user_controller_.get(); |
} |
-UserImageManager* ChromeUserManager::GetUserImageManager( |
+UserImageManager* ChromeUserManagerImpl::GetUserImageManager( |
const std::string& user_id) { |
UserImageManagerMap::iterator ui = user_image_managers_.find(user_id); |
if (ui != user_image_managers_.end()) |
@@ -179,11 +188,11 @@ UserImageManager* ChromeUserManager::GetUserImageManager( |
return mgr.get(); |
} |
-SupervisedUserManager* ChromeUserManager::GetSupervisedUserManager() { |
+SupervisedUserManager* ChromeUserManagerImpl::GetSupervisedUserManager() { |
return supervised_user_manager_.get(); |
} |
-user_manager::UserList ChromeUserManager::GetUsersAdmittedForMultiProfile() |
+user_manager::UserList ChromeUserManagerImpl::GetUsersAdmittedForMultiProfile() |
const { |
// Supervised users are not allowed to use multi-profiles. |
if (GetLoggedInUsers().size() == 1 && |
@@ -222,7 +231,7 @@ user_manager::UserList ChromeUserManager::GetUsersAdmittedForMultiProfile() |
return result; |
} |
-user_manager::UserList ChromeUserManager::GetUnlockUsers() const { |
+user_manager::UserList ChromeUserManagerImpl::GetUnlockUsers() const { |
const user_manager::UserList& logged_in_users = GetLoggedInUsers(); |
if (logged_in_users.empty()) |
return user_manager::UserList(); |
@@ -261,9 +270,9 @@ user_manager::UserList ChromeUserManager::GetUnlockUsers() const { |
return unlock_users; |
} |
-void ChromeUserManager::SessionStarted() { |
+void ChromeUserManagerImpl::SessionStarted() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::SessionStarted(); |
+ ChromeUserManager::SessionStarted(); |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_SESSION_STARTED, |
@@ -271,12 +280,13 @@ void ChromeUserManager::SessionStarted() { |
content::Details<const user_manager::User>(GetActiveUser())); |
} |
-void ChromeUserManager::RemoveUserInternal(const std::string& user_email, |
- RemoveUserDelegate* delegate) { |
+void ChromeUserManagerImpl::RemoveUserInternal( |
+ const std::string& user_email, |
+ user_manager::RemoveUserDelegate* delegate) { |
CrosSettings* cros_settings = CrosSettings::Get(); |
const base::Closure& callback = |
- base::Bind(&ChromeUserManager::RemoveUserInternal, |
+ base::Bind(&ChromeUserManagerImpl::RemoveUserInternal, |
weak_factory_.GetWeakPtr(), |
user_email, |
delegate); |
@@ -297,20 +307,20 @@ void ChromeUserManager::RemoveUserInternal(const std::string& user_email, |
RemoveNonOwnerUserInternal(user_email, delegate); |
} |
-void ChromeUserManager::SaveUserOAuthStatus( |
+void ChromeUserManagerImpl::SaveUserOAuthStatus( |
const std::string& user_id, |
user_manager::User::OAuthTokenStatus oauth_token_status) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::SaveUserOAuthStatus(user_id, oauth_token_status); |
+ ChromeUserManager::SaveUserOAuthStatus(user_id, oauth_token_status); |
GetUserFlow(user_id)->HandleOAuthTokenStatusChange(oauth_token_status); |
} |
-void ChromeUserManager::SaveUserDisplayName( |
+void ChromeUserManagerImpl::SaveUserDisplayName( |
const std::string& user_id, |
const base::string16& display_name) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::SaveUserDisplayName(user_id, display_name); |
+ ChromeUserManager::SaveUserDisplayName(user_id, display_name); |
// Do not update local state if data stored or cached outside the user's |
// cryptohome is to be treated as ephemeral. |
@@ -318,14 +328,15 @@ void ChromeUserManager::SaveUserDisplayName( |
supervised_user_manager_->UpdateManagerName(user_id, display_name); |
} |
-void ChromeUserManager::StopPolicyObserverForTesting() { |
+void ChromeUserManagerImpl::StopPolicyObserverForTesting() { |
avatar_policy_observer_.reset(); |
wallpaper_policy_observer_.reset(); |
} |
-void ChromeUserManager::Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
+void ChromeUserManagerImpl::Observe( |
+ int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) { |
switch (type) { |
case chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED: |
if (!device_local_account_policy_service_) { |
@@ -372,7 +383,7 @@ void ChromeUserManager::Observe(int type, |
// NOTIFICATION_PROFILE_CREATED is called synchronously. |
base::MessageLoop::current()->PostTask( |
FROM_HERE, |
- base::Bind(&ChromeUserManager::SwitchActiveUser, |
+ base::Bind(&ChromeUserManagerImpl::SwitchActiveUser, |
weak_factory_.GetWeakPtr(), |
GetPendingUserSwitchID())); |
SetPendingUserSwitchID(std::string()); |
@@ -384,8 +395,8 @@ void ChromeUserManager::Observe(int type, |
} |
} |
-void ChromeUserManager::OnExternalDataSet(const std::string& policy, |
- const std::string& user_id) { |
+void ChromeUserManagerImpl::OnExternalDataSet(const std::string& policy, |
+ const std::string& user_id) { |
if (policy == policy::key::kUserAvatarImage) |
GetUserImageManager(user_id)->OnExternalDataSet(policy); |
else if (policy == policy::key::kWallpaperImage) |
@@ -394,8 +405,8 @@ void ChromeUserManager::OnExternalDataSet(const std::string& policy, |
NOTREACHED(); |
} |
-void ChromeUserManager::OnExternalDataCleared(const std::string& policy, |
- const std::string& user_id) { |
+void ChromeUserManagerImpl::OnExternalDataCleared(const std::string& policy, |
+ const std::string& user_id) { |
if (policy == policy::key::kUserAvatarImage) |
GetUserImageManager(user_id)->OnExternalDataCleared(policy); |
else if (policy == policy::key::kWallpaperImage) |
@@ -404,9 +415,10 @@ void ChromeUserManager::OnExternalDataCleared(const std::string& policy, |
NOTREACHED(); |
} |
-void ChromeUserManager::OnExternalDataFetched(const std::string& policy, |
- const std::string& user_id, |
- scoped_ptr<std::string> data) { |
+void ChromeUserManagerImpl::OnExternalDataFetched( |
+ const std::string& policy, |
+ const std::string& user_id, |
+ scoped_ptr<std::string> data) { |
if (policy == policy::key::kUserAvatarImage) |
GetUserImageManager(user_id)->OnExternalDataFetched(policy, data.Pass()); |
else if (policy == policy::key::kWallpaperImage) |
@@ -415,55 +427,61 @@ void ChromeUserManager::OnExternalDataFetched(const std::string& policy, |
NOTREACHED(); |
} |
-void ChromeUserManager::OnPolicyUpdated(const std::string& user_id) { |
+void ChromeUserManagerImpl::OnPolicyUpdated(const std::string& user_id) { |
const user_manager::User* user = FindUser(user_id); |
if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) |
return; |
UpdatePublicAccountDisplayName(user_id); |
} |
-void ChromeUserManager::OnDeviceLocalAccountsChanged() { |
+void ChromeUserManagerImpl::OnDeviceLocalAccountsChanged() { |
// No action needed here, changes to the list of device-local accounts get |
// handled via the kAccountsPrefDeviceLocalAccounts device setting observer. |
} |
-bool ChromeUserManager::CanCurrentUserLock() const { |
- return UserManagerBase::CanCurrentUserLock() && |
+bool ChromeUserManagerImpl::CanCurrentUserLock() const { |
+ return ChromeUserManager::CanCurrentUserLock() && |
GetCurrentUserFlow()->CanLockScreen(); |
} |
-bool ChromeUserManager::IsUserNonCryptohomeDataEphemeral( |
+bool ChromeUserManagerImpl::IsUserNonCryptohomeDataEphemeral( |
const std::string& user_id) const { |
// Data belonging to the obsolete public accounts whose data has not been |
// removed yet is not ephemeral. |
bool is_obsolete_public_account = IsPublicAccountMarkedForRemoval(user_id); |
return !is_obsolete_public_account && |
- UserManagerBase::IsUserNonCryptohomeDataEphemeral(user_id); |
+ ChromeUserManager::IsUserNonCryptohomeDataEphemeral(user_id); |
} |
-bool ChromeUserManager::AreEphemeralUsersEnabled() const { |
+bool ChromeUserManagerImpl::AreEphemeralUsersEnabled() const { |
policy::BrowserPolicyConnectorChromeOS* connector = |
g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
return GetEphemeralUsersEnabled() && |
(connector->IsEnterpriseManaged() || !GetOwnerEmail().empty()); |
} |
-const std::string& ChromeUserManager::GetApplicationLocale() const { |
+const std::string& ChromeUserManagerImpl::GetApplicationLocale() const { |
return g_browser_process->GetApplicationLocale(); |
} |
-PrefService* ChromeUserManager::GetLocalState() const { |
+PrefService* ChromeUserManagerImpl::GetLocalState() const { |
return g_browser_process ? g_browser_process->local_state() : NULL; |
} |
-bool ChromeUserManager::IsEnterpriseManaged() const { |
+void ChromeUserManagerImpl::HandleUserOAuthTokenStatusChange( |
+ const std::string& user_id, |
+ user_manager::User::OAuthTokenStatus status) const { |
+ GetUserFlow(user_id)->HandleOAuthTokenStatusChange(status); |
+} |
+ |
+bool ChromeUserManagerImpl::IsEnterpriseManaged() const { |
policy::BrowserPolicyConnectorChromeOS* connector = |
g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
return connector->IsEnterpriseManaged(); |
} |
-void ChromeUserManager::LoadPublicAccounts( |
+void ChromeUserManagerImpl::LoadPublicAccounts( |
std::set<std::string>* public_sessions_set) { |
const base::ListValue* prefs_public_sessions = |
GetLocalState()->GetList(kPublicAccounts); |
@@ -480,7 +498,7 @@ void ChromeUserManager::LoadPublicAccounts( |
} |
} |
-void ChromeUserManager::PerformPreUserListLoadingActions() { |
+void ChromeUserManagerImpl::PerformPreUserListLoadingActions() { |
// Clean up user list first. All code down the path should be synchronous, |
// so that local state after transaction rollback is in consistent state. |
// This process also should not trigger EnsureUsersLoaded again. |
@@ -488,7 +506,7 @@ void ChromeUserManager::PerformPreUserListLoadingActions() { |
supervised_user_manager_->RollbackUserCreationTransaction(); |
} |
-void ChromeUserManager::PerformPostUserListLoadingActions() { |
+void ChromeUserManagerImpl::PerformPostUserListLoadingActions() { |
for (user_manager::UserList::iterator ui = users_.begin(), ue = users_.end(); |
ui != ue; |
++ui) { |
@@ -496,18 +514,19 @@ void ChromeUserManager::PerformPostUserListLoadingActions() { |
} |
} |
-void ChromeUserManager::PerformPostUserLoggedInActions(bool browser_restart) { |
+void ChromeUserManagerImpl::PerformPostUserLoggedInActions( |
+ bool browser_restart) { |
// Initialize the session length limiter and start it only if |
// session limit is defined by the policy. |
session_length_limiter_.reset( |
new SessionLengthLimiter(NULL, browser_restart)); |
} |
-bool ChromeUserManager::IsDemoApp(const std::string& user_id) const { |
+bool ChromeUserManagerImpl::IsDemoApp(const std::string& user_id) const { |
return DemoAppLauncher::IsDemoAppSession(user_id); |
} |
-bool ChromeUserManager::IsKioskApp(const std::string& user_id) const { |
+bool ChromeUserManagerImpl::IsKioskApp(const std::string& user_id) const { |
policy::DeviceLocalAccount::Type device_local_account_type; |
return policy::IsDeviceLocalAccountUser(user_id, |
&device_local_account_type) && |
@@ -515,13 +534,13 @@ bool ChromeUserManager::IsKioskApp(const std::string& user_id) const { |
policy::DeviceLocalAccount::TYPE_KIOSK_APP; |
} |
-bool ChromeUserManager::IsPublicAccountMarkedForRemoval( |
+bool ChromeUserManagerImpl::IsPublicAccountMarkedForRemoval( |
const std::string& user_id) const { |
return user_id == |
GetLocalState()->GetString(kPublicAccountPendingDataRemoval); |
} |
-void ChromeUserManager::RetrieveTrustedDevicePolicies() { |
+void ChromeUserManagerImpl::RetrieveTrustedDevicePolicies() { |
// Local state may not be initialized in unit_tests. |
if (!GetLocalState()) |
return; |
@@ -532,7 +551,7 @@ void ChromeUserManager::RetrieveTrustedDevicePolicies() { |
// Schedule a callback if device policy has not yet been verified. |
if (CrosSettingsProvider::TRUSTED != |
cros_settings_->PrepareTrustedValues( |
- base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, |
+ base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, |
weak_factory_.GetWeakPtr()))) { |
return; |
} |
@@ -577,9 +596,9 @@ void ChromeUserManager::RetrieveTrustedDevicePolicies() { |
NotifyUserListChanged(); |
} |
-void ChromeUserManager::GuestUserLoggedIn() { |
+void ChromeUserManagerImpl::GuestUserLoggedIn() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::GuestUserLoggedIn(); |
+ ChromeUserManager::GuestUserLoggedIn(); |
// TODO(nkostylev): Add support for passing guest session cryptohome |
// mount point. Legacy (--login-profile) value will be used for now. |
@@ -595,8 +614,8 @@ void ChromeUserManager::GuestUserLoggedIn() { |
WallpaperManager::Get()->SetUserWallpaperNow(chromeos::login::kGuestUserName); |
} |
-void ChromeUserManager::RegularUserLoggedIn(const std::string& user_id) { |
- UserManagerBase::RegularUserLoggedIn(user_id); |
+void ChromeUserManagerImpl::RegularUserLoggedIn(const std::string& user_id) { |
+ ChromeUserManager::RegularUserLoggedIn(user_id); |
if (IsCurrentUserNew()) |
WallpaperManager::Get()->SetUserWallpaperNow(user_id); |
@@ -609,16 +628,16 @@ void ChromeUserManager::RegularUserLoggedIn(const std::string& user_id) { |
GetLocalState()->CommitPendingWrite(); |
} |
-void ChromeUserManager::RegularUserLoggedInAsEphemeral( |
+void ChromeUserManagerImpl::RegularUserLoggedInAsEphemeral( |
const std::string& user_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- UserManagerBase::RegularUserLoggedInAsEphemeral(user_id); |
+ ChromeUserManager::RegularUserLoggedInAsEphemeral(user_id); |
GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), false); |
WallpaperManager::Get()->SetUserWallpaperNow(user_id); |
} |
-void ChromeUserManager::SupervisedUserLoggedIn(const std::string& user_id) { |
+void ChromeUserManagerImpl::SupervisedUserLoggedIn(const std::string& user_id) { |
// TODO(nkostylev): Refactor, share code with RegularUserLoggedIn(). |
// Remove the user from the user list. |
@@ -657,7 +676,8 @@ void ChromeUserManager::SupervisedUserLoggedIn(const std::string& user_id) { |
GetLocalState()->CommitPendingWrite(); |
} |
-void ChromeUserManager::PublicAccountUserLoggedIn(user_manager::User* user) { |
+void ChromeUserManagerImpl::PublicAccountUserLoggedIn( |
+ user_manager::User* user) { |
SetIsCurrentUserNew(true); |
active_user_ = user; |
@@ -668,7 +688,7 @@ void ChromeUserManager::PublicAccountUserLoggedIn(user_manager::User* user) { |
WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); |
} |
-void ChromeUserManager::KioskAppLoggedIn(const std::string& app_id) { |
+void ChromeUserManagerImpl::KioskAppLoggedIn(const std::string& app_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
policy::DeviceLocalAccount::Type device_local_account_type; |
DCHECK(policy::IsDeviceLocalAccountUser(app_id, &device_local_account_type)); |
@@ -717,7 +737,7 @@ void ChromeUserManager::KioskAppLoggedIn(const std::string& app_id) { |
command_line->AppendSwitch(wm::switches::kWindowAnimationsDisabled); |
} |
-void ChromeUserManager::DemoAccountLoggedIn() { |
+void ChromeUserManagerImpl::DemoAccountLoggedIn() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
active_user_ = |
user_manager::User::CreateKioskAppUser(DemoAppLauncher::kDemoUserName); |
@@ -740,7 +760,7 @@ void ChromeUserManager::DemoAccountLoggedIn() { |
wm::switches::kWindowAnimationsDisabled); |
} |
-void ChromeUserManager::RetailModeUserLoggedIn() { |
+void ChromeUserManagerImpl::RetailModeUserLoggedIn() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
SetIsCurrentUserNew(true); |
active_user_ = user_manager::User::CreateRetailModeUser(); |
@@ -750,13 +770,13 @@ void ChromeUserManager::RetailModeUserLoggedIn() { |
chromeos::login::kRetailModeUserName); |
} |
-void ChromeUserManager::NotifyOnLogin() { |
+void ChromeUserManagerImpl::NotifyOnLogin() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
UserSessionManager::OverrideHomedir(); |
UpdateNumberOfUsers(); |
- UserManagerBase::NotifyOnLogin(); |
+ ChromeUserManager::NotifyOnLogin(); |
// TODO(nkostylev): Deprecate this notification in favor of |
// ActiveUserChanged() observer call. |
@@ -768,15 +788,16 @@ void ChromeUserManager::NotifyOnLogin() { |
UserSessionManager::GetInstance()->PerformPostUserLoggedInActions(); |
} |
-void ChromeUserManager::UpdateOwnership() { |
+void ChromeUserManagerImpl::UpdateOwnership() { |
bool is_owner = DeviceSettingsService::Get()->HasPrivateOwnerKey(); |
VLOG(1) << "Current user " << (is_owner ? "is owner" : "is not owner"); |
SetCurrentUserIsOwner(is_owner); |
} |
-void ChromeUserManager::RemoveNonCryptohomeData(const std::string& user_id) { |
- UserManagerBase::RemoveNonCryptohomeData(user_id); |
+void ChromeUserManagerImpl::RemoveNonCryptohomeData( |
+ const std::string& user_id) { |
+ ChromeUserManager::RemoveNonCryptohomeData(user_id); |
WallpaperManager::Get()->RemoveUserWallpaperInfo(user_id); |
GetUserImageManager(user_id)->DeleteUserImage(); |
@@ -786,7 +807,8 @@ void ChromeUserManager::RemoveNonCryptohomeData(const std::string& user_id) { |
multi_profile_user_controller_->RemoveCachedValues(user_id); |
} |
-void ChromeUserManager::CleanUpPublicAccountNonCryptohomeDataPendingRemoval() { |
+void |
+ChromeUserManagerImpl::CleanUpPublicAccountNonCryptohomeDataPendingRemoval() { |
PrefService* local_state = GetLocalState(); |
const std::string public_account_pending_data_removal = |
local_state->GetString(kPublicAccountPendingDataRemoval); |
@@ -800,7 +822,7 @@ void ChromeUserManager::CleanUpPublicAccountNonCryptohomeDataPendingRemoval() { |
local_state->ClearPref(kPublicAccountPendingDataRemoval); |
} |
-void ChromeUserManager::CleanUpPublicAccountNonCryptohomeData( |
+void ChromeUserManagerImpl::CleanUpPublicAccountNonCryptohomeData( |
const std::vector<std::string>& old_public_accounts) { |
std::set<std::string> users; |
for (user_manager::UserList::const_iterator it = users_.begin(); |
@@ -830,7 +852,7 @@ void ChromeUserManager::CleanUpPublicAccountNonCryptohomeData( |
} |
} |
-bool ChromeUserManager::UpdateAndCleanUpPublicAccounts( |
+bool ChromeUserManagerImpl::UpdateAndCleanUpPublicAccounts( |
const std::vector<policy::DeviceLocalAccount>& device_local_accounts) { |
// Try to remove any public account data marked as pending removal. |
CleanUpPublicAccountNonCryptohomeDataPendingRemoval(); |
@@ -919,7 +941,7 @@ bool ChromeUserManager::UpdateAndCleanUpPublicAccounts( |
return true; |
} |
-void ChromeUserManager::UpdatePublicAccountDisplayName( |
+void ChromeUserManagerImpl::UpdatePublicAccountDisplayName( |
const std::string& user_id) { |
std::string display_name; |
@@ -934,14 +956,14 @@ void ChromeUserManager::UpdatePublicAccountDisplayName( |
SaveUserDisplayName(user_id, base::UTF8ToUTF16(display_name)); |
} |
-UserFlow* ChromeUserManager::GetCurrentUserFlow() const { |
+UserFlow* ChromeUserManagerImpl::GetCurrentUserFlow() const { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (!IsUserLoggedIn()) |
return GetDefaultUserFlow(); |
return GetUserFlow(GetLoggedInUser()->email()); |
} |
-UserFlow* ChromeUserManager::GetUserFlow(const std::string& user_id) const { |
+UserFlow* ChromeUserManagerImpl::GetUserFlow(const std::string& user_id) const { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
FlowMap::const_iterator it = specific_flows_.find(user_id); |
if (it != specific_flows_.end()) |
@@ -949,14 +971,14 @@ UserFlow* ChromeUserManager::GetUserFlow(const std::string& user_id) const { |
return GetDefaultUserFlow(); |
} |
-void ChromeUserManager::SetUserFlow(const std::string& user_id, |
- UserFlow* flow) { |
+void ChromeUserManagerImpl::SetUserFlow(const std::string& user_id, |
+ UserFlow* flow) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
ResetUserFlow(user_id); |
specific_flows_[user_id] = flow; |
} |
-void ChromeUserManager::ResetUserFlow(const std::string& user_id) { |
+void ChromeUserManagerImpl::ResetUserFlow(const std::string& user_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
FlowMap::iterator it = specific_flows_.find(user_id); |
if (it != specific_flows_.end()) { |
@@ -965,44 +987,44 @@ void ChromeUserManager::ResetUserFlow(const std::string& user_id) { |
} |
} |
-bool ChromeUserManager::AreSupervisedUsersAllowed() const { |
+bool ChromeUserManagerImpl::AreSupervisedUsersAllowed() const { |
bool supervised_users_allowed = false; |
cros_settings_->GetBoolean(kAccountsPrefSupervisedUsersEnabled, |
&supervised_users_allowed); |
return supervised_users_allowed; |
} |
-UserFlow* ChromeUserManager::GetDefaultUserFlow() const { |
+UserFlow* ChromeUserManagerImpl::GetDefaultUserFlow() const { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (!default_flow_.get()) |
default_flow_.reset(new DefaultUserFlow()); |
return default_flow_.get(); |
} |
-void ChromeUserManager::NotifyUserListChanged() { |
+void ChromeUserManagerImpl::NotifyUserListChanged() { |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_USER_LIST_CHANGED, |
content::Source<UserManager>(this), |
content::NotificationService::NoDetails()); |
} |
-void ChromeUserManager::NotifyUserAddedToSession( |
+void ChromeUserManagerImpl::NotifyUserAddedToSession( |
const user_manager::User* added_user, |
bool user_switch_pending) { |
if (user_switch_pending) |
SetPendingUserSwitchID(added_user->email()); |
UpdateNumberOfUsers(); |
- UserManagerBase::NotifyUserAddedToSession(added_user, user_switch_pending); |
+ ChromeUserManager::NotifyUserAddedToSession(added_user, user_switch_pending); |
} |
-void ChromeUserManager::OnUserNotAllowed(const std::string& user_email) { |
+void ChromeUserManagerImpl::OnUserNotAllowed(const std::string& user_email) { |
LOG(ERROR) << "Shutdown session because a user is not allowed to be in the " |
"current session"; |
chromeos::ShowMultiprofilesSessionAbortedDialog(user_email); |
} |
-void ChromeUserManager::UpdateNumberOfUsers() { |
+void ChromeUserManagerImpl::UpdateNumberOfUsers() { |
size_t users = GetLoggedInUsers().size(); |
if (users) { |
// Write the user number as UMA stat when a multi user session is possible. |