| 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 4452e3cbfe830ae17421102ba3e58990404d0013..9296271e7863d95e2b53da6b470dcd0eb6df4a2d 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>
|
| @@ -30,7 +30,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 +48,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 +78,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,7 +87,12 @@ void UserManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
| SessionLengthLimiter::RegisterPrefs(registry);
|
| }
|
|
|
| -ChromeUserManager::ChromeUserManager()
|
| +// static
|
| +scoped_ptr<ChromeUserManager> ChromeUserManagerImpl::CreateChromeUserManager() {
|
| + return scoped_ptr<ChromeUserManager>(new ChromeUserManagerImpl());
|
| +}
|
| +
|
| +ChromeUserManagerImpl::ChromeUserManagerImpl()
|
| : cros_settings_(CrosSettings::Get()),
|
| device_local_account_policy_service_(NULL),
|
| supervised_user_manager_(new SupervisedUserManagerImpl(this)),
|
| @@ -110,13 +115,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 +143,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 +170,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 +185,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 &&
|
| @@ -220,7 +226,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();
|
| @@ -258,9 +264,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,
|
| @@ -268,12 +274,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);
|
| @@ -294,20 +301,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.
|
| @@ -315,14 +322,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_) {
|
| @@ -369,7 +377,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());
|
| @@ -381,8 +389,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)
|
| @@ -391,8 +399,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)
|
| @@ -401,9 +409,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)
|
| @@ -412,55 +421,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);
|
| @@ -477,7 +492,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.
|
| @@ -485,7 +500,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) {
|
| @@ -493,18 +508,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) &&
|
| @@ -512,13 +528,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;
|
| @@ -529,7 +545,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;
|
| }
|
| @@ -574,9 +590,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.
|
| @@ -592,8 +608,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);
|
| @@ -606,16 +622,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.
|
| @@ -654,7 +670,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;
|
|
|
| @@ -665,7 +682,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));
|
| @@ -714,7 +731,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);
|
| @@ -737,7 +754,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();
|
| @@ -747,13 +764,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.
|
| @@ -765,15 +782,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();
|
| @@ -783,7 +801,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);
|
| @@ -797,7 +816,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();
|
| @@ -827,7 +846,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();
|
| @@ -916,7 +935,7 @@ bool ChromeUserManager::UpdateAndCleanUpPublicAccounts(
|
| return true;
|
| }
|
|
|
| -void ChromeUserManager::UpdatePublicAccountDisplayName(
|
| +void ChromeUserManagerImpl::UpdatePublicAccountDisplayName(
|
| const std::string& user_id) {
|
| std::string display_name;
|
|
|
| @@ -931,14 +950,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())
|
| @@ -946,14 +965,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()) {
|
| @@ -962,44 +981,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.
|
|
|