diff options
author | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 09:22:58 +0000 |
---|---|---|
committer | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 09:22:58 +0000 |
commit | b96c9db0b4ac10bf24c220149c074b5f27fe4a4f (patch) | |
tree | 305014dd85fd28832ebc1b5acda4865747583241 | |
parent | 861bdb5554f52e520b302280f5fa0db14e74d9f7 (diff) | |
download | chromium_src-b96c9db0b4ac10bf24c220149c074b5f27fe4a4f.zip chromium_src-b96c9db0b4ac10bf24c220149c074b5f27fe4a4f.tar.gz chromium_src-b96c9db0b4ac10bf24c220149c074b5f27fe4a4f.tar.bz2 |
[cros] user_manager component - move UserManagerBase and UserManager
* Move UserManager test helper classes in their own files
* Move RemoveUserDelegate to user_manager component
* Move UserManager ownership to BrowserProcessPlatformPart
* UserManager::Get() still stays but instance is explicitly initialized/cleared with instance->Initialize()|Destroy()
* ScopedUserManagerEnabler / ScopedTestUserManager classes still work
* Introduce ChromeUserManager base class (impl: ChromeUserManagerImpl)
* ChromeUserManager adds getters for MultiProfileUserController, UserImageManager, SupervisedUserManager.
All clients that were using these methods now access ChromeUserManager instance through ChromeUserManager::Get().
* FakeUserManager/MockUserManager implement ChromeUserManager
* Move *UserFlow() methods out of UserManager to ChromeUserManager
BUG=387614
TBR=thestig,benwells
Review URL: https://codereview.chromium.org/444903002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289827 0039d316-1c4b-4281-b951-d872f2087c98
291 files changed, 3092 insertions, 2602 deletions
@@ -6,6 +6,7 @@ include_rules = [ "+content/public/test", "+components/keyed_service", "+components/pref_registry/pref_registry_syncable.h", + "+components/user_manager", "+components/web_modal", "+extensions", "+net/base", diff --git a/apps/launcher.cc b/apps/launcher.cc index ca463de..aabbc64 100644 --- a/apps/launcher.cc +++ b/apps/launcher.cc @@ -4,8 +4,8 @@ #include "apps/launcher.h" -#include <utility> #include <set> +#include <utility> #include "base/command_line.h" #include "base/file_util.h" @@ -40,7 +40,7 @@ #include "url/gurl.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif namespace app_runtime = extensions::core_api::app_runtime; @@ -318,7 +318,7 @@ void LaunchPlatformAppWithCommandLine(Profile* profile, if (extensions::KioskModeInfo::IsKioskOnly(extension)) { bool in_kiosk_mode = false; #if defined(OS_CHROMEOS) - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); in_kiosk_mode = user_manager && user_manager->IsLoggedInAsKioskApp(); #endif if (!in_kiosk_mode) { diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 7bf9348..2142b00 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -66,6 +66,7 @@ include_rules = [ "+components/translate/core/browser", "+components/translate/core/common", "+components/url_matcher", + "+components/user_manager", "+components/user_prefs", "+components/web_modal", "+components/webdata/common", diff --git a/chrome/browser/apps/app_browsertest.cc b/chrome/browser/apps/app_browsertest.cc index cc78c10..a3572de 100644 --- a/chrome/browser/apps/app_browsertest.cc +++ b/chrome/browser/apps/app_browsertest.cc @@ -50,7 +50,7 @@ #if defined(OS_CHROMEOS) #include "base/memory/scoped_ptr.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/fake_dbus_thread_manager.h" #include "chromeos/dbus/fake_power_manager_client.h" diff --git a/chrome/browser/background/background_mode_manager_unittest.cc b/chrome/browser/background/background_mode_manager_unittest.cc index ec0d276..e1327aa 100644 --- a/chrome/browser/background/background_mode_manager_unittest.cc +++ b/chrome/browser/background/background_mode_manager_unittest.cc @@ -27,7 +27,7 @@ #include "ui/message_center/message_center.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/browser_process_platform_part_chromeos.cc b/chrome/browser/browser_process_platform_part_chromeos.cc index c6ce937..da30ee0 100644 --- a/chrome/browser/browser_process_platform_part_chromeos.cc +++ b/chrome/browser/browser_process_platform_part_chromeos.cc @@ -10,6 +10,7 @@ #include "base/time/tick_clock.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/session/chrome_session_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" #include "chrome/browser/chromeos/memory/oom_priority_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -35,6 +36,18 @@ void BrowserProcessPlatformPart::ShutdownAutomaticRebootManager() { automatic_reboot_manager_.reset(); } +void BrowserProcessPlatformPart::InitializeChromeUserManager() { + DCHECK(!chrome_user_manager_); + chrome_user_manager_ = + chromeos::ChromeUserManagerImpl::CreateChromeUserManager(); + chrome_user_manager_->Initialize(); +} + +void BrowserProcessPlatformPart::DestroyChromeUserManager() { + chrome_user_manager_->Destroy(); + chrome_user_manager_.reset(); +} + void BrowserProcessPlatformPart::InitializeSessionManager( const base::CommandLine& parsed_command_line, Profile* profile, diff --git a/chrome/browser/browser_process_platform_part_chromeos.h b/chrome/browser/browser_process_platform_part_chromeos.h index 8fe87aa..06e8b64 100644 --- a/chrome/browser/browser_process_platform_part_chromeos.h +++ b/chrome/browser/browser_process_platform_part_chromeos.h @@ -15,6 +15,7 @@ class CommandLine; } namespace chromeos { +class ChromeUserManager; class OomPriorityManager; class ProfileHelper; } @@ -45,6 +46,9 @@ class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase, void InitializeAutomaticRebootManager(); void ShutdownAutomaticRebootManager(); + void InitializeChromeUserManager(); + void DestroyChromeUserManager(); + void InitializeSessionManager(const base::CommandLine& parsed_command_line, Profile* profile, bool is_running_test); @@ -69,6 +73,10 @@ class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase, policy::BrowserPolicyConnectorChromeOS* browser_policy_connector_chromeos(); + chromeos::ChromeUserManager* user_manager() { + return chrome_user_manager_.get(); + } + // Overridden from BrowserProcessPlatformPartBase: virtual void StartTearDown() OVERRIDE; @@ -88,6 +96,8 @@ class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase, scoped_ptr<chromeos::system::AutomaticRebootManager> automatic_reboot_manager_; + scoped_ptr<chromeos::ChromeUserManager> chrome_user_manager_; + DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPart); }; diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc index 27bd3fa..86db7fb 100644 --- a/chrome/browser/browsing_data/browsing_data_remover.cc +++ b/chrome/browser/browsing_data/browsing_data_remover.cc @@ -75,7 +75,6 @@ #include "webkit/common/quota/quota_types.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chromeos/attestation/attestation_constants.h" #include "chromeos/dbus/cryptohome_client.h" diff --git a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc index 3b0c8d8..15c5b01 100644 --- a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc +++ b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc @@ -55,7 +55,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chromeos/dbus/dbus_thread_manager.h" diff --git a/chrome/browser/chrome_browser_field_trials_desktop.cc b/chrome/browser/chrome_browser_field_trials_desktop.cc index ac1cfe2..ce62911 100644 --- a/chrome/browser/chrome_browser_field_trials_desktop.cc +++ b/chrome/browser/chrome_browser_field_trials_desktop.cc @@ -27,10 +27,6 @@ #include "net/spdy/spdy_session.h" #include "ui/base/layout.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" -#endif - namespace chrome { namespace { diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index f10e0ae..17b99db 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -154,9 +154,9 @@ #include "chrome/browser/chromeos/fileapi/file_system_backend.h" #include "chrome/browser/chromeos/fileapi/mtp_file_system_backend_delegate.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/system/input_device_settings.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #elif defined(OS_LINUX) #include "chrome/browser/chrome_browser_main_linux.h" #elif defined(OS_ANDROID) @@ -390,7 +390,7 @@ bool HandleWebUI(GURL* url, content::BrowserContext* browser_context) { // Special case : in ChromeOS in Guest mode bookmarks and history are // disabled for security reasons. New tab page explains the reasons, so // we redirect user to new tab page. - if (chromeos::UserManager::Get()->IsLoggedInAsGuest()) { + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) { if (url->SchemeIs(content::kChromeUIScheme) && (url->DomainIs(chrome::kChromeUIBookmarksHost) || url->DomainIs(chrome::kChromeUIHistoryHost))) { diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc index bdfa489..3a6089f 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc @@ -32,7 +32,6 @@ #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/webui_login_view.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/component_loader.h" #include "chrome/browser/extensions/extension_service.h" @@ -48,6 +47,7 @@ #include "chromeos/audio/chromeos_sounds.h" #include "chromeos/ime/input_method_manager.h" #include "chromeos/login/login_state.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_accessibility_state.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" @@ -469,9 +469,8 @@ void AccessibilityManager::UpdateLargeCursorFromPref() { } bool AccessibilityManager::IsIncognitoAllowed() { - UserManager* user_manager = UserManager::Get(); // Supervised users can't create incognito-mode windows. - return !(user_manager->IsLoggedInAsSupervisedUser()); + return !(user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()); } bool AccessibilityManager::IsLargeCursorEnabled() { diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager_browsertest.cc b/chrome/browser/chromeos/accessibility/accessibility_manager_browsertest.cc index cb3f8ea..b81ecee 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_manager_browsertest.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_manager_browsertest.cc @@ -13,7 +13,6 @@ #include "chrome/browser/chromeos/accessibility/magnification_manager.h" #include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/login_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/preferences.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/api/braille_display_private/mock_braille_controller.h" @@ -28,6 +27,7 @@ #include "chromeos/ime/component_extension_ime_manager.h" #include "chromeos/ime/input_method_manager.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" @@ -272,7 +272,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, Login) { EXPECT_EQ(default_autoclick_delay(), GetAutoclickDelay()); // Logs in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that the features still disabled just after login. EXPECT_FALSE(IsLargeCursorEnabled()); @@ -282,7 +283,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, Login) { EXPECT_FALSE(IsVirtualKeyboardEnabled()); EXPECT_EQ(default_autoclick_delay(), GetAutoclickDelay()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the features are still disabled just after login. EXPECT_FALSE(IsLargeCursorEnabled()); @@ -333,8 +334,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, BrailleOnLoginScreen) { IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, TypePref) { // Logs in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the features are disabled just after login. EXPECT_FALSE(IsLargeCursorEnabled()); @@ -392,7 +394,8 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, TypePref) { IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, ResumeSavedPref) { // Loads the profile of the user. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Sets the pref to enable large cursor before login. SetLargeCursorEnabledPref(true); @@ -420,7 +423,7 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, ResumeSavedPref) { EXPECT_FALSE(IsVirtualKeyboardEnabled()); // Logs in. - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that features are enabled by restoring from pref just after login. EXPECT_TRUE(IsLargeCursorEnabled()); @@ -436,8 +439,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, MockAccessibilityObserver observer; // Logs in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); EXPECT_FALSE(observer.observed()); observer.reset(); @@ -495,8 +499,9 @@ IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, MockAccessibilityObserver observer; // Logs in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); EXPECT_FALSE(observer.observed()); observer.reset(); @@ -588,7 +593,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityManagerUserTypeTest, // Logs in. const char* user_name = GetParam(); - UserManager::Get()->UserLoggedIn(user_name, user_name, true); + user_manager::UserManager::Get()->UserLoggedIn(user_name, user_name, true); // Confirms that the features are still enabled just after login. EXPECT_TRUE(IsLargeCursorEnabled()); @@ -597,7 +602,7 @@ IN_PROC_BROWSER_TEST_P(AccessibilityManagerUserTypeTest, EXPECT_TRUE(IsAutoclickEnabled()); EXPECT_EQ(kTestAutoclickDelayMs, GetAutoclickDelay()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the features keep enabled after session starts. EXPECT_TRUE(IsLargeCursorEnabled()); @@ -617,13 +622,14 @@ IN_PROC_BROWSER_TEST_P(AccessibilityManagerUserTypeTest, IN_PROC_BROWSER_TEST_P(AccessibilityManagerUserTypeTest, BrailleWhenLoggedIn) { // Logs in. const char* user_name = GetParam(); - UserManager::Get()->UserLoggedIn(user_name, user_name, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn(user_name, user_name, true); + user_manager::UserManager::Get()->SessionStarted(); // This object watches for IME preference changes and reflects those in // the IME framework state. chromeos::Preferences prefs; - prefs.InitUserPrefsForTesting(PrefServiceSyncable::FromProfile(GetProfile()), - UserManager::Get()->GetActiveUser()); + prefs.InitUserPrefsForTesting( + PrefServiceSyncable::FromProfile(GetProfile()), + user_manager::UserManager::Get()->GetActiveUser()); // Make sure we start in the expected state. EXPECT_FALSE(IsBrailleImeActive()); @@ -660,8 +666,9 @@ IN_PROC_BROWSER_TEST_P(AccessibilityManagerUserTypeTest, BrailleWhenLoggedIn) { IN_PROC_BROWSER_TEST_F(AccessibilityManagerTest, AcessibilityMenuVisibility) { // Log in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the features are disabled. EXPECT_FALSE(IsLargeCursorEnabled()); diff --git a/chrome/browser/chromeos/accessibility/magnification_manager.cc b/chrome/browser/chromeos/accessibility/magnification_manager.cc index 0584e27..8f47444 100644 --- a/chrome/browser/chromeos/accessibility/magnification_manager.cc +++ b/chrome/browser/chromeos/accessibility/magnification_manager.cc @@ -18,7 +18,6 @@ #include "base/prefs/pref_service.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" diff --git a/chrome/browser/chromeos/accessibility/magnification_manager_browsertest.cc b/chrome/browser/chromeos/accessibility/magnification_manager_browsertest.cc index 99921d9..719a633 100644 --- a/chrome/browser/chromeos/accessibility/magnification_manager_browsertest.cc +++ b/chrome/browser/chromeos/accessibility/magnification_manager_browsertest.cc @@ -14,7 +14,6 @@ #include "chrome/browser/chromeos/accessibility/magnification_manager.h" #include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/login_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/chrome_switches.h" @@ -22,6 +21,7 @@ #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/testing_profile.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #include "components/user_prefs/user_prefs.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" @@ -96,7 +96,7 @@ bool GetScreenMagnifierEnabledFromPref() { // the profile is regarded as "non new" in the next login. This is used in // PRE_XXX cases so that in the main XXX case we can test non new profiles. void PrepareNonNewProfile(const std::string& name) { - UserManager::Get()->UserLoggedIn(name, name, true); + user_manager::UserManager::Get()->UserLoggedIn(name, name, true); // To prepare a non-new profile for tests, we must ensure the profile // directory and the preference files are created, because that's what // Profile::IsNewProfile() checks. UserLoggedIn(), however, does not yet @@ -184,12 +184,13 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToOff) { EXPECT_FALSE(IsMagnifierEnabled()); // Logs in with existing profile. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is still disabled just after login. EXPECT_FALSE(IsMagnifierEnabled()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is still disabled just after session starts. EXPECT_FALSE(IsMagnifierEnabled()); @@ -223,13 +224,14 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToOff) { EXPECT_EQ(2.5, GetFullScreenMagnifierScale()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping enabled. EXPECT_TRUE(IsMagnifierEnabled()); EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is disabled just after session start. EXPECT_FALSE(IsMagnifierEnabled()); @@ -252,12 +254,13 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToFull) { EXPECT_FALSE(IsMagnifierEnabled()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping disabled. EXPECT_FALSE(IsMagnifierEnabled()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the magnifier is enabled and configured according to the // explicitly set prefs just after session start. @@ -287,13 +290,14 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToFull) { EXPECT_EQ(3.0, GetFullScreenMagnifierScale()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping enabled. EXPECT_TRUE(IsMagnifierEnabled()); EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the magnifier is enabled and configured according to the // explicitly set prefs just after session start. @@ -316,13 +320,14 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToUnset) { EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping enabled. EXPECT_TRUE(IsMagnifierEnabled()); EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is disabled. EXPECT_FALSE(IsMagnifierEnabled()); @@ -337,12 +342,13 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginAsNewUserOff) { SetMagnifierEnabled(false); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping disabled. EXPECT_FALSE(IsMagnifierEnabled()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is keeping disabled. EXPECT_FALSE(IsMagnifierEnabled()); @@ -359,13 +365,14 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginAsNewUserFull) { EXPECT_EQ(2.5, GetFullScreenMagnifierScale()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping enabled. EXPECT_TRUE(IsMagnifierEnabled()); EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier keeps enabled. EXPECT_TRUE(IsMagnifierEnabled()); @@ -379,12 +386,13 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginAsNewUserUnset) { EXPECT_FALSE(IsMagnifierEnabled()); // Logs in (but the session is not started yet). - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); // Confirms that magnifier is keeping disabled. EXPECT_FALSE(IsMagnifierEnabled()); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is keeping disabled. EXPECT_FALSE(IsMagnifierEnabled()); @@ -450,8 +458,9 @@ IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ChangeMagnifierType) { IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, TypePref) { // Logs in - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that magnifier is disabled just after login. EXPECT_FALSE(IsMagnifierEnabled()); diff --git a/chrome/browser/chromeos/app_mode/app_session_lifetime.cc b/chrome/browser/chromeos/app_mode/app_session_lifetime.cc index 6fa8455..7095824 100644 --- a/chrome/browser/chromeos/app_mode/app_session_lifetime.cc +++ b/chrome/browser/chromeos/app_mode/app_session_lifetime.cc @@ -15,7 +15,6 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_update_service.h" #include "chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.h" #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/profiles/profile.h" @@ -27,6 +26,7 @@ #include "chrome/common/pref_names.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_contents.h" using apps::AppWindowRegistry; @@ -54,7 +54,7 @@ class AppWindowHandler : public AppWindowRegistry::Observer { virtual void OnAppWindowRemoved(apps::AppWindow* app_window) OVERRIDE { if (window_registry_->app_windows().empty()) { if (DemoAppLauncher::IsDemoAppSession( - chromeos::UserManager::Get()->GetActiveUser()->email())) { + user_manager::UserManager::Get()->GetActiveUser()->email())) { // If we were in demo mode, we disabled all our network technologies, // re-enable them. NetworkStateHandler* handler = @@ -129,7 +129,7 @@ void InitAppSession(Profile* profile, const std::string& app_id) { // For a demo app, we don't need to either setup the update service or // the idle app name notification. if (DemoAppLauncher::IsDemoAppSession( - chromeos::UserManager::Get()->GetActiveUser()->email())) + user_manager::UserManager::Get()->GetActiveUser()->email())) return; // Set the app_id for the current instance of KioskAppUpdateService. diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc index d5acb4c..e4e7b0e5 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc @@ -20,7 +20,6 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_data.h" #include "chrome/browser/chromeos/app_mode/kiosk_app_external_loader.h" #include "chrome/browser/chromeos/app_mode/kiosk_app_manager_observer.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/chromeos/settings/cros_settings.h" diff --git a/chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.cc b/chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.cc index c0cee0b..52cba04 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.cc @@ -8,12 +8,12 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/logging.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ui/idle_app_name_notification_view.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/chrome_switches.h" #include "chromeos/dbus/dbus_thread_manager.h" +#include "components/user_manager/user_manager.h" #include "extensions/browser/extension_system.h" #include "ui/wm/core/user_activity_detector.h" @@ -68,7 +68,7 @@ KioskModeIdleAppNameNotification::~KioskModeIdleAppNameNotification() { } void KioskModeIdleAppNameNotification::Setup() { - DCHECK(UserManager::Get()->IsUserLoggedIn()); + DCHECK(user_manager::UserManager::Get()->IsUserLoggedIn()); Start(); } diff --git a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc index fcb46a4..5e7d1bf 100644 --- a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc +++ b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc @@ -15,7 +15,6 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" #include "chrome/browser/chromeos/app_mode/kiosk_diagnosis_runner.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/install_tracker.h" #include "chrome/browser/extensions/install_tracker_factory.h" @@ -30,6 +29,7 @@ #include "chrome/common/extensions/manifest_url_handler.h" #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "extensions/browser/extension_system.h" @@ -333,7 +333,7 @@ void StartupAppLauncher::LaunchApp() { NEW_WINDOW)); InitAppSession(profile_, app_id_); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); content::NotificationService::current()->Notify( chrome::NOTIFICATION_KIOSK_APP_LAUNCHED, diff --git a/chrome/browser/chromeos/attestation/platform_verification_flow.h b/chrome/browser/chromeos/attestation/platform_verification_flow.h index 8c50312..b6571a4 100644 --- a/chrome/browser/chromeos/attestation/platform_verification_flow.h +++ b/chrome/browser/chromeos/attestation/platform_verification_flow.h @@ -37,7 +37,6 @@ class PrefRegistrySyncable; namespace chromeos { class CryptohomeClient; -class UserManager; namespace attestation { diff --git a/chrome/browser/chromeos/background/ash_user_wallpaper_delegate.cc b/chrome/browser/chromeos/background/ash_user_wallpaper_delegate.cc index 717e495..4dc4584 100644 --- a/chrome/browser/chromeos/background/ash_user_wallpaper_delegate.cc +++ b/chrome/browser/chromeos/background/ash_user_wallpaper_delegate.cc @@ -12,12 +12,12 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/extensions/wallpaper_manager_util.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/login_state.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" namespace chromeos { @@ -106,7 +106,7 @@ class UserWallpaperDelegate : public ash::UserWallpaperDelegate { return false; } const user_manager::User* user = - chromeos::UserManager::Get()->GetActiveUser(); + user_manager::UserManager::Get()->GetActiveUser(); if (!user) return false; if (chromeos::WallpaperManager::Get()->IsPolicyControlled(user->email())) diff --git a/chrome/browser/chromeos/boot_times_loader.cc b/chrome/browser/chromeos/boot_times_loader.cc index db542f0..eb4633e 100644 --- a/chrome/browser/chromeos/boot_times_loader.cc +++ b/chrome/browser/chromeos/boot_times_loader.cc @@ -27,12 +27,12 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/auth/authentication_notification_details.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_iterator.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/notification_service.h" @@ -514,7 +514,7 @@ void BootTimesLoader::Observe( if (render_widget_hosts_loading_.find(rwh) != render_widget_hosts_loading_.end()) { AddLoginTimeMarker("TabPaint: " + GetTabUrl(rwh), false); - LoginDone(UserManager::Get()->IsCurrentUserNew()); + LoginDone(user_manager::UserManager::Get()->IsCurrentUserNew()); } break; } diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc index b48fe8e..70d37a83 100644 --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc @@ -49,7 +49,7 @@ #include "chrome/browser/chromeos/login/login_wizard.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/memory/oom_priority_manager.h" @@ -107,6 +107,7 @@ #include "components/metrics/metrics_service.h" #include "components/session_manager/core/session_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/power_save_blocker.h" @@ -341,7 +342,7 @@ void ChromeBrowserMainPartsChromeos::PreProfileInit() { // -- This used to be in ChromeBrowserMainParts::PreMainMessageLoopRun() // -- just before CreateProfile(). - UserManager::Initialize(); + g_browser_process->platform_part()->InitializeChromeUserManager(); // Initialize the screen locker now so that it can receive // LOGIN_USER_CHANGED notification from UserManager. @@ -415,7 +416,7 @@ void ChromeBrowserMainPartsChromeos::PreProfileInit() { if (immediate_login) { const std::string user_id = login::CanonicalizeUserID( parsed_command_line().GetSwitchValueASCII(switches::kLoginUser)); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (policy::IsDeviceLocalAccountUser(user_id, NULL) && !user_manager->IsKnownUser(user_id)) { @@ -530,7 +531,7 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() { // Guest user profile is never initialized with locale settings, // so we need special handling for Guest session. - if (UserManager::Get()->IsLoggedInAsGuest()) + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) SetGuestLocale(profile()); // These observers must be initialized after the profile because @@ -692,7 +693,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { // of the CrosSettings singleton before it is destroyed. This also ensures // that the UserManager has no URLRequest pending (see // http://crbug.com/276659). - UserManager::Get()->Shutdown(); + g_browser_process->platform_part()->user_manager()->Shutdown(); WallpaperManager::Get()->Shutdown(); // Let the AutomaticRebootManager unregister itself as an observer of several @@ -724,7 +725,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { // parts of WebUI depends on NetworkPortalDetector. NetworkPortalDetector::Shutdown(); - UserManager::Destroy(); + g_browser_process->platform_part()->DestroyChromeUserManager(); g_browser_process->platform_part()->ShutdownSessionManager(); } diff --git a/chrome/browser/chromeos/display/display_preferences.cc b/chrome/browser/chromeos/display/display_preferences.cc index a9f7927..9614c15 100644 --- a/chrome/browser/chromeos/display/display_preferences.cc +++ b/chrome/browser/chromeos/display/display_preferences.cc @@ -17,8 +17,8 @@ #include "base/strings/string_util.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/common/pref_names.h" +#include "components/user_manager/user_manager.h" #include "third_party/cros_system_api/dbus/service_constants.h" #include "ui/gfx/display.h" #include "ui/gfx/insets.h" @@ -98,7 +98,7 @@ ash::DisplayManager* GetDisplayManager() { // Returns true id the current user can write display preferences to // Local State. bool UserCanSaveDisplayPreference() { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); return user_manager->IsUserLoggedIn() && (user_manager->IsLoggedInAsRegularUser() || user_manager->IsLoggedInAsSupervisedUser() || diff --git a/chrome/browser/chromeos/display/display_preferences_unittest.cc b/chrome/browser/chromeos/display/display_preferences_unittest.cc index 7a0f998..658ec54 100644 --- a/chrome/browser/chromeos/display/display_preferences_unittest.cc +++ b/chrome/browser/chromeos/display/display_preferences_unittest.cc @@ -22,7 +22,7 @@ #include "base/values.h" #include "chrome/browser/chromeos/display/display_configuration_observer.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_browser_process.h" #include "ui/display/chromeos/display_configurator.h" diff --git a/chrome/browser/chromeos/drive/drive_notification_manager_factory_browsertest.cc b/chrome/browser/chromeos/drive/drive_notification_manager_factory_browsertest.cc index 6773e65..3ce0b1b 100644 --- a/chrome/browser/chromeos/drive/drive_notification_manager_factory_browsertest.cc +++ b/chrome/browser/chromeos/drive/drive_notification_manager_factory_browsertest.cc @@ -6,13 +6,13 @@ #include "base/command_line.h" #include "base/compiler_specific.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" #include "chrome/test/base/in_process_browser_test.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #include "testing/gtest/include/gtest/gtest.h" namespace drive { @@ -52,7 +52,7 @@ class DriveNotificationManagerFactoryGuestBrowserTest // profile or the guest profile while a guest session is in progress. IN_PROC_BROWSER_TEST_F(DriveNotificationManagerFactoryGuestBrowserTest, NoDriveNotificationManager) { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); EXPECT_TRUE(user_manager->IsLoggedInAsGuest()); Profile* guest_profile = chromeos::ProfileHelper::Get() diff --git a/chrome/browser/chromeos/drive/file_system_util.cc b/chrome/browser/chromeos/drive/file_system_util.cc index f20dbf7..db8043c 100644 --- a/chrome/browser/chromeos/drive/file_system_util.cc +++ b/chrome/browser/chromeos/drive/file_system_util.cc @@ -36,6 +36,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chromeos/chromeos_constants.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "net/base/escape.h" #include "webkit/browser/fileapi/file_system_url.h" @@ -121,7 +122,7 @@ base::FilePath GetDriveMountPointPath(Profile* profile) { // returns currently active users's hash in such a case.) I still try // ProfileHelper first because it works better in tests. user_manager::User* const user = - chromeos::UserManager::IsInitialized() + user_manager::UserManager::IsInitialized() ? chromeos::ProfileHelper::Get()->GetUserByProfile( profile->GetOriginalProfile()) : NULL; diff --git a/chrome/browser/chromeos/events/event_rewriter.cc b/chrome/browser/chromeos/events/event_rewriter.cc index 62cff07..314a3ec 100644 --- a/chrome/browser/chromeos/events/event_rewriter.cc +++ b/chrome/browser/chromeos/events/event_rewriter.cc @@ -16,12 +16,12 @@ #include "base/strings/string_util.h" #include "base/sys_info.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/pref_names.h" #include "chromeos/chromeos_switches.h" #include "chromeos/ime/ime_keyboard.h" #include "chromeos/ime/input_method_manager.h" +#include "components/user_manager/user_manager.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" #include "ui/events/keycodes/keyboard_code_conversion.h" @@ -510,7 +510,7 @@ void EventRewriter::RewriteModifierKeys(const ui::KeyEvent& key_event, // TODO(glotov): remove the following condition when we do not restart chrome // when user logs in as guest. // TODO(kpschoedel): check whether this is still necessary. - if (UserManager::Get()->IsLoggedInAsGuest() && + if (user_manager::UserManager::Get()->IsLoggedInAsGuest() && LoginDisplayHostImpl::default_host()) return; diff --git a/chrome/browser/chromeos/events/event_rewriter_unittest.cc b/chrome/browser/chromeos/events/event_rewriter_unittest.cc index f3e2b43..db71419 100644 --- a/chrome/browser/chromeos/events/event_rewriter_unittest.cc +++ b/chrome/browser/chromeos/events/event_rewriter_unittest.cc @@ -18,7 +18,7 @@ #include "chrome/browser/chromeos/input_method/input_method_configuration.h" #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/preferences.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_pref_service_syncable.h" diff --git a/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc b/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc index 14e3927..1b33924 100644 --- a/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc +++ b/chrome/browser/chromeos/events/keyboard_driven_event_rewriter.cc @@ -5,8 +5,8 @@ #include "chrome/browser/chromeos/events/keyboard_driven_event_rewriter.h" #include "chrome/browser/chromeos/events/event_rewriter.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/system/input_device_settings.h" +#include "components/user_manager/user_manager.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" @@ -19,8 +19,8 @@ const int kModifierMask = ui::EF_SHIFT_DOWN; // Returns true if and only if it is on login screen (i.e. user is not logged // in) and the keyboard driven flag in the OEM manifest is on. bool ShouldStripModifiersForArrowKeysAndEnter() { - if (UserManager::IsInitialized() && - !UserManager::Get()->IsSessionStarted()) { + if (user_manager::UserManager::IsInitialized() && + !user_manager::UserManager::Get()->IsSessionStarted()) { return system::InputDeviceSettings::Get() ->ForceKeyboardDrivenUINavigation(); } diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc index 14567a4..094e5ff 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc @@ -18,7 +18,6 @@ #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" #include "chrome/browser/chromeos/file_manager/app_installer.h" #include "chrome/browser/chromeos/file_manager/zip_file_creator.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/devtools/devtools_window.h" @@ -36,6 +35,7 @@ #include "chrome/common/pref_names.h" #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" #include "content/public/common/page_zoom.h" @@ -63,7 +63,7 @@ apps::AppWindow* GetCurrentAppWindow(ChromeSyncExtensionFunction* function) { std::vector<linked_ptr<api::file_browser_private::ProfileInfo> > GetLoggedInProfileInfoList(content::WebContents* contents) { - DCHECK(chromeos::UserManager::IsInitialized()); + DCHECK(user_manager::UserManager::IsInitialized()); const std::vector<Profile*>& profiles = g_browser_process->profile_manager()->GetLoadedProfiles(); std::set<Profile*> original_profiles; @@ -112,7 +112,7 @@ bool FileBrowserPrivateLogoutUserForReauthenticationFunction::RunSync() { user_manager::User* user = chromeos::ProfileHelper::Get()->GetUserByProfile(GetProfile()); if (user) { - chromeos::UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( user->email(), user_manager::User::OAUTH2_TOKEN_STATUS_INVALID); } diff --git a/chrome/browser/chromeos/extensions/info_private_api.cc b/chrome/browser/chromeos/extensions/info_private_api.cc index c62e648..dbe59d1 100644 --- a/chrome/browser/chromeos/extensions/info_private_api.cc +++ b/chrome/browser/chromeos/extensions/info_private_api.cc @@ -11,7 +11,6 @@ #include "chrome/browser/app_mode/app_mode_utils.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/system/timezone_util.h" @@ -23,6 +22,7 @@ #include "chromeos/settings/cros_settings_names.h" #include "chromeos/system/statistics_provider.h" #include "components/metrics/metrics_service.h" +#include "components/user_manager/user_manager.h" #include "extensions/common/error_utils.h" #include "third_party/cros_system_api/dbus/service_constants.h" @@ -182,7 +182,7 @@ base::Value* ChromeosInfoPrivateGetFunction::GetValue( return new base::StringValue(base::SysInfo::GetLsbReleaseBoard()); } else if (property_name == kPropertyOwner) { return new base::FundamentalValue( - chromeos::UserManager::Get()->IsCurrentUserOwner()); + user_manager::UserManager::Get()->IsCurrentUserOwner()); } else if (property_name == kPropertyClientId) { return new base::StringValue(GetClientId()); } else if (property_name == kPropertyTimezone) { diff --git a/chrome/browser/chromeos/extensions/wallpaper_api.cc b/chrome/browser/chromeos/extensions/wallpaper_api.cc index 1b1ae37..e994f2d 100644 --- a/chrome/browser/chromeos/extensions/wallpaper_api.cc +++ b/chrome/browser/chromeos/extensions/wallpaper_api.cc @@ -12,13 +12,13 @@ #include "base/strings/stringprintf.h" #include "base/threading/worker_pool.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/pref_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "net/base/load_flags.h" #include "net/http/http_status_code.h" #include "net/url_request/url_fetcher.h" @@ -100,9 +100,9 @@ bool WallpaperSetWallpaperFunction::RunAsync() { EXTENSION_FUNCTION_VALIDATE(params_); // Gets email address and username hash while at UI thread. - user_id_ = chromeos::UserManager::Get()->GetLoggedInUser()->email(); + user_id_ = user_manager::UserManager::Get()->GetLoggedInUser()->email(); user_id_hash_ = - chromeos::UserManager::Get()->GetLoggedInUser()->username_hash(); + user_manager::UserManager::Get()->GetLoggedInUser()->username_hash(); if (params_->details.wallpaper_data) { StartDecode(*params_->details.wallpaper_data); @@ -138,7 +138,7 @@ void WallpaperSetWallpaperFunction::OnWallpaperDecoded( ash::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( set_wallpaper::Params::Details::ToString(params_->details.layout)); bool update_wallpaper = - user_id_ == chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); wallpaper_manager->SetCustomWallpaper(user_id_, user_id_hash_, params_->details.name, diff --git a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc index a9b181a..045fa11 100644 --- a/chrome/browser/chromeos/extensions/wallpaper_private_api.cc +++ b/chrome/browser/chromeos/extensions/wallpaper_private_api.cc @@ -22,7 +22,6 @@ #include "base/strings/stringprintf.h" #include "base/threading/worker_pool.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_paths.h" @@ -30,6 +29,7 @@ #include "chrome/grit/generated_resources.h" #include "chrome/grit/platform_locale_settings.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/event_router.h" #include "ui/base/l10n/l10n_util.h" @@ -301,7 +301,7 @@ bool WallpaperPrivateSetWallpaperIfExistsFunction::RunAsync() { params = set_wallpaper_if_exists::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params); - user_id_ = chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ = user_manager::UserManager::Get()->GetActiveUser()->email(); base::FilePath wallpaper_path; base::FilePath fallback_path; @@ -372,11 +372,11 @@ void WallpaperPrivateSetWallpaperIfExistsFunction::OnWallpaperDecoded( wallpaper_private::ToString(params->layout)); bool update_wallpaper = - user_id_ == chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); wallpaper_manager->SetWallpaperFromImageSkia( user_id_, image, layout, update_wallpaper); - bool is_persistent = - !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral(); + bool is_persistent = !user_manager::UserManager::Get() + ->IsCurrentUserNonCryptohomeDataEphemeral(); chromeos::WallpaperInfo info = {params->url, layout, user_manager::User::ONLINE, base::Time::Now().LocalMidnight()}; @@ -408,7 +408,7 @@ bool WallpaperPrivateSetWallpaperFunction::RunAsync() { EXTENSION_FUNCTION_VALIDATE(params); // Gets email address while at UI thread. - user_id_ = chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ = user_manager::UserManager::Get()->GetActiveUser()->email(); StartDecode(params->wallpaper); @@ -482,12 +482,12 @@ void WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper( wallpaper_private::ToString(params->layout)); bool update_wallpaper = - user_id_ == chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); wallpaper_manager->SetWallpaperFromImageSkia( user_id_, *image.get(), layout, update_wallpaper); - bool is_persistent = - !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral(); + bool is_persistent = !user_manager::UserManager::Get() + ->IsCurrentUserNonCryptohomeDataEphemeral(); chromeos::WallpaperInfo info = {params->url, layout, user_manager::User::ONLINE, base::Time::Now().LocalMidnight()}; @@ -510,7 +510,7 @@ WallpaperPrivateResetWallpaperFunction:: bool WallpaperPrivateResetWallpaperFunction::RunAsync() { chromeos::WallpaperManager* wallpaper_manager = chromeos::WallpaperManager::Get(); - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); std::string user_id = user_manager->GetActiveUser()->email(); wallpaper_manager->RemoveUserWallpaperInfo(user_id); @@ -544,9 +544,9 @@ bool WallpaperPrivateSetCustomWallpaperFunction::RunAsync() { EXTENSION_FUNCTION_VALIDATE(params); // Gets email address and username hash while at UI thread. - user_id_ = chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ = user_manager::UserManager::Get()->GetActiveUser()->email(); user_id_hash_ = - chromeos::UserManager::Get()->GetActiveUser()->username_hash(); + user_manager::UserManager::Get()->GetActiveUser()->username_hash(); StartDecode(params->wallpaper); @@ -571,7 +571,7 @@ void WallpaperPrivateSetCustomWallpaperFunction::OnWallpaperDecoded( wallpaper_private::ToString(params->layout)); bool update_wallpaper = - user_id_ == chromeos::UserManager::Get()->GetActiveUser()->email(); + user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); wallpaper_manager->SetCustomWallpaper(user_id_, user_id_hash_, params->file_name, @@ -655,9 +655,10 @@ bool WallpaperPrivateSetCustomWallpaperLayoutFunction::RunAsync() { info.layout = wallpaper_api_util::GetLayoutEnum( wallpaper_private::ToString(params->layout)); - std::string email = chromeos::UserManager::Get()->GetActiveUser()->email(); - bool is_persistent = - !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral(); + std::string email = + user_manager::UserManager::Get()->GetActiveUser()->email(); + bool is_persistent = !user_manager::UserManager::Get() + ->IsCurrentUserNonCryptohomeDataEphemeral(); wallpaper_manager->SetUserWallpaperInfo(email, info, is_persistent); wallpaper_manager->UpdateWallpaper(false /* clear_cache */); SendResponse(true); @@ -676,7 +677,7 @@ WallpaperPrivateMinimizeInactiveWindowsFunction:: bool WallpaperPrivateMinimizeInactiveWindowsFunction::RunAsync() { WindowStateManager::MinimizeInactiveWindows( - chromeos::UserManager::Get()->GetActiveUser()->username_hash()); + user_manager::UserManager::Get()->GetActiveUser()->username_hash()); return true; } @@ -690,7 +691,7 @@ WallpaperPrivateRestoreMinimizedWindowsFunction:: bool WallpaperPrivateRestoreMinimizedWindowsFunction::RunAsync() { WindowStateManager::RestoreWindows( - chromeos::UserManager::Get()->GetActiveUser()->username_hash()); + user_manager::UserManager::Get()->GetActiveUser()->username_hash()); return true; } @@ -706,7 +707,8 @@ bool WallpaperPrivateGetThumbnailFunction::RunAsync() { EXTENSION_FUNCTION_VALIDATE(params); base::FilePath thumbnail_path; - std::string email = chromeos::UserManager::Get()->GetActiveUser()->email(); + std::string email = + user_manager::UserManager::Get()->GetActiveUser()->email(); if (params->source == get_thumbnail::Params::SOURCE_ONLINE) { std::string file_name = GURL(params->url_or_file).ExtractFileName(); CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, diff --git a/chrome/browser/chromeos/extensions/wallpaper_private_api_unittest.cc b/chrome/browser/chromeos/extensions/wallpaper_private_api_unittest.cc index 4b54e8f..3388d69 100644 --- a/chrome/browser/chromeos/extensions/wallpaper_private_api_unittest.cc +++ b/chrome/browser/chromeos/extensions/wallpaper_private_api_unittest.cc @@ -11,6 +11,7 @@ #include "base/memory/scoped_ptr.h" #include "chrome/browser/chromeos/extensions/wallpaper_private_api.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h" #include "ui/aura/test/test_windows.h" diff --git a/chrome/browser/chromeos/file_manager/external_filesystem_apitest.cc b/chrome/browser/chromeos/file_manager/external_filesystem_apitest.cc index 87a2ade..ecdfb71 100644 --- a/chrome/browser/chromeos/file_manager/external_filesystem_apitest.cc +++ b/chrome/browser/chromeos/file_manager/external_filesystem_apitest.cc @@ -11,7 +11,6 @@ #include "chrome/browser/chromeos/drive/drive_integration_service.h" #include "chrome/browser/chromeos/file_manager/drive_test_util.h" #include "chrome/browser/chromeos/file_manager/volume_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/drive/fake_drive_service.h" #include "chrome/browser/extensions/extension_apitest.h" @@ -20,6 +19,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" @@ -511,9 +511,8 @@ class MultiProfileDriveFileSystemExtensionApiTest : virtual void SetUpOnMainThread() OVERRIDE { base::FilePath user_data_directory; PathService::Get(chrome::DIR_USER_DATA, &user_data_directory); - chromeos::UserManager::Get()->UserLoggedIn(kSecondProfileAccount, - kSecondProfileHash, - false); + user_manager::UserManager::Get()->UserLoggedIn( + kSecondProfileAccount, kSecondProfileHash, false); // Set up the secondary profile. base::FilePath profile_dir = user_data_directory.Append( diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index 6e83da8..31c1c38 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc @@ -29,7 +29,6 @@ #include "chrome/browser/chromeos/file_manager/drive_test_util.h" #include "chrome/browser/chromeos/file_manager/path_util.h" #include "chrome/browser/chromeos/file_manager/volume_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/drive/fake_drive_service.h" #include "chrome/browser/extensions/component_loader.h" @@ -41,6 +40,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" #include "extensions/browser/api/test/test_api.h" @@ -1131,7 +1131,8 @@ class MultiProfileFileManagerBrowserTest : public FileManagerBrowserTestBase { // Adds a new user for testing to the current session. void AddUser(const TestAccountInfo& info, bool log_in) { - chromeos::UserManager* const user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* const user_manager = + user_manager::UserManager::Get(); if (log_in) user_manager->UserLoggedIn(info.email, info.hash, false); user_manager->SaveUserDisplayName(info.email, diff --git a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc index bd07eaf..21be58d 100644 --- a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc +++ b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc @@ -13,7 +13,7 @@ #include "base/values.h" #include "chrome/browser/chromeos/drive/file_system_util.h" #include "chrome/browser/chromeos/file_manager/app_id.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chrome/browser/drive/drive_app_registry.h" diff --git a/chrome/browser/chromeos/file_manager/path_util.cc b/chrome/browser/chromeos/file_manager/path_util.cc index 8896bfe..cf9b0ed 100644 --- a/chrome/browser/chromeos/file_manager/path_util.cc +++ b/chrome/browser/chromeos/file_manager/path_util.cc @@ -8,11 +8,11 @@ #include "base/logging.h" #include "base/sys_info.h" #include "chrome/browser/chromeos/drive/file_system_util.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/browser/profiles/profile.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "net/base/escape.h" namespace file_manager { @@ -35,12 +35,12 @@ base::FilePath GetDownloadsFolderForProfile(Profile* profile) { // On non-ChromeOS system (test+development), the primary profile uses // $HOME/Downloads for ease for accessing local files for debugging. if (!base::SysInfo::IsRunningOnChromeOS() && - chromeos::UserManager::IsInitialized()) { + user_manager::UserManager::IsInitialized()) { const user_manager::User* const user = chromeos::ProfileHelper::Get()->GetUserByProfile( profile->GetOriginalProfile()); const user_manager::User* const primary_user = - chromeos::UserManager::Get()->GetPrimaryUser(); + user_manager::UserManager::Get()->GetPrimaryUser(); if (user == primary_user) return DownloadPrefs::GetDefaultDownloadDirectory(); } @@ -76,7 +76,7 @@ bool MigratePathFromOldFormat(Profile* profile, // no-op when multi-profile is enabled. This is necessary for (1) back // migration when multi-profile flag is enabled and then disabled, or (2) in // some edge cases (crbug.com/356322) that u-<hash> path is temporarily used. - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { const user_manager::User* const user = chromeos::ProfileHelper::Get()->GetUserByProfile(profile); if (user) { @@ -107,7 +107,7 @@ std::string GetDownloadsMountPointName(Profile* profile) { // are not associated with an user account. In that case, no suffix is added // because such a profile never belongs to a multi-profile session. user_manager::User* const user = - chromeos::UserManager::IsInitialized() + user_manager::UserManager::IsInitialized() ? chromeos::ProfileHelper::Get()->GetUserByProfile( profile->GetOriginalProfile()) : NULL; diff --git a/chrome/browser/chromeos/file_system_provider/mount_path_util.cc b/chrome/browser/chromeos/file_system_provider/mount_path_util.cc index 0456a7e..19283e4 100644 --- a/chrome/browser/chromeos/file_system_provider/mount_path_util.cc +++ b/chrome/browser/chromeos/file_system_provider/mount_path_util.cc @@ -11,11 +11,11 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" #include "chrome/browser/chromeos/file_system_provider/service.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" using content::BrowserThread; @@ -51,7 +51,7 @@ base::FilePath GetMountPath(Profile* profile, const std::string& extension_id, const std::string& file_system_id) { user_manager::User* const user = - chromeos::UserManager::IsInitialized() + user_manager::UserManager::IsInitialized() ? chromeos::ProfileHelper::Get()->GetUserByProfile( profile->GetOriginalProfile()) : NULL; diff --git a/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc b/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc index d3d7df4..788eeab 100644 --- a/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc +++ b/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc @@ -13,6 +13,7 @@ #include "chrome/browser/chromeos/file_system_provider/service.h" #include "chrome/browser/chromeos/file_system_provider/service_factory.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/profiles/profile.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" diff --git a/chrome/browser/chromeos/file_system_provider/service_unittest.cc b/chrome/browser/chromeos/file_system_provider/service_unittest.cc index ef99385..7a6d1e6 100644 --- a/chrome/browser/chromeos/file_system_provider/service_unittest.cc +++ b/chrome/browser/chromeos/file_system_provider/service_unittest.cc @@ -16,6 +16,7 @@ #include "chrome/browser/chromeos/file_system_provider/observer.h" #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_pref_service_syncable.h" #include "chrome/test/base/testing_profile.h" diff --git a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc index 09973a6..c69b2ed 100644 --- a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc +++ b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc @@ -14,7 +14,6 @@ #include "chrome/browser/background/background_contents_service.h" #include "chrome/browser/background/background_contents_service_factory.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/tab_contents/background_contents.h" @@ -24,6 +23,7 @@ #include "chrome/browser/ui/singleton_tabs.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/theme_resources.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/notification_details.h" @@ -364,7 +364,7 @@ void DriveFirstRunController::EnableOfflineMode() { return; } - if (!UserManager::Get()->IsLoggedInAsRegularUser()) { + if (!user_manager::UserManager::Get()->IsLoggedInAsRegularUser()) { LOG(ERROR) << "Attempting to enable offline access " "but not logged in a regular user."; OnOfflineInit(false, OUTCOME_WRONG_USER_TYPE); diff --git a/chrome/browser/chromeos/first_run/first_run.cc b/chrome/browser/chromeos/first_run/first_run.cc index c3e73e9..bf2d007 100644 --- a/chrome/browser/chromeos/first_run/first_run.cc +++ b/chrome/browser/chromeos/first_run/first_run.cc @@ -5,16 +5,18 @@ #include "base/command_line.h" #include "base/metrics/histogram.h" #include "base/prefs/pref_service.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/first_run/first_run_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_service.h" +#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/extensions/application_launch.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "chromeos/chromeos_switches.h" #include "components/pref_registry/pref_registry_syncable.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" @@ -67,7 +69,7 @@ class DialogLauncher : public content::NotificationObserver { bool launched_in_test = command_line->HasSwitch(::switches::kTestType); bool launched_in_telemetry = command_line->HasSwitch(switches::kOobeSkipPostLogin); - bool is_user_new = chromeos::UserManager::Get()->IsCurrentUserNew(); + bool is_user_new = user_manager::UserManager::Get()->IsCurrentUserNew(); bool first_run_forced = command_line->HasSwitch(switches::kForceFirstRunUI); bool first_run_seen = profile_->GetPrefs()->GetBoolean(prefs::kFirstRunTutorialShown); @@ -96,9 +98,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { } void MaybeLaunchDialogAfterSessionStart() { - UserManager* user_manager = UserManager::Get(); new DialogLauncher(ProfileHelper::Get()->GetProfileByUserUnsafe( - user_manager->GetActiveUser())); + user_manager::UserManager::Get()->GetActiveUser())); } void LaunchTutorial() { diff --git a/chrome/browser/chromeos/first_run/first_run_controller.cc b/chrome/browser/chromeos/first_run/first_run_controller.cc index 8a8cd4fb..02b8cf1 100644 --- a/chrome/browser/chromeos/first_run/first_run_controller.cc +++ b/chrome/browser/chromeos/first_run/first_run_controller.cc @@ -13,9 +13,9 @@ #include "chrome/browser/chromeos/first_run/steps/app_list_step.h" #include "chrome/browser/chromeos/first_run/steps/help_step.h" #include "chrome/browser/chromeos/first_run/steps/tray_step.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/ui/chrome_pages.h" +#include "components/user_manager/user_manager.h" #include "ui/views/widget/widget.h" namespace { @@ -71,7 +71,7 @@ FirstRunController::FirstRunController() void FirstRunController::Init() { start_time_ = base::Time::Now(); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_profile_ = ProfileHelper::Get()->GetProfileByUserUnsafe( user_manager->GetActiveUser()); diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc index 39d4a70..87518b9 100644 --- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc +++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc @@ -22,7 +22,6 @@ #include "chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.h" #include "chrome/browser/chromeos/input_method/input_method_engine.h" #include "chrome/browser/chromeos/language_preferences.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/pref_names.h" #include "chromeos/ime/component_extension_ime_manager.h" diff --git a/chrome/browser/chromeos/input_method/input_method_persistence.cc b/chrome/browser/chromeos/input_method/input_method_persistence.cc index c0c82fb..e9a2cd9 100644 --- a/chrome/browser/chromeos/input_method/input_method_persistence.cc +++ b/chrome/browser/chromeos/input_method/input_method_persistence.cc @@ -11,7 +11,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/input_method/input_method_util.h" #include "chrome/browser/chromeos/language_preferences.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/pref_names.h" diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc index 2ca6103..1c2c241 100644 --- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout.cc @@ -11,8 +11,8 @@ #include "base/message_loop/message_loop.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ui/idle_logout_dialog_view.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" @@ -48,7 +48,7 @@ KioskModeIdleLogout::~KioskModeIdleLogout() { } void KioskModeIdleLogout::Setup() { - if (UserManager::Get()->IsLoggedInAsDemoUser()) { + if (user_manager::UserManager::Get()->IsLoggedInAsDemoUser()) { // This means that we're recovering from a crash. The user is already // logged in, so go ahead and start the timer. Start(); diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout_unittest.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout_unittest.cc index e260cde..8843dca 100644 --- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout_unittest.cc +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_idle_logout_unittest.cc @@ -11,8 +11,8 @@ #include "base/message_loop/message_loop.h" #include "base/synchronization/waitable_event.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" #include "testing/gtest/include/gtest/gtest.h" @@ -64,7 +64,8 @@ TEST_F(KioskModeIdleLogoutTest, DISABLED_CheckObserversBeforeUserLogin) { TEST_F(KioskModeIdleLogoutTest, DISABLED_CheckObserversAfterUserLogin) { content::NotificationService::current()->Notify( chrome::NOTIFICATION_LOGIN_USER_CHANGED, - content::Source<UserManager>(UserManager::Get()), + content::Source<user_manager::UserManager>( + user_manager::UserManager::Get()), // Ideally this should be the user logged in, but since we won't really be // checking for the current logged in user in our observer anyway, giving // NoDetails here is fine. diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc index 22a0010..231403e 100644 --- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc @@ -11,7 +11,6 @@ #include "base/lazy_instance.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/lifetime/application_lifetime.h" diff --git a/chrome/browser/chromeos/login/app_launch_controller.cc b/chrome/browser/chromeos/login/app_launch_controller.cc index 3408b5c..99b7873 100644 --- a/chrome/browser/chromeos/login/app_launch_controller.cc +++ b/chrome/browser/chromeos/login/app_launch_controller.cc @@ -31,6 +31,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "net/base/network_change_notifier.h" @@ -296,7 +297,7 @@ bool AppLaunchController::CanConfigureNetwork() { return true; } - return !UserManager::Get()->GetOwnerEmail().empty(); + return !user_manager::UserManager::Get()->GetOwnerEmail().empty(); } bool AppLaunchController::NeedOwnerAuthToConfigureNetwork() { diff --git a/chrome/browser/chromeos/login/app_launch_signin_screen.cc b/chrome/browser/chromeos/login/app_launch_signin_screen.cc index ee18fe7..de79951 100644 --- a/chrome/browser/chromeos/login/app_launch_signin_screen.cc +++ b/chrome/browser/chromeos/login/app_launch_signin_screen.cc @@ -11,13 +11,14 @@ #include "chrome/browser/signin/screenlock_bridge.h" #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" #include "chrome/grit/generated_resources.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_ui.h" #include "ui/base/l10n/l10n_util.h" namespace chromeos { -UserManager* AppLaunchSigninScreen::test_user_manager_ = NULL; +user_manager::UserManager* AppLaunchSigninScreen::test_user_manager_ = NULL; AppLaunchSigninScreen::AppLaunchSigninScreen( OobeUI* oobe_ui, Delegate* delegate) @@ -39,7 +40,7 @@ void AppLaunchSigninScreen::Show() { } void AppLaunchSigninScreen::InitOwnerUserList() { - UserManager* user_manager = GetUserManager(); + user_manager::UserManager* user_manager = GetUserManager(); const std::string& owner_email = user_manager->GetOwnerEmail(); const user_manager::UserList& all_users = user_manager->GetUsers(); @@ -57,12 +58,13 @@ void AppLaunchSigninScreen::InitOwnerUserList() { // static void AppLaunchSigninScreen::SetUserManagerForTesting( - UserManager* user_manager) { + user_manager::UserManager* user_manager) { test_user_manager_ = user_manager; } -UserManager* AppLaunchSigninScreen::GetUserManager() { - return test_user_manager_ ? test_user_manager_ : UserManager::Get(); +user_manager::UserManager* AppLaunchSigninScreen::GetUserManager() { + return test_user_manager_ ? test_user_manager_ + : user_manager::UserManager::Get(); } void AppLaunchSigninScreen::CancelPasswordChangedFlow() { diff --git a/chrome/browser/chromeos/login/app_launch_signin_screen.h b/chrome/browser/chromeos/login/app_launch_signin_screen.h index 665eddd..2fbcf66 100644 --- a/chrome/browser/chromeos/login/app_launch_signin_screen.h +++ b/chrome/browser/chromeos/login/app_launch_signin_screen.h @@ -8,12 +8,12 @@ #include <string> #include "base/memory/ref_counted.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/signin/screenlock_bridge.h" #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" #include "chromeos/login/auth/auth_status_consumer.h" #include "chromeos/login/auth/authenticator.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" namespace chromeos { @@ -43,11 +43,11 @@ class AppLaunchSigninScreen : public SigninScreenHandlerDelegate, void Show(); - static void SetUserManagerForTesting(UserManager* user_manager); + static void SetUserManagerForTesting(user_manager::UserManager* user_manager); private: void InitOwnerUserList(); - UserManager* GetUserManager(); + user_manager::UserManager* GetUserManager(); // SigninScreenHandlerDelegate implementation: virtual void CancelPasswordChangedFlow() OVERRIDE; @@ -96,7 +96,7 @@ class AppLaunchSigninScreen : public SigninScreenHandlerDelegate, // This list should have at most one user, and that user should be the owner. user_manager::UserList owner_user_list_; - static UserManager* test_user_manager_; + static user_manager::UserManager* test_user_manager_; DISALLOW_COPY_AND_ASSIGN(AppLaunchSigninScreen); }; diff --git a/chrome/browser/chromeos/login/auth/login_performer.cc b/chrome/browser/chromeos/login/auth/login_performer.cc index ec9c19f..b093664 100644 --- a/chrome/browser/chromeos/login/auth/login_performer.cc +++ b/chrome/browser/chromeos/login/auth/login_performer.cc @@ -18,8 +18,8 @@ #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_login_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -29,6 +29,7 @@ #include "chromeos/dbus/session_manager_client.h" #include "chromeos/login/user_names.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_types.h" @@ -219,7 +220,7 @@ void LoginPerformer::LoginAsSupervisedUser( return; } - if (!UserManager::Get()->AreSupervisedUsersAllowed()) { + if (!user_manager::UserManager::Get()->AreSupervisedUsersAllowed()) { LOG(ERROR) << "Login attempt of supervised user detected."; delegate_->WhiteListCheckFailed(user_context.GetUserID()); return; @@ -228,11 +229,11 @@ void LoginPerformer::LoginAsSupervisedUser( SupervisedUserLoginFlow* new_flow = new SupervisedUserLoginFlow(user_context.GetUserID()); new_flow->set_host( - UserManager::Get()->GetUserFlow(user_context.GetUserID())->host()); - UserManager::Get()->SetUserFlow(user_context.GetUserID(), new_flow); + ChromeUserManager::Get()->GetUserFlow(user_context.GetUserID())->host()); + ChromeUserManager::Get()->SetUserFlow(user_context.GetUserID(), new_flow); - SupervisedUserAuthentication* authentication = UserManager::Get()-> - GetSupervisedUserManager()->GetAuthentication(); + SupervisedUserAuthentication* authentication = + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); UserContext user_context_copy = authentication->TransformKey(user_context); diff --git a/chrome/browser/chromeos/login/auth/mount_manager.cc b/chrome/browser/chromeos/login/auth/mount_manager.cc index f0b3479..5ca790c 100644 --- a/chrome/browser/chromeos/login/auth/mount_manager.cc +++ b/chrome/browser/chromeos/login/auth/mount_manager.cc @@ -4,7 +4,6 @@ #include "chrome/browser/chromeos/login/auth/mount_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" namespace chromeos { diff --git a/chrome/browser/chromeos/login/auth/parallel_authenticator.cc b/chrome/browser/chromeos/login/auth/parallel_authenticator.cc index 66495ed..f9ca2d3 100644 --- a/chrome/browser/chromeos/login/auth/parallel_authenticator.cc +++ b/chrome/browser/chromeos/login/auth/parallel_authenticator.cc @@ -11,7 +11,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/boot_times_loader.h" #include "chrome/browser/chromeos/login/auth/authentication_notification_details.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ownership/owner_settings_service.h" #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -25,6 +24,7 @@ #include "chromeos/login/auth/user_context.h" #include "chromeos/login/login_state.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -242,12 +242,13 @@ void ParallelAuthenticator::AuthenticateToLogin( Profile* profile, const UserContext& user_context) { authentication_profile_ = profile; - current_state_.reset(new AuthAttemptState( - user_context, - user_manager::USER_TYPE_REGULAR, - false, // unlock - false, // online_complete - !UserManager::Get()->IsKnownUser(user_context.GetUserID()))); + current_state_.reset( + new AuthAttemptState(user_context, + user_manager::USER_TYPE_REGULAR, + false, // unlock + false, // online_complete + !user_manager::UserManager::Get()->IsKnownUser( + user_context.GetUserID()))); // Reset the verified flag. owner_is_verified_ = false; @@ -261,12 +262,13 @@ void ParallelAuthenticator::AuthenticateToLogin( void ParallelAuthenticator::CompleteLogin(Profile* profile, const UserContext& user_context) { authentication_profile_ = profile; - current_state_.reset(new AuthAttemptState( - user_context, - user_manager::USER_TYPE_REGULAR, - true, // unlock - false, // online_complete - !UserManager::Get()->IsKnownUser(user_context.GetUserID()))); + current_state_.reset( + new AuthAttemptState(user_context, + user_manager::USER_TYPE_REGULAR, + true, // unlock + false, // online_complete + !user_manager::UserManager::Get()->IsKnownUser( + user_context.GetUserID()))); // Reset the verified flag. owner_is_verified_ = false; diff --git a/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc b/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc index 248defa..8d3b03e 100644 --- a/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc +++ b/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc @@ -15,7 +15,7 @@ #include "base/strings/stringprintf.h" #include "chrome/browser/chromeos/login/auth/mock_url_fetchers.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/ownership/owner_settings_service.h" #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -35,7 +35,6 @@ #include "chromeos/login/auth/mock_auth_status_consumer.h" #include "chromeos/login/auth/test_attempt_state.h" #include "chromeos/login/auth/user_context.h" -#include "components/user_manager/user.h" #include "content/public/test/test_browser_thread_bundle.h" #include "crypto/nss_util_internal.h" #include "crypto/scoped_test_nss_chromeos_user.h" diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc index 9461bd1..c02904b 100644 --- a/chrome/browser/chromeos/login/chrome_restart_request.cc +++ b/chrome/browser/chromeos/login/chrome_restart_request.cc @@ -22,7 +22,6 @@ #include "cc/base/switches.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/boot_times_loader.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" diff --git a/chrome/browser/chromeos/login/crash_restore_browsertest.cc b/chrome/browser/chromeos/login/crash_restore_browsertest.cc index a5fa609..f5ce615 100644 --- a/chrome/browser/chromeos/login/crash_restore_browsertest.cc +++ b/chrome/browser/chromeos/login/crash_restore_browsertest.cc @@ -9,7 +9,6 @@ #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/test/base/in_process_browser_test.h" #include "chromeos/chromeos_switches.h" #include "chromeos/dbus/cryptohome_client.h" @@ -17,6 +16,7 @@ #include "chromeos/dbus/fake_session_manager_client.h" #include "chromeos/dbus/session_manager_client.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "third_party/cros_system_api/dbus/service_constants.h" @@ -59,7 +59,7 @@ class CrashRestoreSimpleTest : public InProcessBrowserTest { }; IN_PROC_BROWSER_TEST_F(CrashRestoreSimpleTest, RestoreSessionForOneUser) { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_manager::User* user = user_manager->GetActiveUser(); ASSERT_TRUE(user); EXPECT_EQ(kUserId1, user->email()); @@ -132,7 +132,7 @@ IN_PROC_BROWSER_TEST_F(CrashRestoreComplexTest, RestoreSessionForThreeUsers) { // User that is last in the user sessions map becomes active. This behavior // will become better defined once each user gets a separate user desktop. - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_manager::User* user = user_manager->GetActiveUser(); ASSERT_TRUE(user); EXPECT_EQ(kUserId3, user->email()); diff --git a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc index 9e87fb5..466638f 100644 --- a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc +++ b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher.cc @@ -10,7 +10,6 @@ #include "chrome/browser/chromeos/app_mode/app_session_lifetime.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/component_loader.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/lifetime/application_lifetime.h" @@ -21,6 +20,7 @@ #include "chrome/grit/browser_resources.h" #include "chromeos/network/network_handler.h" #include "chromeos/network/network_state_handler.h" +#include "components/user_manager/user_manager.h" #include "extensions/browser/extension_system.h" #include "extensions/common/extension.h" #include "ui/base/window_open_disposition.h" @@ -96,7 +96,7 @@ void DemoAppLauncher::OnProfileLoaded(Profile* profile) { profile, extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW)); InitAppSession(profile, extension_id); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); LoginDisplayHostImpl::default_host()->Finalize(); } diff --git a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher_browsertest.cc b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher_browsertest.cc index 35f988b..c65f0cf 100644 --- a/chrome/browser/chromeos/login/demo_mode/demo_app_launcher_browsertest.cc +++ b/chrome/browser/chromeos/login/demo_mode/demo_app_launcher_browsertest.cc @@ -11,7 +11,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" #include "chrome/browser/chromeos/login/test/app_window_waiter.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/extension_browsertest.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -19,6 +18,7 @@ #include "chromeos/chromeos_switches.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "content/public/test/test_utils.h" @@ -35,7 +35,7 @@ base::FilePath GetTestDemoAppPath() { } Profile* WaitForProfile() { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (!user_manager || !user_manager->IsUserLoggedIn()) { content::WindowedNotificationObserver( chrome::NOTIFICATION_SESSION_STARTED, diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc index ff25f97..0030ed7 100644 --- a/chrome/browser/chromeos/login/existing_user_controller.cc +++ b/chrome/browser/chromeos/login/existing_user_controller.cc @@ -33,7 +33,8 @@ #include "chrome/browser/chromeos/login/login_utils.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/user_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account.h" @@ -60,6 +61,7 @@ #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_service.h" #include "components/policy/core/common/policy_types.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -211,7 +213,7 @@ void ExistingUserController::UpdateLoginDisplay( // TODO(xiyuan): Clean user profile whose email is not in whitelist. bool meets_supervised_requirements = (*it)->GetType() != user_manager::USER_TYPE_SUPERVISED || - UserManager::Get()->AreSupervisedUsersAllowed(); + user_manager::UserManager::Get()->AreSupervisedUsersAllowed(); bool meets_whitelist_requirements = LoginUtils::IsWhitelisted((*it)->email(), NULL) || (*it)->GetType() != user_manager::USER_TYPE_REGULAR; @@ -444,8 +446,8 @@ void ExistingUserController::Login(const UserContext& user_context, void ExistingUserController::PerformLogin( const UserContext& user_context, LoginPerformer::AuthorizationMode auth_mode) { - UserManager::Get()->GetUserFlow(last_login_attempt_username_)-> - set_host(host_); + ChromeUserManager::Get()->GetUserFlow(last_login_attempt_username_)->set_host( + host_); BootTimesLoader::Get()->RecordLoginAttempted(); @@ -490,8 +492,10 @@ void ExistingUserController::LoginAsRetailModeUser() { } void ExistingUserController::LoginAsGuest() { - if (is_login_in_progress_ || UserManager::Get()->IsUserLoggedIn()) + if (is_login_in_progress_ || + user_manager::UserManager::Get()->IsUserLoggedIn()) { return; + } // Stop the auto-login timer when attempting login. StopPublicSessionAutoLoginTimer(); @@ -550,8 +554,10 @@ void ExistingUserController::MigrateUserData(const std::string& old_password) { void ExistingUserController::LoginAsPublicSession( const UserContext& user_context) { - if (is_login_in_progress_ || UserManager::Get()->IsUserLoggedIn()) + if (is_login_in_progress_ || + user_manager::UserManager::Get()->IsUserLoggedIn()) { return; + } // Stop the auto-login timer when attempting login. StopPublicSessionAutoLoginTimer(); @@ -582,7 +588,7 @@ void ExistingUserController::LoginAsPublicSession( // If there is no public account with the given user ID, logging in is not // possible. const user_manager::User* user = - UserManager::Get()->FindUser(user_context.GetUserID()); + user_manager::UserManager::Get()->FindUser(user_context.GetUserID()); if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) { // Re-enable clicking on other windows. login_display_->SetUIEnabled(true); @@ -767,8 +773,9 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) { guest_mode_url_ = GURL::EmptyGURL(); std::string error = failure.GetErrorString(); - if (UserManager::Get()->GetUserFlow(last_login_attempt_username_)-> - HandleLoginFailure(failure)) { + if (ChromeUserManager::Get() + ->GetUserFlow(last_login_attempt_username_) + ->HandleLoginFailure(failure)) { login_display_->SetUIEnabled(true); return; } @@ -788,8 +795,8 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) { } else { // Check networking after trying to login in case user is // cached locally or the local admin account. - bool is_known_user = - UserManager::Get()->IsKnownUser(last_login_attempt_username_); + bool is_known_user = user_manager::UserManager::Get()->IsKnownUser( + last_login_attempt_username_); if (!network_state_helper_->IsConnected()) { if (is_known_user) ShowError(IDS_LOGIN_ERROR_AUTHENTICATING, error); @@ -816,7 +823,7 @@ void ExistingUserController::OnAuthFailure(const AuthFailure& failure) { // Reset user flow to default, so that special flow will not affect next // attempt. - UserManager::Get()->ResetUserFlow(last_login_attempt_username_); + ChromeUserManager::Get()->ResetUserFlow(last_login_attempt_username_); if (auth_status_consumer_) auth_status_consumer_->OnAuthFailure(failure); @@ -835,8 +842,9 @@ void ExistingUserController::OnAuthSuccess(const UserContext& user_context) { password_changed_ = login_performer_->password_changed(); auth_mode_ = login_performer_->auth_mode(); - UserManager::Get()->GetUserFlow(user_context.GetUserID())-> - HandleLoginSuccess(user_context); + ChromeUserManager::Get() + ->GetUserFlow(user_context.GetUserID()) + ->HandleLoginSuccess(user_context); StopPublicSessionAutoLoginTimer(); @@ -854,8 +862,8 @@ void ExistingUserController::OnAuthSuccess(const UserContext& user_context) { // Update user's displayed email. if (!display_email_.empty()) { - UserManager::Get()->SaveUserDisplayEmail(user_context.GetUserID(), - display_email_); + user_manager::UserManager::Get()->SaveUserDisplayEmail( + user_context.GetUserID(), display_email_); display_email_.clear(); } @@ -870,7 +878,7 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) { // Reenable clicking on other windows and status area. login_display_->SetUIEnabled(true); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager->IsCurrentUserNew() && user_manager->IsLoggedInAsSupervisedUser()) { // Supervised users should launch into empty desktop on first run. @@ -878,7 +886,9 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) { } if (user_manager->IsCurrentUserNew() && - !user_manager->GetCurrentUserFlow()->ShouldSkipPostLoginScreens() && + !ChromeUserManager::Get() + ->GetCurrentUserFlow() + ->ShouldSkipPostLoginScreens() && !WizardController::default_controller()->skip_post_login_screens()) { // Don't specify start URLs if the administrator has configured the start // URLs via policy. @@ -933,8 +943,9 @@ void ExistingUserController::OnPasswordChangeDetected() { return; } - if (UserManager::Get()->GetUserFlow(last_login_attempt_username_)-> - HandlePasswordChangeDetected()) { + if (ChromeUserManager::Get() + ->GetUserFlow(last_login_attempt_username_) + ->HandlePasswordChangeDetected()) { return; } @@ -1005,7 +1016,7 @@ void ExistingUserController::OnOnlineChecked(const std::string& username, void ExistingUserController::DeviceSettingsChanged() { if (host_ != NULL) { // Signed settings or user list changed. Notify views and update them. - UpdateLoginDisplay(chromeos::UserManager::Get()->GetUsers()); + UpdateLoginDisplay(user_manager::UserManager::Get()->GetUsers()); ConfigurePublicSessionAutoLogin(); return; } @@ -1047,8 +1058,8 @@ void ExistingUserController::ConfigurePublicSessionAutoLogin() { } } - const user_manager::User* user = - UserManager::Get()->FindUser(public_session_auto_login_username_); + const user_manager::User* user = user_manager::UserManager::Get()->FindUser( + public_session_auto_login_username_); if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) public_session_auto_login_username_.clear(); @@ -1114,7 +1125,7 @@ void ExistingUserController::InitializeStartUrls() const { std::vector<std::string> start_urls; const base::ListValue *urls; - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); bool can_show_getstarted_guide = user_manager->GetActiveUser()->GetType() == user_manager::USER_TYPE_REGULAR && @@ -1189,7 +1200,8 @@ void ExistingUserController::ShowError(int error_id, if (error_id == IDS_LOGIN_ERROR_AUTHENTICATING) { if (num_login_attempts_ > 1) { const user_manager::User* user = - UserManager::Get()->FindUser(last_login_attempt_username_); + user_manager::UserManager::Get()->FindUser( + last_login_attempt_username_); if (user && (user->GetType() == user_manager::USER_TYPE_SUPERVISED)) error_id = IDS_LOGIN_ERROR_AUTHENTICATING_2ND_TIME_SUPERVISED; } @@ -1202,7 +1214,7 @@ void ExistingUserController::ShowGaiaPasswordChanged( const std::string& username) { // Invalidate OAuth token, since it can't be correct after password is // changed. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( username, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID); login_display_->SetUIEnabled(true); diff --git a/chrome/browser/chromeos/login/existing_user_controller_auto_login_unittest.cc b/chrome/browser/chromeos/login/existing_user_controller_auto_login_unittest.cc index 772d82f..50a3553 100644 --- a/chrome/browser/chromeos/login/existing_user_controller_auto_login_unittest.cc +++ b/chrome/browser/chromeos/login/existing_user_controller_auto_login_unittest.cc @@ -11,7 +11,7 @@ #include "chrome/browser/chromeos/login/ui/mock_login_display.h" #include "chrome/browser/chromeos/login/ui/mock_login_display_host.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" diff --git a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc index 247b27e..0464c0d 100644 --- a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc +++ b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc @@ -19,7 +19,7 @@ #include "chrome/browser/chromeos/login/ui/mock_login_display.h" #include "chrome/browser/chromeos/login/ui/mock_login_display_host.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account.h" @@ -43,6 +43,7 @@ #include "components/policy/core/common/cloud/mock_cloud_policy_store.h" #include "components/policy/core/common/cloud/policy_builder.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/test/mock_notification_observer.h" #include "content/public/test/test_utils.h" @@ -350,11 +351,12 @@ class ExistingUserControllerPublicSessionTest ExistingUserControllerTest::SetUpOnMainThread(); // Wait for the public session user to be created. - if (!chromeos::UserManager::Get()->IsKnownUser(public_session_user_id_)) { + if (!user_manager::UserManager::Get()->IsKnownUser( + public_session_user_id_)) { content::WindowedNotificationObserver( chrome::NOTIFICATION_USER_LIST_CHANGED, - base::Bind(&chromeos::UserManager::IsKnownUser, - base::Unretained(chromeos::UserManager::Get()), + base::Bind(&user_manager::UserManager::IsKnownUser, + base::Unretained(user_manager::UserManager::Get()), public_session_user_id_)).Wait(); } diff --git a/chrome/browser/chromeos/login/fake_login_utils.cc b/chrome/browser/chromeos/login/fake_login_utils.cc index 085d852..aa3c889 100644 --- a/chrome/browser/chromeos/login/fake_login_utils.cc +++ b/chrome/browser/chromeos/login/fake_login_utils.cc @@ -10,8 +10,8 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/user_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/first_run/first_run.h" #include "chrome/browser/profiles/profile.h" @@ -21,6 +21,7 @@ #include "chromeos/login/auth/mock_authenticator.h" #include "chromeos/login/auth/user_context.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "testing/gtest/include/gtest/gtest.h" @@ -37,9 +38,8 @@ void FakeLoginUtils::RespectLocalePreference(Profile*, void FakeLoginUtils::DoBrowserLaunch(Profile* profile, LoginDisplayHost* login_host) { - - if (!UserManager::Get()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { - UserManager::Get()->GetCurrentUserFlow()->LaunchExtraSteps(profile); + if (!ChromeUserManager::Get()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { + ChromeUserManager::Get()->GetCurrentUserFlow()->LaunchExtraSteps(profile); return; } login_host->BeforeSessionStart(); @@ -58,17 +58,18 @@ void FakeLoginUtils::DoBrowserLaunch(Profile* profile, } if (login_host) login_host->Finalize(); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); } void FakeLoginUtils::PrepareProfile(const UserContext& user_context, bool has_cookies, bool has_active_session, LoginUtils::Delegate* delegate) { - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( user_context.GetUserID(), user_context.GetUserIDHash(), false); user_manager::User* user = - UserManager::Get()->FindUserAndModify(user_context.GetUserID()); + user_manager::UserManager::Get()->FindUserAndModify( + user_context.GetUserID()); DCHECK(user); // Make sure that we get the real Profile instead of the login Profile. @@ -77,11 +78,12 @@ void FakeLoginUtils::PrepareProfile(const UserContext& user_context, profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user_context.GetUserID()); - if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { - user_manager::User* active_user = UserManager::Get()->GetActiveUser(); + if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) { + user_manager::User* active_user = + user_manager::UserManager::Get()->GetActiveUser(); std::string supervised_user_sync_id = - UserManager::Get()->GetSupervisedUserManager()-> - GetUserSyncId(active_user->email()); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + active_user->email()); if (supervised_user_sync_id.empty()) supervised_user_sync_id = "DUMMY ID"; profile->GetPrefs()->SetString(prefs::kSupervisedUserId, diff --git a/chrome/browser/chromeos/login/helper.cc b/chrome/browser/chromeos/login/helper.cc index f76d3c6..45aafe1 100644 --- a/chrome/browser/chromeos/login/helper.cc +++ b/chrome/browser/chromeos/login/helper.cc @@ -7,7 +7,6 @@ #include "ash/shell.h" #include "base/command_line.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/theme_resources.h" #include "chromeos/chromeos_switches.h" diff --git a/chrome/browser/chromeos/login/kiosk_browsertest.cc b/chrome/browser/chromeos/login/kiosk_browsertest.cc index b7cb0430..e67f238 100644 --- a/chrome/browser/chromeos/login/kiosk_browsertest.cc +++ b/chrome/browser/chromeos/login/kiosk_browsertest.cc @@ -25,6 +25,7 @@ #include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" diff --git a/chrome/browser/chromeos/login/lock/screen_locker.cc b/chrome/browser/chromeos/login/lock/screen_locker.cc index fe389eb..3dd1dc8 100644 --- a/chrome/browser/chromeos/login/lock/screen_locker.cc +++ b/chrome/browser/chromeos/login/lock/screen_locker.cc @@ -30,8 +30,8 @@ #include "chrome/browser/chromeos/login/login_utils.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/signin/signin_manager_factory.h" #include "chrome/browser/ui/webui/chromeos/login/screenlock_icon_provider.h" @@ -45,6 +45,7 @@ #include "chromeos/login/auth/authenticator.h" #include "chromeos/login/auth/extended_authenticator.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -202,10 +203,11 @@ void ScreenLocker::OnAuthSuccess(const UserContext& user_context) { } const user_manager::User* user = - UserManager::Get()->FindUser(user_context.GetUserID()); + user_manager::UserManager::Get()->FindUser(user_context.GetUserID()); if (user) { if (!user->is_active()) - UserManager::Get()->SwitchActiveUser(user_context.GetUserID()); + user_manager::UserManager::Get()->SwitchActiveUser( + user_context.GetUserID()); } else { NOTREACHED() << "Logged in user not found."; } @@ -253,7 +255,7 @@ void ScreenLocker::Authenticate(const UserContext& user_context) { if (const user_manager::User* user = FindUnlockUser(user_context.GetUserID())) { if (user->GetType() == user_manager::USER_TYPE_SUPERVISED) { - UserContext updated_context = UserManager::Get() + UserContext updated_context = ChromeUserManager::Get() ->GetSupervisedUserManager() ->GetAuthentication() ->TransformKey(user_context); @@ -348,7 +350,7 @@ void ScreenLocker::HandleLockScreenRequest() { return; } if (g_screen_lock_observer->session_started() && - UserManager::Get()->CanCurrentUserLock()) { + user_manager::UserManager::Get()->CanCurrentUserLock()) { ScreenLocker::Show(); ash::Shell::GetInstance()->lock_state_controller()->OnStartingLock(); } else { @@ -370,8 +372,8 @@ void ScreenLocker::Show() { // Check whether the currently logged in user is a guest account and if so, // refuse to lock the screen (crosbug.com/23764). // For a demo user, we should never show the lock screen (crosbug.com/27647). - if (UserManager::Get()->IsLoggedInAsGuest() || - UserManager::Get()->IsLoggedInAsDemoUser()) { + if (user_manager::UserManager::Get()->IsLoggedInAsGuest() || + user_manager::UserManager::Get()->IsLoggedInAsDemoUser()) { VLOG(1) << "Refusing to lock screen for guest/demo account"; return; } @@ -390,7 +392,7 @@ void ScreenLocker::Show() { if (!screen_locker_) { ScreenLocker* locker = - new ScreenLocker(UserManager::Get()->GetUnlockUsers()); + new ScreenLocker(user_manager::UserManager::Get()->GetUnlockUsers()); VLOG(1) << "Created ScreenLocker " << locker; locker->Init(); } else { @@ -405,8 +407,8 @@ void ScreenLocker::Show() { void ScreenLocker::Hide() { DCHECK(base::MessageLoopForUI::IsCurrent()); // For a guest/demo user, screen_locker_ would have never been initialized. - if (UserManager::Get()->IsLoggedInAsGuest() || - UserManager::Get()->IsLoggedInAsDemoUser()) { + if (user_manager::UserManager::Get()->IsLoggedInAsGuest() || + user_manager::UserManager::Get()->IsLoggedInAsDemoUser()) { VLOG(1) << "Refusing to hide lock screen for guest/demo account"; return; } diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc index 628bb72..d0876ee 100644 --- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc +++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc @@ -17,7 +17,6 @@ #include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/lock/screen_locker.h" #include "chrome/browser/chromeos/login/ui/webui_login_display.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" #include "chrome/common/url_constants.h" diff --git a/chrome/browser/chromeos/login/login_manager_test.cc b/chrome/browser/chromeos/login/login_manager_test.cc index 6d5445a..40a5836 100644 --- a/chrome/browser/chromeos/login/login_manager_test.cc +++ b/chrome/browser/chromeos/login/login_manager_test.cc @@ -10,11 +10,11 @@ #include "chrome/browser/chromeos/login/existing_user_controller.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/webui_login_view.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" @@ -68,7 +68,7 @@ bool LoginManagerTest::TryToLogin(const UserContext& user_context) { if (!AddUserToSession(user_context)) return false; if (const user_manager::User* active_user = - UserManager::Get()->GetActiveUser()) + user_manager::UserManager::Get()->GetActiveUser()) return active_user->email() == user_context.GetUserID(); return false; } @@ -85,7 +85,7 @@ bool LoginManagerTest::AddUserToSession(const UserContext& user_context) { chrome::NOTIFICATION_SESSION_STARTED, content::NotificationService::AllSources()).Wait(); const user_manager::UserList& logged_users = - UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_users.begin(); it != logged_users.end(); ++it) { diff --git a/chrome/browser/chromeos/login/login_screen_policy_browsertest.cc b/chrome/browser/chromeos/login/login_screen_policy_browsertest.cc index 9743499..d5a4f1f 100644 --- a/chrome/browser/chromeos/login/login_screen_policy_browsertest.cc +++ b/chrome/browser/chromeos/login/login_screen_policy_browsertest.cc @@ -4,12 +4,12 @@ #include "base/command_line.h" #include "base/memory/ref_counted.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chromeos/chromeos_switches.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -31,7 +31,7 @@ class LoginScreenPolicyTest : public policy::DevicePolicyCrosBrowserTest { }; IN_PROC_BROWSER_TEST_F(LoginScreenPolicyTest, DisableSupervisedUsers) { - EXPECT_FALSE(chromeos::UserManager::Get()->AreSupervisedUsersAllowed()); + EXPECT_FALSE(user_manager::UserManager::Get()->AreSupervisedUsersAllowed()); scoped_refptr<content::MessageLoopRunner> runner( new content::MessageLoopRunner); @@ -46,7 +46,7 @@ IN_PROC_BROWSER_TEST_F(LoginScreenPolicyTest, DisableSupervisedUsers) { runner->Run(); - EXPECT_TRUE(chromeos::UserManager::Get()->AreSupervisedUsersAllowed()); + EXPECT_TRUE(user_manager::UserManager::Get()->AreSupervisedUsersAllowed()); } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/login_utils.cc b/chrome/browser/chromeos/login/login_utils.cc index 5ed36b9..37566ae 100644 --- a/chrome/browser/chromeos/login/login_utils.cc +++ b/chrome/browser/chromeos/login/login_utils.cc @@ -50,8 +50,9 @@ #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" +#include "chrome/browser/chromeos/login/user_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/extensions/extension_service.h" @@ -80,6 +81,7 @@ #include "chromeos/settings/cros_settings_names.h" #include "components/signin/core/browser/signin_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "google_apis/gaia/gaia_auth_consumer.h" @@ -106,11 +108,11 @@ CommandLine CreatePerSessionCommandLine(Profile* profile) { // Returns true if restart is needed to apply per-session flags. bool NeedRestartToApplyPerSessionFlags(const CommandLine& user_flags) { // Don't restart browser if it is not first profile in session. - if (UserManager::Get()->GetLoggedInUsers().size() != 1) + if (user_manager::UserManager::Get()->GetLoggedInUsers().size() != 1) return false; // Only restart if needed and if not going into managed mode. - if (UserManager::Get()->IsLoggedInAsSupervisedUser()) + if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) return false; if (about_flags::AreSwitchesIdenticalToCurrentCommandLine( @@ -247,8 +249,8 @@ void LoginUtilsImpl::DoBrowserLaunchInternal(Profile* profile, return; } - if (!UserManager::Get()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { - UserManager::Get()->GetCurrentUserFlow()->LaunchExtraSteps(profile); + if (!ChromeUserManager::Get()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { + ChromeUserManager::Get()->GetCurrentUserFlow()->LaunchExtraSteps(profile); return; } @@ -284,9 +286,9 @@ void LoginUtilsImpl::DoBrowserLaunchInternal(Profile* profile, // browser before it is dereferenced by the login host. if (login_host) login_host->Finalize(); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); chromeos::BootTimesLoader::Get()->LoginDone( - chromeos::UserManager::Get()->IsCurrentUserNew()); + user_manager::UserManager::Get()->IsCurrentUserNew()); } // static @@ -365,7 +367,7 @@ bool LoginUtilsImpl::RestartToApplyPerSessionFlagsIfNeed(Profile* profile, flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end()); VLOG(1) << "Restarting to apply per-session flags..."; DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser( - UserManager::Get()->GetActiveUser()->email(), flags); + user_manager::UserManager::Get()->GetActiveUser()->email(), flags); AttemptRestart(profile); return true; } diff --git a/chrome/browser/chromeos/login/saml/saml_browsertest.cc b/chrome/browser/chromeos/login/saml/saml_browsertest.cc index be4baca..9d2de95b 100644 --- a/chrome/browser/chromeos/login/saml/saml_browsertest.cc +++ b/chrome/browser/chromeos/login/saml/saml_browsertest.cc @@ -24,7 +24,6 @@ #include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/webui_login_display.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/device_policy_builder.h" #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" @@ -49,6 +48,7 @@ #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_types.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" @@ -580,7 +580,8 @@ IN_PROC_BROWSER_TEST_F(SamlTest, UseAutenticatedUserEmailAddress) { content::WindowedNotificationObserver( chrome::NOTIFICATION_SESSION_STARTED, content::NotificationService::AllSources()).Wait(); - const user_manager::User* user = UserManager::Get()->GetActiveUser(); + const user_manager::User* user = + user_manager::UserManager::Get()->GetActiveUser(); ASSERT_TRUE(user); EXPECT_EQ(kFirstSAMLUserEmail, user->email()); } @@ -737,11 +738,11 @@ void SAMLPolicyTest::SetUpOnMainThread() { SamlTest::SetUpOnMainThread(); // Pretend that the test users' OAuth tokens are valid. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( kFirstSAMLUserEmail, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( kNonSAMLUserEmail, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( kDifferentDomainSAMLUserEmail, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); } @@ -818,7 +819,7 @@ std::string SAMLPolicyTest::GetCookieValue(const std::string& name) { void SAMLPolicyTest::GetCookies() { Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe( - UserManager::Get()->GetActiveUser()); + user_manager::UserManager::Get()->GetActiveUser()); ASSERT_TRUE(profile); base::RunLoop run_loop; content::BrowserThread::PostTask( diff --git a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.cc b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.cc index 8922981..42321e3 100644 --- a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.cc +++ b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.cc @@ -13,12 +13,12 @@ #include "base/prefs/pref_service.h" #include "base/time/clock.h" #include "base/time/time.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" namespace chromeos { @@ -56,7 +56,7 @@ void SAMLOfflineSigninLimiter::SignedIn(UserContext::AuthFlow auth_flow) { // a SAML IdP. No limit applies in this case. Clear the time of last login // with SAML and the flag enforcing online login, then return. prefs->ClearPref(prefs::kSAMLLastGAIASignInTime); - UserManager::Get()->SaveForceOnlineSignin(user_id, false); + user_manager::UserManager::Get()->SaveForceOnlineSignin(user_id, false); return; } @@ -66,7 +66,7 @@ void SAMLOfflineSigninLimiter::SignedIn(UserContext::AuthFlow auth_flow) { // enforcing online login. The flag will be set again when the limit // expires. If the limit already expired (e.g. because it was set to zero), // the flag will be set again immediately. - UserManager::Get()->SaveForceOnlineSignin(user_id, false); + user_manager::UserManager::Get()->SaveForceOnlineSignin(user_id, false); prefs->SetInt64(prefs::kSAMLLastGAIASignInTime, clock_->Now().ToInternalValue()); } @@ -147,7 +147,7 @@ void SAMLOfflineSigninLimiter::ForceOnlineLogin() { return; } - UserManager::Get()->SaveForceOnlineSignin(user->email(), true); + user_manager::UserManager::Get()->SaveForceOnlineSignin(user->email(), true); offline_signin_limit_timer_.reset(); } diff --git a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc index eefb3d9..0828fdc 100644 --- a/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc +++ b/chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc @@ -12,7 +12,7 @@ #include "base/time/clock.h" #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_profile.h" diff --git a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc index 00332b4..4eecbd9 100644 --- a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc +++ b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc @@ -13,7 +13,6 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" @@ -22,6 +21,7 @@ #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_types.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "policy/policy_constants.h" @@ -152,7 +152,8 @@ void ChromeUserSelectionScreen::CheckForPublicSessionLocalePolicyChange( void ChromeUserSelectionScreen::SetPublicSessionDisplayName( const std::string& user_id) { - const user_manager::User* user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) return; diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc index b1f3391..bd709db 100644 --- a/chrome/browser/chromeos/login/screens/user_image_screen.cc +++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc @@ -21,7 +21,7 @@ #include "chrome/browser/chromeos/login/login_utils.h" #include "chrome/browser/chromeos/login/screens/screen_observer.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/policy/profile_policy_connector.h" @@ -34,6 +34,7 @@ #include "components/user_manager/user.h" #include "components/user_manager/user_image/default_user_images.h" #include "components/user_manager/user_image/user_image.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "policy/policy_constants.h" @@ -219,11 +220,11 @@ void UserImageScreen::PrepareToShow() { } const user_manager::User* UserImageScreen::GetUser() { - return UserManager::Get()->GetLoggedInUser(); + return user_manager::UserManager::Get()->GetLoggedInUser(); } UserImageManager* UserImageScreen::GetUserImageManager() { - return UserManager::Get()->GetUserImageManager(GetUser()->email()); + return ChromeUserManager::Get()->GetUserImageManager(GetUser()->email()); } UserImageSyncObserver* UserImageScreen::GetSyncObserver() { diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.h b/chrome/browser/chromeos/login/screens/user_image_screen.h index 506901e..5783e29 100644 --- a/chrome/browser/chromeos/login/screens/user_image_screen.h +++ b/chrome/browser/chromeos/login/screens/user_image_screen.h @@ -27,6 +27,8 @@ class PolicyChangeRegistrar; namespace chromeos { +class UserImageManager; + class UserImageScreen: public WizardScreen, public UserImageScreenActor::Delegate, public ImageDecoder::Delegate, diff --git a/chrome/browser/chromeos/login/screens/user_selection_screen.cc b/chrome/browser/chromeos/login/screens/user_selection_screen.cc index 78a296e..41c3024 100644 --- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc +++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc @@ -14,13 +14,14 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/signin/screenlock_bridge.h" #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" #include "chrome/common/pref_names.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "ui/wm/core/user_activity_detector.h" @@ -136,7 +137,7 @@ void UserSelectionScreen::FillUserDictionary( // Fill in multi-profiles related fields. if (is_signin_to_add) { MultiProfileUserController* multi_profile_user_controller = - UserManager::Get()->GetMultiProfileUserController(); + ChromeUserManager::Get()->GetMultiProfileUserController(); MultiProfileUserController::UserAllowedInSessionReason isUserAllowedReason; bool isUserAllowed = multi_profile_user_controller->IsUserAllowedInSession( user_id, &isUserAllowedReason); @@ -299,7 +300,7 @@ void UserSelectionScreen::SendUserList() { // http://crbug.com/230852 bool single_user = users.size() == 1; bool is_signin_to_add = LoginDisplayHostImpl::default_host() && - UserManager::Get()->IsUserLoggedIn(); + user_manager::UserManager::Get()->IsUserLoggedIn(); std::string owner; chromeos::CrosSettings::Get()->GetString(chromeos::kDeviceOwner, &owner); diff --git a/chrome/browser/chromeos/login/session/chrome_session_manager.cc b/chrome/browser/chromeos/login/session/chrome_session_manager.cc index 73f1720..d4077b6 100644 --- a/chrome/browser/chromeos/login/session/chrome_session_manager.cc +++ b/chrome/browser/chromeos/login/session/chrome_session_manager.cc @@ -14,7 +14,6 @@ #include "chrome/browser/chromeos/login/session/login_oobe_session_manager_delegate.h" #include "chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.h" #include "chrome/browser/chromeos/login/session/stub_login_session_manager_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/user_names.h" diff --git a/chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.cc b/chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.cc index 31c6513..1b43698 100644 --- a/chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.cc +++ b/chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.cc @@ -7,11 +7,11 @@ #include "base/command_line.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" #include "chromeos/audio/cras_audio_handler.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" namespace chromeos { @@ -48,7 +48,7 @@ void RestoreAfterCrashSessionManagerDelegate::Start() { content::Details<Profile>(profile())); // This call will set session state to SESSION_STATE_ACTIVE (same one). - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Now is the good time to retrieve other logged in users for this session. // First user has been already marked as logged in and active in diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc index d9eb16d..1a654b5 100644 --- a/chrome/browser/chromeos/login/session/user_session_manager.cc +++ b/chrome/browser/chromeos/login/session/user_session_manager.cc @@ -31,8 +31,8 @@ #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -64,6 +64,7 @@ #include "components/session_manager/core/session_manager.h" #include "components/signin/core/browser/signin_manager_base.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -190,7 +191,7 @@ void UserSessionManager::OverrideHomedir() { // Override user homedir, check for ProfileManager being initialized as // it may not exist in unit tests. if (g_browser_process->profile_manager()) { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager->GetLoggedInUsers().size() == 1) { base::FilePath homedir = ProfileHelper::GetProfilePathByUserIdHash( user_manager->GetPrimaryUser()->username_hash()); @@ -248,7 +249,7 @@ void UserSessionManager::StartSession( } void UserSessionManager::PerformPostUserLoggedInActions() { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager->GetLoggedInUsers().size() == 1) { // Owner must be first user in session. DeviceSettingsService can't deal // with multiple user and will mix up ownership, crbug.com/230018. @@ -263,7 +264,7 @@ void UserSessionManager::PerformPostUserLoggedInActions() { } void UserSessionManager::RestoreAuthenticationSession(Profile* user_profile) { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // We need to restore session only for logged in regular (GAIA) users. // Note: stub user is a special case that is used for tests, running // linux_chromeos build on dev workstations w/o user_id parameters. @@ -366,7 +367,7 @@ bool UserSessionManager::RespectLocalePreference( if (g_browser_process == NULL) return false; - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (!user || (user_manager->IsUserLoggedIn() && user != user_manager->GetPrimaryUser())) { return false; @@ -426,7 +427,8 @@ bool UserSessionManager::RespectLocalePreference( // // For Guest mode, user locale preferences will never get initialized. // So input methods should be enabled somewhere. - const bool enable_layouts = UserManager::Get()->IsLoggedInAsGuest(); + const bool enable_layouts = + user_manager::UserManager::Get()->IsLoggedInAsGuest(); locale_util::SwitchLanguage(pref_locale, enable_layouts, false /* login_layouts_only */, @@ -476,8 +478,8 @@ void UserSessionManager::OnSessionRestoreStateChanged( // error. http://crbug.com/295245 if (!connection_error) { // We are in one of "done" states here. - UserManager::Get()->SaveUserOAuthStatus( - UserManager::Get()->GetLoggedInUser()->email(), + user_manager::UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->GetLoggedInUser()->email(), user_status); } @@ -494,8 +496,8 @@ void UserSessionManager::OnNewRefreshTokenAvaiable(Profile* user_profile) { login_manager->RemoveObserver(this); // Mark user auth token status as valid. - UserManager::Get()->SaveUserOAuthStatus( - UserManager::Get()->GetLoggedInUser()->email(), + user_manager::UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->GetLoggedInUser()->email(), user_manager::User::OAUTH2_TOKEN_STATUS_VALID); VLOG(1) << "Exiting after new refresh token fetched"; @@ -511,7 +513,7 @@ void UserSessionManager::OnConnectionTypeChanged( base::CommandLine::ForCurrentProcess()->HasSwitch( ::switches::kTestName) || base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (type == net::NetworkChangeNotifier::CONNECTION_NONE || !user_manager->IsUserLoggedIn() || !user_manager->IsLoggedInAsRegularUser() || @@ -585,7 +587,7 @@ void UserSessionManager::StartCrosSession() { void UserSessionManager::NotifyUserLoggedIn() { BootTimesLoader* btl = BootTimesLoader::Get(); btl->AddLoginTimeMarker("UserLoggedIn-Start", false); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_manager->UserLoggedIn(user_context_.GetUserID(), user_context_.GetUserIDHash(), false); @@ -640,20 +642,21 @@ void UserSessionManager::OnProfileCreated(const UserContext& user_context, void UserSessionManager::InitProfilePreferences( Profile* profile, const UserContext& user_context) { - if (UserManager::Get()->IsCurrentUserNew()) { + if (user_manager::UserManager::Get()->IsCurrentUserNew()) { SetFirstLoginPrefs(profile->GetPrefs(), user_context.GetPublicSessionLocale(), user_context.GetPublicSessionInputMethod()); } - if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { - user_manager::User* active_user = UserManager::Get()->GetActiveUser(); + if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) { + user_manager::User* active_user = + user_manager::UserManager::Get()->GetActiveUser(); std::string supervised_user_sync_id = - UserManager::Get()->GetSupervisedUserManager()-> - GetUserSyncId(active_user->email()); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + active_user->email()); profile->GetPrefs()->SetString(prefs::kSupervisedUserId, supervised_user_sync_id); - } else if (UserManager::Get()->IsLoggedInAsRegularUser()) { + } else if (user_manager::UserManager::Get()->IsLoggedInAsRegularUser()) { // Make sure that the google service username is properly set (we do this // on every sign in, not just the first login, to deal with existing // profiles that might not have it set yet). @@ -743,7 +746,7 @@ void UserSessionManager::FinalizePrepareProfile(Profile* profile) { } btl->AddLoginTimeMarker("TPMOwn-End", false); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager->IsLoggedInAsRegularUser()) { SAMLOfflineSigninLimiter* saml_offline_signin_limiter = SAMLOfflineSigninLimiterFactory::GetForProfile(profile); @@ -867,8 +870,10 @@ void UserSessionManager::InitRlzImpl(Profile* profile, bool disabled) { // Negative ping delay means to send ping immediately after a first search is // recorded. RLZTracker::InitRlzFromProfileDelayed( - profile, UserManager::Get()->IsCurrentUserNew(), - ping_delay < 0, base::TimeDelta::FromMilliseconds(abs(ping_delay))); + profile, + user_manager::UserManager::Get()->IsCurrentUserNew(), + ping_delay < 0, + base::TimeDelta::FromMilliseconds(abs(ping_delay))); if (delegate_) delegate_->OnRlzInitialized(); #endif @@ -909,7 +914,7 @@ void UserSessionManager::OnRestoreActiveSessions( } // One profile has been already loaded on browser start. - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); DCHECK(user_manager->GetLoggedInUsers().size() == 1); DCHECK(user_manager->GetActiveUser()); std::string active_user_id = user_manager->GetActiveUser()->email(); @@ -940,7 +945,7 @@ void UserSessionManager::RestorePendingUserSessions() { // Check that this user is not logged in yet. user_manager::UserList logged_in_users = - UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); bool user_already_logged_in = false; for (user_manager::UserList::const_iterator it = logged_in_users.begin(); it != logged_in_users.end(); diff --git a/chrome/browser/chromeos/login/signin/auth_sync_observer.cc b/chrome/browser/chromeos/login/signin/auth_sync_observer.cc index f780776..6878da0 100644 --- a/chrome/browser/chromeos/login/signin/auth_sync_observer.cc +++ b/chrome/browser/chromeos/login/signin/auth_sync_observer.cc @@ -7,12 +7,13 @@ #include "base/metrics/user_metrics.h" #include "base/metrics/user_metrics_action.h" #include "base/prefs/pref_service.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/profile_sync_service_factory.h" #include "chrome/common/pref_names.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/user_metrics.h" #include "google_apis/gaia/gaia_auth_util.h" @@ -44,8 +45,8 @@ void AuthSyncObserver::Shutdown() { } void AuthSyncObserver::OnStateChanged() { - DCHECK(UserManager::Get()->IsLoggedInAsRegularUser() || - UserManager::Get()->IsLoggedInAsSupervisedUser()); + DCHECK(user_manager::UserManager::Get()->IsLoggedInAsRegularUser() || + user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()); ProfileSyncService* sync_service = ProfileSyncServiceFactory::GetForProfile(profile_); user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile_); @@ -65,15 +66,17 @@ void AuthSyncObserver::OnStateChanged() { // TODO(nkostyelv): Change observer after active user has changed. user_manager::User::OAuthTokenStatus old_status = user->oauth_token_status(); - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( email, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID); if (user->GetType() == user_manager::USER_TYPE_SUPERVISED && old_status != user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) { // Attempt to restore token from file. - UserManager::Get()->GetSupervisedUserManager()->LoadSupervisedUserToken( - profile_, - base::Bind(&AuthSyncObserver::OnSupervisedTokenLoaded, - base::Unretained(this))); + ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->LoadSupervisedUserToken( + profile_, + base::Bind(&AuthSyncObserver::OnSupervisedTokenLoaded, + base::Unretained(this))); content::RecordAction( base::UserMetricsAction("ManagedUsers_Chromeos_Sync_Invalidated")); } @@ -83,7 +86,7 @@ void AuthSyncObserver::OnStateChanged() { user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) { LOG(ERROR) << "Got an incorrectly invalidated token case, restoring token status."; - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( user->email(), user_manager::User::OAUTH2_TOKEN_STATUS_VALID); content::RecordAction( base::UserMetricsAction("ManagedUsers_Chromeos_Sync_Recovered")); @@ -92,7 +95,7 @@ void AuthSyncObserver::OnStateChanged() { } void AuthSyncObserver::OnSupervisedTokenLoaded(const std::string& token) { - UserManager::Get()->GetSupervisedUserManager()->ConfigureSyncWithToken( + ChromeUserManager::Get()->GetSupervisedUserManager()->ConfigureSyncWithToken( profile_, token); } diff --git a/chrome/browser/chromeos/login/signin/merge_session_load_page_unittest.cc b/chrome/browser/chromeos/login/signin/merge_session_load_page_unittest.cc index 02afa07..b23327b 100644 --- a/chrome/browser/chromeos/login/signin/merge_session_load_page_unittest.cc +++ b/chrome/browser/chromeos/login/signin/merge_session_load_page_unittest.cc @@ -7,7 +7,7 @@ #include "chrome/browser/chromeos/login/signin/merge_session_load_page.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" diff --git a/chrome/browser/chromeos/login/signin/merge_session_throttle.cc b/chrome/browser/chromeos/login/signin/merge_session_throttle.cc index ce9b7a7..b8f8b02 100644 --- a/chrome/browser/chromeos/login/signin/merge_session_throttle.cc +++ b/chrome/browser/chromeos/login/signin/merge_session_throttle.cc @@ -16,10 +16,9 @@ #include "chrome/browser/chromeos/login/signin/merge_session_xhr_request_waiter.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/common/url_constants.h" #include "components/google/core/browser/google_util.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/resource_controller.h" @@ -163,9 +162,9 @@ bool MergeSessionThrottle::ShouldDelayRequest( int render_view_id) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - if (!chromeos::UserManager::Get()->IsUserLoggedIn()) { + if (!user_manager::UserManager::Get()->IsUserLoggedIn()) { return false; - } else if (!chromeos::UserManager::Get()->IsLoggedInAsRegularUser()) { + } else if (!user_manager::UserManager::Get()->IsLoggedInAsRegularUser()) { // This is not a regular user session, let's remove the throttle // permanently. if (!AreAllSessionMergedAlready()) @@ -206,8 +205,8 @@ bool MergeSessionThrottle::ShouldDelayRequest( // In theory this should not happen since we should // kick off the session restore process for the newly added profile // before we attempt loading any page. - if (chromeos::UserManager::Get()->IsLoggedInAsRegularUser() && - !chromeos::UserManager::Get()->IsLoggedInAsStub()) { + if (user_manager::UserManager::Get()->IsLoggedInAsRegularUser() && + !user_manager::UserManager::Get()->IsLoggedInAsStub()) { LOG(WARNING) << "Loading content for a profile without " << "session restore?"; } diff --git a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc index 00677ec..edf53d9 100644 --- a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc +++ b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc @@ -14,7 +14,6 @@ #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" #include "chrome/browser/chromeos/login/signin_specifics.h" #include "chrome/browser/chromeos/login/test/oobe_base_test.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/extensions/extension_test_message_listener.h" #include "chrome/browser/profiles/profile_manager.h" @@ -31,6 +30,7 @@ #include "chromeos/login/auth/user_context.h" #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/test/browser_test_utils.h" #include "extensions/browser/process_manager.h" @@ -192,8 +192,9 @@ class OAuth2Test : public OobeBaseTest { return false; if (const user_manager::User* active_user = - UserManager::Get()->GetActiveUser()) + user_manager::UserManager::Get()->GetActiveUser()) { return active_user->email() == username; + } return false; } @@ -217,7 +218,7 @@ class OAuth2Test : public OobeBaseTest { protected: // OobeBaseTest overrides. virtual Profile* profile() OVERRIDE { - if (UserManager::Get()->GetActiveUser()) + if (user_manager::UserManager::Get()->GetActiveUser()) return ProfileManager::GetPrimaryUserProfile(); return OobeBaseTest::profile(); @@ -239,7 +240,7 @@ class OAuth2Test : public OobeBaseTest { chrome::NOTIFICATION_SESSION_STARTED, content::NotificationService::AllSources()).Wait(); const user_manager::UserList& logged_users = - UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_users.begin(); it != logged_users.end(); ++it) { diff --git a/chrome/browser/chromeos/login/signin/oauth2_login_manager.cc b/chrome/browser/chromeos/login/signin/oauth2_login_manager.cc index 9bdf0b4..122d679 100644 --- a/chrome/browser/chromeos/login/signin/oauth2_login_manager.cc +++ b/chrome/browser/chromeos/login/signin/oauth2_login_manager.cc @@ -12,7 +12,6 @@ #include "base/prefs/pref_service.h" #include "base/strings/string_util.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/chrome_signin_client_factory.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" @@ -22,6 +21,7 @@ #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/signin/core/browser/signin_client.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/user_manager/user_manager.h" #include "google_apis/gaia/gaia_auth_util.h" #include "google_apis/gaia/gaia_constants.h" #include "google_apis/gaia/gaia_urls.h" @@ -111,7 +111,7 @@ void OAuth2LoginManager::RestoreSessionFromSavedTokens() { // and OnRefreshTokenAvailable is not called. Flagging it here would // cause user to go through Gaia in next login to obtain a new refresh // token. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( primary_account_id, user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN); token_service->LoadCredentials(primary_account_id); @@ -140,14 +140,14 @@ void OAuth2LoginManager::OnRefreshTokenAvailable( // Do not validate tokens for supervised users, as they don't actually have // oauth2 token. - if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { + if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) { VLOG(1) << "Logged in as supervised user, skip token validation."; return; } // Only restore session cookies for the primary account in the profile. if (GetPrimaryAccountId() == account_id) { // Token is loaded. Undo the flagging before token loading. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( account_id, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); VerifySessionCookies(); } diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc b/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc index a7889eb..bd65b30 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_authentication.cc @@ -13,11 +13,11 @@ #include "base/threading/sequenced_worker_pool.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chromeos/cryptohome/signed_secret.pb.h" #include "chromeos/login/auth/key.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "crypto/hmac.h" #include "crypto/random.h" @@ -224,7 +224,7 @@ void SupervisedUserAuthentication::ScheduleSupervisedPasswordChange( const std::string& supervised_user_id, const base::DictionaryValue* password_data) { const user_manager::User* user = - UserManager::Get()->FindUser(supervised_user_id); + user_manager::UserManager::Get()->FindUser(supervised_user_id); base::FilePath profile_path = ProfileHelper::GetProfilePathByUserIdHash( user->username_hash()); JSONFileValueSerializer serializer(profile_path.Append(kPasswordUpdateFile)); @@ -281,7 +281,8 @@ void SupervisedUserAuthentication::LoadPasswordUpdateData( const std::string& user_id, const PasswordDataCallback& success_callback, const base::Closure& failure_callback) { - const user_manager::User* user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); base::FilePath profile_path = ProfileHelper::GetProfilePathByUserIdHash(user->username_hash()); PostTaskAndReplyWithResult( diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc index bda8ca2..8ac7f8d 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc @@ -159,7 +159,7 @@ IN_PROC_BROWSER_TEST_F(SupervisedUserTransactionCleanupTest, std::string user_id = registration_utility_stub_->supervised_user_id(); // Make sure user is already in list. - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(3UL, user_manager::UserManager::Get()->GetUsers().size()); // We wait for token now. Press cancel button at this point. JSEval("$('cancel-add-user-button').click()"); @@ -171,7 +171,7 @@ IN_PROC_BROWSER_TEST_( SupervisedUserTransactionCleanupTest2, testing::internal::GetTypeId<SupervisedUserTransactionCleanupTest>()) { // Make sure there is no supervised user in list. - ASSERT_EQ(2UL, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(2UL, user_manager::UserManager::Get()->GetUsers().size()); } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc index 56211fc..45cd784 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc @@ -17,8 +17,8 @@ #include "chrome/browser/chromeos/login/auth/mount_manager.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/profile_sync_service_factory.h" @@ -28,6 +28,7 @@ #include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/user_metrics.h" #include "crypto/random.h" @@ -148,7 +149,7 @@ void SupervisedUserCreationControllerNew::StartCreationImpl() { VLOG(1) << " Phase 1 : Prepare keys"; SupervisedUserManager* manager = - UserManager::Get()->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); manager->StartCreationTransaction(creation_context_->display_name); creation_context_->local_user_id = manager->GenerateUserId(); @@ -167,7 +168,7 @@ void SupervisedUserCreationControllerNew::StartCreationImpl() { creation_context_->display_name); SupervisedUserAuthentication* authentication = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); // When importing M35+ users we need only to store data, for all other cases // we need to create some keys. @@ -368,14 +369,16 @@ void SupervisedUserCreationControllerNew::OnSupervisedUserFilesStored( } // Assume that new token is valid. It will be automatically invalidated if // sync service fails to use it. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( creation_context_->local_user_id, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); stage_ = TOKEN_WRITTEN; timeout_timer_.Stop(); - UserManager::Get()->GetSupervisedUserManager()->CommitCreationTransaction(); + ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->CommitCreationTransaction(); content::RecordAction( base::UserMetricsAction("ManagedMode_LocallyManagedUserCreated")); diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc index 52ba4ab..53f5cd7 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc @@ -17,6 +17,7 @@ #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_controller.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/supervised_user/supervised_user_constants.h" @@ -445,8 +446,8 @@ bool SupervisedUserCreationScreen::FindUserByDisplayName( void SupervisedUserCreationScreen::ApplyPicture() { std::string user_id = controller_->GetSupervisedUserId(); - UserManager* user_manager = UserManager::Get(); - UserImageManager* image_manager = user_manager->GetUserImageManager(user_id); + UserImageManager* image_manager = + ChromeUserManager::Get()->GetUserImageManager(user_id); switch (selected_image_) { case user_manager::User::USER_IMAGE_EXTERNAL: // Photo decoding may not have been finished yet. @@ -485,7 +486,7 @@ void SupervisedUserCreationScreen::OnGetSupervisedUsers( // Copy for passing to WebUI, contains only id, name and avatar URL. scoped_ptr<base::ListValue> ui_users(new base::ListValue()); SupervisedUserManager* supervised_user_manager = - UserManager::Get()->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); // Stored copy, contains all necessary information. existing_users_.reset(new base::DictionaryValue()); diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_login_flow.cc b/chrome/browser/chromeos/login/supervised/supervised_user_login_flow.cc index 43ce73f..d6d7fb1 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_login_flow.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_login_flow.cc @@ -15,10 +15,11 @@ #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chromeos/login/auth/key.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" using content::BrowserThread; @@ -69,10 +70,10 @@ void SupervisedUserLoginFlow::ConfigureSync(const std::string& token) { // TODO(antrim): add error handling (no token loaded). // See also: http://crbug.com/312751 - UserManager::Get()->GetSupervisedUserManager()->ConfigureSyncWithToken( + ChromeUserManager::Get()->GetSupervisedUserManager()->ConfigureSyncWithToken( profile_, token); SupervisedUserAuthentication* auth = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); if (auth->HasScheduledPasswordUpdate(user_id())) { auth->LoadPasswordUpdateData( @@ -95,7 +96,7 @@ void SupervisedUserLoginFlow::OnPasswordChangeDataLoaded( const base::DictionaryValue* password_data) { // Edge case, when manager has signed in and already updated the password. SupervisedUserAuthentication* auth = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); if (!auth->NeedPasswordChange(user_id(), password_data)) { VLOG(1) << "Password already changed for " << user_id(); auth->ClearScheduledPasswordUpdate(user_id()); @@ -179,7 +180,7 @@ void SupervisedUserLoginFlow::OnNewKeyAdded( scoped_ptr<base::DictionaryValue> password_data) { VLOG(1) << "New key added"; SupervisedUserAuthentication* auth = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); auth->StorePasswordData(user_id(), *password_data.get()); auth->MarkKeyIncomplete(user_id(), true /* incomplete */); authenticator_->RemoveKey( @@ -224,7 +225,7 @@ void SupervisedUserLoginFlow::OnPasswordUpdated( VLOG(1) << "Updated password for supervised user"; SupervisedUserAuthentication* auth = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); // Incomplete state is not there in password_data, carry it from old state. bool was_incomplete = auth->HasIncompleteKey(user_id()); @@ -248,11 +249,10 @@ void SupervisedUserLoginFlow::Finish() { void SupervisedUserLoginFlow::LaunchExtraSteps( Profile* profile) { profile_ = profile; - UserManager::Get()->GetSupervisedUserManager()->LoadSupervisedUserToken( + ChromeUserManager::Get()->GetSupervisedUserManager()->LoadSupervisedUserToken( profile, - base::Bind( - &SupervisedUserLoginFlow::OnSyncSetupDataLoaded, - weak_factory_.GetWeakPtr())); + base::Bind(&SupervisedUserLoginFlow::OnSyncSetupDataLoaded, + weak_factory_.GetWeakPtr())); } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_password_browsertest.cc b/chrome/browser/chromeos/login/supervised/supervised_user_password_browsertest.cc index 9517059..eef1077 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_password_browsertest.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_password_browsertest.cc @@ -15,6 +15,7 @@ #include "chrome/browser/chromeos/login/supervised/supervised_user_test_base.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/webui_login_view.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -78,9 +79,10 @@ IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, DISABLED_PRE_PasswordChangeFromUserTest) { SigninAsSupervisedUser(true, 0, kTestSupervisedUserDisplayName); - const user_manager::User* user = UserManager::Get()->GetUsers().at(0); + const user_manager::User* user = + user_manager::UserManager::Get()->GetUsers().at(0); std::string sync_id = - UserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( user->email()); base::DictionaryValue password; password.SetIntegerWithoutPathExpansion( @@ -124,14 +126,14 @@ IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, DISABLED_PRE_PasswordChangeFromManagerTest) { const user_manager::User* supervised_user = - UserManager::Get()->GetUsers().at(0); + user_manager::UserManager::Get()->GetUsers().at(0); SigninAsManager(1); EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1); std::string sync_id = - UserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( supervised_user->email()); ::sync_pb::ManagedUserSpecifics managed_user_proto; @@ -190,9 +192,10 @@ IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, DISABLED_PRE_PRE_PasswordChangeUserAndManagerTest) { SigninAsSupervisedUser(true, 0, kTestSupervisedUserDisplayName); - const user_manager::User* user = UserManager::Get()->GetUsers().at(0); + const user_manager::User* user = + user_manager::UserManager::Get()->GetUsers().at(0); std::string sync_id = - UserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( user->email()); base::DictionaryValue password; password.SetIntegerWithoutPathExpansion( @@ -213,14 +216,14 @@ IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, IN_PROC_BROWSER_TEST_F(SupervisedUserPasswordTest, DISABLED_PRE_PasswordChangeUserAndManagerTest) { const user_manager::User* supervised_user = - UserManager::Get()->GetUsers().at(0); + user_manager::UserManager::Get()->GetUsers().at(0); SigninAsManager(1); EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1); std::string sync_id = - UserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( + ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId( supervised_user->email()); ::sync_pb::ManagedUserSpecifics managed_user_proto; diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_test_base.cc b/chrome/browser/chromeos/login/supervised/supervised_user_test_base.cc index fa0fc964..0074e2f 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_test_base.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_test_base.cc @@ -300,7 +300,7 @@ void SupervisedUserTestBase::StartFlowLoginAsManager() { login_observer.Wait(); // OAuth token is valid. - UserManager::Get()->SaveUserOAuthStatus( + user_manager::UserManager::Get()->SaveUserOAuthStatus( kTestManager, user_manager::User::OAUTH2_TOKEN_STATUS_VALID); base::RunLoop().RunUntilIdle(); @@ -357,11 +357,11 @@ void SupervisedUserTestBase::SigninAsSupervisedUser( EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1); // Log in as supervised user, make sure that everything works. - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(3UL, user_manager::UserManager::Get()->GetUsers().size()); // Created supervised user have to be first in a list. const user_manager::User* user = - UserManager::Get()->GetUsers().at(user_index); + user_manager::UserManager::Get()->GetUsers().at(user_index); ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name()); LoginUser(user->email()); if (check_homedir_calls) @@ -377,11 +377,11 @@ void SupervisedUserTestBase::SigninAsSupervisedUser( void SupervisedUserTestBase::SigninAsManager(int user_index) { // Log in as supervised user, make sure that everything works. - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(3UL, user_manager::UserManager::Get()->GetUsers().size()); // Created supervised user have to be first in a list. const user_manager::User* user = - UserManager::Get()->GetUsers().at(user_index); + user_manager::UserManager::Get()->GetUsers().at(user_index); LoginUser(user->email()); Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); shared_settings_adapter_.reset( @@ -394,11 +394,12 @@ void SupervisedUserTestBase::RemoveSupervisedUser( int user_index, const std::string& expected_display_name) { // Remove supervised user. - ASSERT_EQ(original_user_count, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(original_user_count, + user_manager::UserManager::Get()->GetUsers().size()); // Created supervised user have to be first in a list. const user_manager::User* user = - UserManager::Get()->GetUsers().at(user_index); + user_manager::UserManager::Get()->GetUsers().at(user_index); ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name()); // Open pod menu. @@ -429,7 +430,8 @@ void SupervisedUserTestBase::RemoveSupervisedUser( user_index)); // Make sure there is no supervised user in list. - ASSERT_EQ(original_user_count - 1, UserManager::Get()->GetUsers().size()); + ASSERT_EQ(original_user_count - 1, + user_manager::UserManager::Get()->GetUsers().size()); } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/ui/login_display.h b/chrome/browser/chromeos/login/ui/login_display.h index d8e51e4..f845522 100644 --- a/chrome/browser/chromeos/login/ui/login_display.h +++ b/chrome/browser/chromeos/login/ui/login_display.h @@ -12,9 +12,9 @@ #include "base/strings/string16.h" #include "chrome/browser/chromeos/login/help_app_launcher.h" #include "chrome/browser/chromeos/login/signin_specifics.h" -#include "chrome/browser/chromeos/login/users/remove_user_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/remove_user_delegate.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "ui/gfx/image/image.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/rect.h" @@ -25,7 +25,7 @@ class UserContext; // TODO(nkostylev): Extract interface, create a BaseLoginDisplay class. // An abstract class that defines login UI implementation. -class LoginDisplay : public RemoveUserDelegate { +class LoginDisplay : public user_manager::RemoveUserDelegate { public: // Sign in error IDs that require detailed error screen and not just // a simple error bubble. diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc index d1d1185..f4b62fc 100644 --- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc +++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc @@ -46,7 +46,6 @@ #include "chrome/browser/chromeos/login/ui/oobe_display.h" #include "chrome/browser/chromeos/login/ui/webui_login_display.h" #include "chrome/browser/chromeos/login/ui/webui_login_view.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/mobile_config.h" #include "chrome/browser/chromeos/net/delay_network_call.h" @@ -70,6 +69,7 @@ #include "chromeos/login/login_state.h" #include "chromeos/settings/timezone_settings.h" #include "components/session_manager/core/session_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents.h" @@ -408,7 +408,7 @@ LoginDisplayHostImpl::~LoginDisplayHostImpl() { default_host_ = NULL; // TODO(tengs): This should be refactored. See crbug.com/314934. - if (UserManager::Get()->IsCurrentUserNew()) { + if (user_manager::UserManager::Get()->IsCurrentUserNew()) { // DriveOptInController will delete itself when finished. (new DriveFirstRunController( ProfileManager::GetActiveUserProfile()))->EnableOfflineMode(); @@ -568,7 +568,7 @@ void LoginDisplayHostImpl::StartUserAdding( SetOobeProgressBarVisible(oobe_progress_bar_visible_ = false); SetStatusAreaVisible(true); sign_in_controller_->Init( - chromeos::UserManager::Get()->GetUsersAdmittedForMultiProfile()); + user_manager::UserManager::Get()->GetUsersAdmittedForMultiProfile()); CHECK(webui_login_display_); GetOobeUI()->ShowSigninScreen(LoginScreenContext(), webui_login_display_, @@ -605,7 +605,7 @@ void LoginDisplayHostImpl::StartSignInScreen( DVLOG(1) << "Starting sign in screen"; const user_manager::UserList& users = - chromeos::UserManager::Get()->GetUsers(); + user_manager::UserManager::Get()->GetUsers(); // Fix for users who updated device and thus never passed register screen. // If we already have users, we assume that it is not a second part of @@ -777,7 +777,7 @@ void LoginDisplayHostImpl::Observe( chrome::NOTIFICATION_BROWSER_OPENED, content::NotificationService::AllSources()); } else if (type == chrome::NOTIFICATION_LOGIN_USER_CHANGED && - chromeos::UserManager::Get()->IsCurrentUserNew()) { + user_manager::UserManager::Get()->IsCurrentUserNew()) { // For new user, move desktop to locker container so that windows created // during the user image picker step are below it. ash::Shell::GetInstance()-> diff --git a/chrome/browser/chromeos/login/ui/user_adding_screen.cc b/chrome/browser/chromeos/login/ui/user_adding_screen.cc index 8547d7b..e74b072 100644 --- a/chrome/browser/chromeos/login/ui/user_adding_screen.cc +++ b/chrome/browser/chromeos/login/ui/user_adding_screen.cc @@ -14,6 +14,7 @@ #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "components/session_manager/core/session_manager.h" +#include "components/user_manager/user_manager.h" #include "ui/gfx/rect.h" #include "ui/gfx/size.h" @@ -64,9 +65,9 @@ void UserAddingScreenImpl::Cancel() { display_host_->Finalize(); // Reset wallpaper if cancel adding user from multiple user sign in page. - if (UserManager::Get()->IsUserLoggedIn()) { + if (user_manager::UserManager::Get()->IsUserLoggedIn()) { WallpaperManager::Get()->SetUserWallpaperDelayed( - UserManager::Get()->GetActiveUser()->email()); + user_manager::UserManager::Get()->GetActiveUser()->email()); } } diff --git a/chrome/browser/chromeos/login/ui/user_adding_screen_browsertest.cc b/chrome/browser/chromeos/login/ui/user_adding_screen_browsertest.cc index 94771ba..a1e1174 100644 --- a/chrome/browser/chromeos/login/ui/user_adding_screen_browsertest.cc +++ b/chrome/browser/chromeos/login/ui/user_adding_screen_browsertest.cc @@ -14,10 +14,10 @@ #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" #include "chrome/browser/chromeos/login/ui/webui_login_view.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/in_process_browser_test.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" @@ -92,15 +92,15 @@ IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_CancelAdding) { IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, CancelAdding) { EXPECT_CALL(login_utils(), DoBrowserLaunch(_, _)).Times(1); - EXPECT_EQ(3u, UserManager::Get()->GetUsers().size()); - EXPECT_EQ(0u, UserManager::Get()->GetLoggedInUsers().size()); + EXPECT_EQ(3u, user_manager::UserManager::Get()->GetUsers().size()); + EXPECT_EQ(0u, user_manager::UserManager::Get()->GetLoggedInUsers().size()); EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY, ash::Shell::GetInstance()->session_state_delegate()-> GetSessionState()); LoginUser(kTestUsers[0]); - EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size()); + EXPECT_EQ(1u, user_manager::UserManager::Get()->GetLoggedInUsers().size()); EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, ash::Shell::GetInstance()->session_state_delegate()-> GetSessionState()); @@ -120,8 +120,9 @@ IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, CancelAdding) { GetSessionState()); EXPECT_TRUE(LoginDisplayHostImpl::default_host() == NULL); - EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size()); - EXPECT_EQ(kTestUsers[0], UserManager::Get()->GetActiveUser()->email()); + EXPECT_EQ(1u, user_manager::UserManager::Get()->GetLoggedInUsers().size()); + EXPECT_EQ(kTestUsers[0], + user_manager::UserManager::Get()->GetActiveUser()->email()); } IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_AddingSeveralUsers) { @@ -141,7 +142,7 @@ IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, AddingSeveralUsers) { ash::Shell::GetInstance()->session_state_delegate()-> GetSessionState()); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); for (int i = 1; i < 3; ++i) { UserAddingScreen::Get()->Start(); diff --git a/chrome/browser/chromeos/login/ui/webui_login_display.cc b/chrome/browser/chromeos/login/ui/webui_login_display.cc index f7a12e7..ececc37 100644 --- a/chrome/browser/chromeos/login/ui/webui_login_display.cc +++ b/chrome/browser/chromeos/login/ui/webui_login_display.cc @@ -19,6 +19,7 @@ #include "chromeos/ime/ime_keyboard.h" #include "chromeos/ime/input_method_manager.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #include "ui/base/l10n/l10n_util.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/user_activity_detector.h" @@ -122,7 +123,7 @@ void WebUILoginDisplay::SetUIEnabled(bool is_enabled) { // Allow this call only before user sign in or at lock screen. // If this call is made after new user signs in but login screen is still // around that would trigger a sign in extension refresh. - if (is_enabled && (!UserManager::Get()->IsUserLoggedIn() || + if (is_enabled && (!user_manager::UserManager::Get()->IsUserLoggedIn() || ScreenLocker::default_screen_locker())) { ClearAndEnablePassword(); } @@ -277,7 +278,7 @@ void WebUILoginDisplay::OnSigninScreenReady() { } void WebUILoginDisplay::RemoveUser(const std::string& username) { - UserManager::Get()->RemoveUser(username, this); + user_manager::UserManager::Get()->RemoveUser(username, this); } void WebUILoginDisplay::ResyncUserData() { diff --git a/chrome/browser/chromeos/login/user_flow.cc b/chrome/browser/chromeos/login/user_flow.cc index 81fe9908..fcfc9ca 100644 --- a/chrome/browser/chromeos/login/user_flow.cc +++ b/chrome/browser/chromeos/login/user_flow.cc @@ -5,14 +5,14 @@ #include "base/bind.h" #include "base/message_loop/message_loop.h" #include "chrome/browser/chromeos/login/user_flow.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" namespace chromeos { namespace { void UnregisterFlow(const std::string& user_id) { - UserManager::Get()->ResetUserFlow(user_id); + ChromeUserManager::Get()->ResetUserFlow(user_id); } } // namespace diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc index 146130e..46a772b 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc +++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc @@ -30,8 +30,9 @@ #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_util.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_util.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" @@ -53,6 +54,7 @@ #include "components/user_manager/user.h" #include "components/user_manager/user_image/default_user_images.h" #include "components/user_manager/user_image/user_image.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "content/public/test/test_utils.h" @@ -96,7 +98,7 @@ policy::CloudPolicyStore* GetStoreForUser(const user_manager::User* user) { } // namespace class UserImageManagerTest : public LoginManagerTest, - public UserManager::Observer { + public user_manager::UserManager::Observer { protected: UserImageManagerTest() : LoginManagerTest(true) { } @@ -112,23 +114,24 @@ class UserImageManagerTest : public LoginManagerTest, virtual void SetUpOnMainThread() OVERRIDE { LoginManagerTest::SetUpOnMainThread(); local_state_ = g_browser_process->local_state(); - UserManager::Get()->AddObserver(this); + user_manager::UserManager::Get()->AddObserver(this); } virtual void TearDownOnMainThread() OVERRIDE { - UserManager::Get()->RemoveObserver(this); + user_manager::UserManager::Get()->RemoveObserver(this); LoginManagerTest::TearDownOnMainThread(); } // UserManager::Observer overrides: - virtual void LocalStateChanged(UserManager* user_manager) OVERRIDE { + virtual void LocalStateChanged( + user_manager::UserManager* user_manager) OVERRIDE { if (run_loop_) run_loop_->Quit(); } // Logs in |username|. void LogIn(const std::string& username) { - UserManager::Get()->UserLoggedIn(username, username, false); + user_manager::UserManager::Get()->UserLoggedIn(username, username, false); } // Stores old (pre-migration) user image info. @@ -225,8 +228,8 @@ class UserImageManagerTest : public LoginManagerTest, net::TestURLFetcherFactory* url_fetcher_factory) { ProfileDownloader* profile_downloader = reinterpret_cast<UserImageManagerImpl*>( - UserManager::Get()->GetUserImageManager(username))-> - profile_downloader_.get(); + ChromeUserManager::Get()->GetUserImageManager(username)) + ->profile_downloader_.get(); ASSERT_TRUE(profile_downloader); static_cast<OAuth2TokenService::Consumer*>(profile_downloader)-> @@ -274,10 +277,11 @@ class UserImageManagerTest : public LoginManagerTest, fetcher->delegate()->OnURLFetchComplete(fetcher); run_loop.Run(); - const user_manager::User* user = UserManager::Get()->GetLoggedInUser(); + const user_manager::User* user = + user_manager::UserManager::Get()->GetLoggedInUser(); ASSERT_TRUE(user); UserImageManagerImpl* uim = reinterpret_cast<UserImageManagerImpl*>( - UserManager::Get()->GetUserImageManager(user->email())); + ChromeUserManager::Get()->GetUserImageManager(user->email())); if (uim->job_.get()) { run_loop_.reset(new base::RunLoop); run_loop_->Run(); @@ -305,7 +309,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { } IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { - UserManager::Get()->GetUsers(); // Load users. + user_manager::UserManager::Get()->GetUsers(); // Load users. // Old info preserved. ExpectOldUserImageInfo( kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); @@ -325,7 +329,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { } IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { - UserManager::Get()->GetUsers(); // Load users. + user_manager::UserManager::Get()->GetUsers(); // Load users. // Old info preserved. ExpectOldUserImageInfo( kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); @@ -348,12 +352,13 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { } IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { - UserManager::Get()->GetUsers(); // Load users. + user_manager::UserManager::Get()->GetUsers(); // Load users. // Old info preserved. ExpectOldUserImageInfo(kTestUser1, user_manager::User::USER_IMAGE_EXTERNAL, GetUserImagePath(kTestUser1, "png")); - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); EXPECT_TRUE(user->image_is_stub()); base::RunLoop run_loop; @@ -369,7 +374,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { ExpectNewUserImageInfo(kTestUser1, user_manager::User::USER_IMAGE_EXTERNAL, GetUserImagePath(kTestUser1, "jpg")); - user = UserManager::Get()->GetLoggedInUser(); + user = user_manager::UserManager::Get()->GetLoggedInUser(); ASSERT_TRUE(user); EXPECT_FALSE(user->image_is_safe_format()); // Check image dimensions. @@ -380,8 +385,9 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { } IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { - UserManager::Get()->GetUsers(); // Load users. - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + user_manager::UserManager::Get()->GetUsers(); // Load users. + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); // Wait for image load. if (user->image_index() == user_manager::User::USER_IMAGE_INVALID) { @@ -405,14 +411,15 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the // chosen user image. IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); const gfx::ImageSkia& default_image = user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserDefaultImageIndex( user_manager::kFirstDefaultImageIndex); @@ -430,7 +437,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { // Verifies that SaveUserImage() correctly sets and persists the chosen user // image. IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); SkBitmap custom_image_bitmap; @@ -441,7 +449,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { run_loop_.reset(new base::RunLoop); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserImage( user_manager::UserImage::CreateAndEncode(custom_image)); run_loop_->Run(); @@ -469,7 +477,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen // user image. IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); const base::FilePath custom_image_path = @@ -480,7 +489,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { run_loop_.reset(new base::RunLoop); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserImageFromFile(custom_image_path); run_loop_->Run(); @@ -509,7 +518,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and // persists the chosen user image. IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); @@ -517,7 +527,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { run_loop_.reset(new base::RunLoop); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserImageFromProfileImage(); run_loop_->Run(); @@ -556,7 +566,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, // clobber the default image chosen in the meantime. IN_PROC_BROWSER_TEST_F(UserImageManagerTest, ProfileImageDownloadDoesNotClobber) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); const gfx::ImageSkia& default_image = @@ -567,7 +578,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerTest, run_loop_.reset(new base::RunLoop); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserImageFromProfileImage(); run_loop_->Run(); @@ -676,7 +687,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { // image. // http://crbug.com/396352 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, DISABLED_SetAndClear) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); LoginUser(kTestUser1); @@ -745,7 +757,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, DISABLED_SetAndClear) { user_manager::GetDefaultImage(user_image_index); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserDefaultImageIndex(user_image_index); EXPECT_TRUE(user->HasDefaultImage()); @@ -763,7 +775,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { // then set through policy, the policy takes precedence, overriding the // previously chosen image. IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); LoginUser(kTestUser1); @@ -778,7 +791,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserDefaultImageIndex( user_manager::kFirstDefaultImageIndex); @@ -825,7 +838,8 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, // chooses a different image, the policy takes precedence, preventing the user // from overriding the previously chosen image. IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { - const user_manager::User* user = UserManager::Get()->FindUser(kTestUser1); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(kTestUser1); ASSERT_TRUE(user); LoginUser(kTestUser1); @@ -863,7 +877,7 @@ IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { // Choose a different user image. Verify that the user image does not change // as policy takes precedence. UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(kTestUser1); + ChromeUserManager::Get()->GetUserImageManager(kTestUser1); user_image_manager->SaveUserDefaultImageIndex( user_manager::kFirstDefaultImageIndex); diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc index f54185a..b112818 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc +++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc @@ -25,7 +25,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile_downloader.h" #include "chrome/browser/profiles/profile_manager.h" @@ -33,6 +32,7 @@ #include "chrome/grit/theme_resources.h" #include "components/user_manager/user_image/default_user_images.h" #include "components/user_manager/user_image/user_image.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -470,8 +470,9 @@ void UserImageManagerImpl::Job::NotifyJobDone() { parent_->OnJobDone(); } -UserImageManagerImpl::UserImageManagerImpl(const std::string& user_id, - UserManager* user_manager) +UserImageManagerImpl::UserImageManagerImpl( + const std::string& user_id, + user_manager::UserManager* user_manager) : UserImageManager(user_id), user_manager_(user_manager), downloading_profile_image_(false), @@ -763,9 +764,10 @@ void UserImageManagerImpl::OnProfileDownloadSuccess( user_manager_->UpdateUserAccountData( user_id(), - UserManager::UserAccountData(downloader->GetProfileFullName(), - downloader->GetProfileGivenName(), - downloader->GetProfileLocale())); + user_manager::UserManager::UserAccountData( + downloader->GetProfileFullName(), + downloader->GetProfileGivenName(), + downloader->GetProfileLocale())); if (!downloading_profile_image_) return; diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h index 1f4b8b0..7390374 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h +++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h @@ -32,12 +32,12 @@ class SequencedTaskRunner; namespace user_manager { class UserImage; +class UserManager; } namespace chromeos { class UserImageSyncObserver; -class UserManager; class UserImageManagerImpl : public UserImageManager, @@ -45,7 +45,7 @@ class UserImageManagerImpl public: // UserImageManager: UserImageManagerImpl(const std::string& user_id, - UserManager* user_manager); + user_manager::UserManager* user_manager); virtual ~UserImageManagerImpl(); virtual void LoadUserImage() OVERRIDE; @@ -153,7 +153,7 @@ class UserImageManagerImpl bool IsUserLoggedInAndRegular() const; // The user manager. - UserManager* user_manager_; + user_manager::UserManager* user_manager_; // Loader for JPEG user images. scoped_refptr<UserImageLoader> image_loader_; diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.cc b/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.cc index bb9268f..0052395 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.cc +++ b/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.cc @@ -10,12 +10,14 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/screens/user_image_screen.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/common/pref_names.h" #include "components/user_manager/user.h" #include "components/user_manager/user_image/default_user_images.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" @@ -168,7 +170,7 @@ void UserImageSyncObserver::UpdateLocalImageFromSynced() { if ((synced_index == local_index) || !IsIndexSupported(synced_index)) return; UserImageManager* image_manager = - UserManager::Get()->GetUserImageManager(user_->email()); + ChromeUserManager::Get()->GetUserImageManager(user_->email()); if (synced_index == user_manager::User::USER_IMAGE_PROFILE) { image_manager->SaveUserImageFromProfileImage(); } else { diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h b/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h index 503338b..a4c82ca 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h +++ b/chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h @@ -9,16 +9,13 @@ #include "base/memory/scoped_ptr.h" #include "base/observer_list.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/prefs/pref_service_syncable_observer.h" #include "content/public/browser/notification_observer.h" class PrefChangeRegistrar; class PrefServiceSyncable; class Profile; -namespace chromeos { -class User; -} + namespace content { class NotificationRegistrar; } @@ -26,6 +23,10 @@ namespace user_prefs { class PrefRegistrySyncable; } +namespace user_manager { +class User; +} + namespace chromeos { // This class is responsible for keeping local user image synced with diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager.cc b/chrome/browser/chromeos/login/users/chrome_user_manager.cc index d7fdd8b..1800e30 100644 --- a/chrome/browser/chromeos/login/users/chrome_user_manager.cc +++ b/chrome/browser/chromeos/login/users/chrome_user_manager.cc @@ -3,1016 +3,23 @@ // found in the LICENSE file. #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" - -#include <cstddef> -#include <set> - -#include "ash/multi_profile_uma.h" -#include "base/bind.h" -#include "base/bind_helpers.h" -#include "base/command_line.h" -#include "base/compiler_specific.h" -#include "base/format_macros.h" -#include "base/logging.h" -#include "base/metrics/histogram.h" -#include "base/prefs/pref_registry_simple.h" -#include "base/prefs/pref_service.h" -#include "base/prefs/scoped_user_pref_update.h" -#include "base/strings/string_util.h" -#include "base/strings/stringprintf.h" -#include "base/strings/utf_string_conversions.h" -#include "base/values.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" -#include "chrome/browser/chromeos/login/session/user_session_manager.h" -#include "chrome/browser/chromeos/login/signin/auth_sync_observer.h" -#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" -#include "chrome/browser/chromeos/profiles/multiprofiles_session_aborted_dialog.h" -#include "chrome/browser/chromeos/profiles/profile_helper.h" -#include "chrome/browser/chromeos/session_length_limiter.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/supervised_user/chromeos/manager_password_service_factory.h" -#include "chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.h" -#include "chrome/common/chrome_constants.h" -#include "chrome/common/chrome_switches.h" -#include "chrome/common/crash_keys.h" -#include "chrome/common/pref_names.h" -#include "chrome/grit/theme_resources.h" -#include "chromeos/chromeos_switches.h" -#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/user_image/user_image.h" -#include "components/user_manager/user_type.h" -#include "content/public/browser/browser_thread.h" -#include "content/public/browser/notification_service.h" -#include "policy/policy_constants.h" -#include "ui/base/resource/resource_bundle.h" -#include "ui/wm/core/wm_core_switches.h" - -using content::BrowserThread; +#include "components/user_manager/user_manager.h" namespace chromeos { -namespace { - -// A vector pref of the the regular users known on this device, arranged in LRU -// order. -const char kRegularUsers[] = "LoggedInUsers"; - -// A vector pref of the public accounts defined on this device. -const char kPublicAccounts[] = "PublicAccounts"; - -// A string pref that gets set when a public account is removed but a user is -// currently logged into that account, requiring the account's data to be -// removed after logout. -const char kPublicAccountPendingDataRemoval[] = - "PublicAccountPendingDataRemoval"; - -} // namespace -// static -void UserManager::RegisterPrefs(PrefRegistrySimple* registry) { - UserManagerBase::RegisterPrefs(registry); - - registry->RegisterListPref(kPublicAccounts); - registry->RegisterStringPref(kPublicAccountPendingDataRemoval, std::string()); - SupervisedUserManager::RegisterPrefs(registry); - SessionLengthLimiter::RegisterPrefs(registry); -} - -ChromeUserManager::ChromeUserManager() - : cros_settings_(CrosSettings::Get()), - device_local_account_policy_service_(NULL), - supervised_user_manager_(new SupervisedUserManagerImpl(this)), - weak_factory_(this) { - UpdateNumberOfUsers(); - - // UserManager instance should be used only on UI thread. - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - registrar_.Add(this, - chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED, - content::NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, - content::NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_PROFILE_CREATED, - content::NotificationService::AllSources()); - - // Since we're in ctor postpone any actions till this is fully created. - if (base::MessageLoop::current()) { - base::MessageLoop::current()->PostTask( - FROM_HERE, - base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, - weak_factory_.GetWeakPtr())); - } - - local_accounts_subscription_ = cros_settings_->AddSettingsObserver( - kAccountsPrefDeviceLocalAccounts, - base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, - weak_factory_.GetWeakPtr())); - multi_profile_user_controller_.reset( - new MultiProfileUserController(this, GetLocalState())); - - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part()->browser_policy_connector_chromeos(); - avatar_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver( - cros_settings_, - connector->GetDeviceLocalAccountPolicyService(), - policy::key::kUserAvatarImage, - this)); - avatar_policy_observer_->Init(); - - wallpaper_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver( - cros_settings_, - connector->GetDeviceLocalAccountPolicyService(), - policy::key::kWallpaperImage, - this)); - wallpaper_policy_observer_->Init(); +ChromeUserManager::ChromeUserManager( + scoped_refptr<base::TaskRunner> task_runner, + scoped_refptr<base::TaskRunner> blocking_task_runner) + : UserManagerBase(task_runner, blocking_task_runner) { } ChromeUserManager::~ChromeUserManager() { } -void ChromeUserManager::Shutdown() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManagerBase::Shutdown(); - - local_accounts_subscription_.reset(); - - // Stop the session length limiter. - session_length_limiter_.reset(); - - if (device_local_account_policy_service_) - device_local_account_policy_service_->RemoveObserver(this); - - for (UserImageManagerMap::iterator it = user_image_managers_.begin(), - ie = user_image_managers_.end(); - it != ie; - ++it) { - it->second->Shutdown(); - } - multi_profile_user_controller_.reset(); - avatar_policy_observer_.reset(); - wallpaper_policy_observer_.reset(); - registrar_.RemoveAll(); -} - -MultiProfileUserController* ChromeUserManager::GetMultiProfileUserController() { - return multi_profile_user_controller_.get(); -} - -UserImageManager* ChromeUserManager::GetUserImageManager( - const std::string& user_id) { - UserImageManagerMap::iterator ui = user_image_managers_.find(user_id); - if (ui != user_image_managers_.end()) - return ui->second.get(); - linked_ptr<UserImageManagerImpl> mgr(new UserImageManagerImpl(user_id, this)); - user_image_managers_[user_id] = mgr; - return mgr.get(); -} - -SupervisedUserManager* ChromeUserManager::GetSupervisedUserManager() { - return supervised_user_manager_.get(); -} - -user_manager::UserList ChromeUserManager::GetUsersAdmittedForMultiProfile() - const { - // Supervised users are not allowed to use multi-profiles. - if (GetLoggedInUsers().size() == 1 && - GetPrimaryUser()->GetType() != user_manager::USER_TYPE_REGULAR) { - return user_manager::UserList(); - } - - user_manager::UserList result; - const user_manager::UserList& users = GetUsers(); - for (user_manager::UserList::const_iterator it = users.begin(); - it != users.end(); - ++it) { - if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR && - !(*it)->is_logged_in()) { - MultiProfileUserController::UserAllowedInSessionReason check; - multi_profile_user_controller_->IsUserAllowedInSession((*it)->email(), - &check); - if (check == - MultiProfileUserController::NOT_ALLOWED_PRIMARY_USER_POLICY_FORBIDS) { - return user_manager::UserList(); - } - - // Users with a policy that prevents them being added to a session will be - // shown in login UI but will be grayed out. - // Same applies to owner account (see http://crbug.com/385034). - if (check == MultiProfileUserController::ALLOWED || - check == MultiProfileUserController::NOT_ALLOWED_POLICY_FORBIDS || - check == MultiProfileUserController::NOT_ALLOWED_OWNER_AS_SECONDARY || - check == - MultiProfileUserController::NOT_ALLOWED_POLICY_CERT_TAINTED) { - result.push_back(*it); - } - } - } - - return result; -} - -user_manager::UserList ChromeUserManager::GetUnlockUsers() const { - const user_manager::UserList& logged_in_users = GetLoggedInUsers(); - if (logged_in_users.empty()) - return user_manager::UserList(); - - user_manager::UserList unlock_users; - Profile* profile = - ProfileHelper::Get()->GetProfileByUserUnsafe(GetPrimaryUser()); - std::string primary_behavior = - profile->GetPrefs()->GetString(prefs::kMultiProfileUserBehavior); - - // Specific case: only one logged in user or - // primary user has primary-only multi-profile policy. - if (logged_in_users.size() == 1 || - primary_behavior == MultiProfileUserController::kBehaviorPrimaryOnly) { - if (GetPrimaryUser()->can_lock()) - unlock_users.push_back(primary_user_); - } else { - // Fill list of potential unlock users based on multi-profile policy state. - for (user_manager::UserList::const_iterator it = logged_in_users.begin(); - it != logged_in_users.end(); - ++it) { - user_manager::User* user = (*it); - Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); - const std::string behavior = - profile->GetPrefs()->GetString(prefs::kMultiProfileUserBehavior); - if (behavior == MultiProfileUserController::kBehaviorUnrestricted && - user->can_lock()) { - unlock_users.push_back(user); - } else if (behavior == MultiProfileUserController::kBehaviorPrimaryOnly) { - NOTREACHED() - << "Spotted primary-only multi-profile policy for non-primary user"; - } - } - } - - return unlock_users; -} - -void ChromeUserManager::SessionStarted() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManagerBase::SessionStarted(); - - content::NotificationService::current()->Notify( - chrome::NOTIFICATION_SESSION_STARTED, - content::Source<UserManager>(this), - content::Details<const user_manager::User>(GetActiveUser())); -} - -void ChromeUserManager::RemoveUserInternal(const std::string& user_email, - RemoveUserDelegate* delegate) { - CrosSettings* cros_settings = CrosSettings::Get(); - - const base::Closure& callback = - base::Bind(&ChromeUserManager::RemoveUserInternal, - weak_factory_.GetWeakPtr(), - user_email, - delegate); - - // Ensure the value of owner email has been fetched. - if (CrosSettingsProvider::TRUSTED != - cros_settings->PrepareTrustedValues(callback)) { - // Value of owner email is not fetched yet. RemoveUserInternal will be - // called again after fetch completion. - return; - } - std::string owner; - cros_settings->GetString(kDeviceOwner, &owner); - if (user_email == owner) { - // Owner is not allowed to be removed from the device. - return; - } - RemoveNonOwnerUserInternal(user_email, delegate); -} - -void ChromeUserManager::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); - - GetUserFlow(user_id)->HandleOAuthTokenStatusChange(oauth_token_status); -} - -void ChromeUserManager::SaveUserDisplayName( - const std::string& user_id, - const base::string16& display_name) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManagerBase::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. - if (!IsUserNonCryptohomeDataEphemeral(user_id)) - supervised_user_manager_->UpdateManagerName(user_id, display_name); -} - -void ChromeUserManager::StopPolicyObserverForTesting() { - avatar_policy_observer_.reset(); - wallpaper_policy_observer_.reset(); -} - -void ChromeUserManager::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_) { - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part() - ->browser_policy_connector_chromeos(); - device_local_account_policy_service_ = - connector->GetDeviceLocalAccountPolicyService(); - if (device_local_account_policy_service_) - device_local_account_policy_service_->AddObserver(this); - } - RetrieveTrustedDevicePolicies(); - UpdateOwnership(); - break; - case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { - Profile* profile = content::Details<Profile>(details).ptr(); - if (IsUserLoggedIn() && !IsLoggedInAsGuest() && !IsLoggedInAsKioskApp()) { - if (IsLoggedInAsSupervisedUser()) - SupervisedUserPasswordServiceFactory::GetForProfile(profile); - if (IsLoggedInAsRegularUser()) - ManagerPasswordServiceFactory::GetForProfile(profile); - - if (!profile->IsOffTheRecord()) { - AuthSyncObserver* sync_observer = - AuthSyncObserverFactory::GetInstance()->GetForProfile(profile); - sync_observer->StartObserving(); - multi_profile_user_controller_->StartObserving(profile); - } - } - break; - } - case chrome::NOTIFICATION_PROFILE_CREATED: { - Profile* profile = content::Source<Profile>(source).ptr(); - user_manager::User* user = - ProfileHelper::Get()->GetUserByProfile(profile); - if (user != NULL) - user->set_profile_is_created(); - - // If there is pending user switch, do it now. - if (!GetPendingUserSwitchID().empty()) { - // Call SwitchActiveUser async because otherwise it may cause - // ProfileManager::GetProfile before the profile gets registered - // in ProfileManager. It happens in case of sync profile load when - // NOTIFICATION_PROFILE_CREATED is called synchronously. - base::MessageLoop::current()->PostTask( - FROM_HERE, - base::Bind(&ChromeUserManager::SwitchActiveUser, - weak_factory_.GetWeakPtr(), - GetPendingUserSwitchID())); - SetPendingUserSwitchID(std::string()); - } - break; - } - default: - NOTREACHED(); - } -} - -void ChromeUserManager::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) - WallpaperManager::Get()->OnPolicySet(policy, user_id); - else - NOTREACHED(); -} - -void ChromeUserManager::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) - WallpaperManager::Get()->OnPolicyCleared(policy, user_id); - else - NOTREACHED(); -} - -void ChromeUserManager::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) - WallpaperManager::Get()->OnPolicyFetched(policy, user_id, data.Pass()); - else - NOTREACHED(); -} - -void ChromeUserManager::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() { - // 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() && - GetCurrentUserFlow()->CanLockScreen(); -} - -bool ChromeUserManager::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); -} - -bool ChromeUserManager::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 { - return g_browser_process->GetApplicationLocale(); -} - -PrefService* ChromeUserManager::GetLocalState() const { - return g_browser_process ? g_browser_process->local_state() : NULL; -} - -bool ChromeUserManager::IsEnterpriseManaged() const { - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part()->browser_policy_connector_chromeos(); - return connector->IsEnterpriseManaged(); -} - -void ChromeUserManager::LoadPublicAccounts( - std::set<std::string>* public_sessions_set) { - const base::ListValue* prefs_public_sessions = - GetLocalState()->GetList(kPublicAccounts); - std::vector<std::string> public_sessions; - ParseUserList(*prefs_public_sessions, - std::set<std::string>(), - &public_sessions, - public_sessions_set); - for (std::vector<std::string>::const_iterator it = public_sessions.begin(); - it != public_sessions.end(); - ++it) { - users_.push_back(user_manager::User::CreatePublicAccountUser(*it)); - UpdatePublicAccountDisplayName(*it); - } -} - -void ChromeUserManager::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. - if (supervised_user_manager_->HasFailedUserCreationTransaction()) - supervised_user_manager_->RollbackUserCreationTransaction(); -} - -void ChromeUserManager::PerformPostUserListLoadingActions() { - for (user_manager::UserList::iterator ui = users_.begin(), ue = users_.end(); - ui != ue; - ++ui) { - GetUserImageManager((*ui)->email())->LoadUserImage(); - } -} - -void ChromeUserManager::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 { - return DemoAppLauncher::IsDemoAppSession(user_id); -} - -bool ChromeUserManager::IsKioskApp(const std::string& user_id) const { - policy::DeviceLocalAccount::Type device_local_account_type; - return policy::IsDeviceLocalAccountUser(user_id, - &device_local_account_type) && - device_local_account_type == - policy::DeviceLocalAccount::TYPE_KIOSK_APP; -} - -bool ChromeUserManager::IsPublicAccountMarkedForRemoval( - const std::string& user_id) const { - return user_id == - GetLocalState()->GetString(kPublicAccountPendingDataRemoval); -} - -void ChromeUserManager::RetrieveTrustedDevicePolicies() { - // Local state may not be initialized in unit_tests. - if (!GetLocalState()) - return; - - SetEphemeralUsersEnabled(false); - SetOwnerEmail(std::string()); - - // Schedule a callback if device policy has not yet been verified. - if (CrosSettingsProvider::TRUSTED != - cros_settings_->PrepareTrustedValues( - base::Bind(&ChromeUserManager::RetrieveTrustedDevicePolicies, - weak_factory_.GetWeakPtr()))) { - return; - } - - bool ephemeral_users_enabled = false; - cros_settings_->GetBoolean(kAccountsPrefEphemeralUsersEnabled, - &ephemeral_users_enabled); - SetEphemeralUsersEnabled(ephemeral_users_enabled); - - std::string owner_email; - cros_settings_->GetString(kDeviceOwner, &owner_email); - SetOwnerEmail(owner_email); - - EnsureUsersLoaded(); - - bool changed = UpdateAndCleanUpPublicAccounts( - policy::GetDeviceLocalAccounts(cros_settings_)); - - // If ephemeral users are enabled and we are on the login screen, take this - // opportunity to clean up by removing all regular users except the owner. - if (GetEphemeralUsersEnabled() && !IsUserLoggedIn()) { - ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); - prefs_users_update->Clear(); - for (user_manager::UserList::iterator it = users_.begin(); - it != users_.end();) { - const std::string user_email = (*it)->email(); - if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR && - user_email != GetOwnerEmail()) { - RemoveNonCryptohomeData(user_email); - DeleteUser(*it); - it = users_.erase(it); - changed = true; - } else { - if ((*it)->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) - prefs_users_update->Append(new base::StringValue(user_email)); - ++it; - } - } - } - - if (changed) - NotifyUserListChanged(); -} - -void ChromeUserManager::GuestUserLoggedIn() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManagerBase::GuestUserLoggedIn(); - - // TODO(nkostylev): Add support for passing guest session cryptohome - // mount point. Legacy (--login-profile) value will be used for now. - // http://crosbug.com/230859 - active_user_->SetStubImage( - user_manager::UserImage( - *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_PROFILE_PICTURE_LOADING)), - user_manager::User::USER_IMAGE_INVALID, - false); - - // Initializes wallpaper after active_user_ is set. - WallpaperManager::Get()->SetUserWallpaperNow(chromeos::login::kGuestUserName); -} - -void ChromeUserManager::RegularUserLoggedIn(const std::string& user_id) { - UserManagerBase::RegularUserLoggedIn(user_id); - - if (IsCurrentUserNew()) - WallpaperManager::Get()->SetUserWallpaperNow(user_id); - - GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), false); - - WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); - - // Make sure that new data is persisted to Local State. - GetLocalState()->CommitPendingWrite(); -} - -void ChromeUserManager::RegularUserLoggedInAsEphemeral( - const std::string& user_id) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManagerBase::RegularUserLoggedInAsEphemeral(user_id); - - GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), false); - WallpaperManager::Get()->SetUserWallpaperNow(user_id); -} - -void ChromeUserManager::SupervisedUserLoggedIn(const std::string& user_id) { - // TODO(nkostylev): Refactor, share code with RegularUserLoggedIn(). - - // Remove the user from the user list. - active_user_ = RemoveRegularOrSupervisedUserFromList(user_id); - - // If the user was not found on the user list, create a new user. - if (!GetActiveUser()) { - SetIsCurrentUserNew(true); - active_user_ = user_manager::User::CreateSupervisedUser(user_id); - // Leaving OAuth token status at the default state = unknown. - WallpaperManager::Get()->SetUserWallpaperNow(user_id); - } else { - if (supervised_user_manager_->CheckForFirstRun(user_id)) { - SetIsCurrentUserNew(true); - WallpaperManager::Get()->SetUserWallpaperNow(user_id); - } else { - SetIsCurrentUserNew(false); - } - } - - // Add the user to the front of the user list. - ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); - prefs_users_update->Insert(0, new base::StringValue(user_id)); - users_.insert(users_.begin(), active_user_); - - // Now that user is in the list, save display name. - if (IsCurrentUserNew()) { - SaveUserDisplayName(GetActiveUser()->email(), - GetActiveUser()->GetDisplayName()); - } - - GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), true); - WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); - - // Make sure that new data is persisted to Local State. - GetLocalState()->CommitPendingWrite(); -} - -void ChromeUserManager::PublicAccountUserLoggedIn(user_manager::User* user) { - SetIsCurrentUserNew(true); - active_user_ = user; - - // The UserImageManager chooses a random avatar picture when a user logs in - // for the first time. Tell the UserImageManager that this user is not new to - // prevent the avatar from getting changed. - GetUserImageManager(user->email())->UserLoggedIn(false, true); - WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); -} - -void ChromeUserManager::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)); - DCHECK_EQ(policy::DeviceLocalAccount::TYPE_KIOSK_APP, - device_local_account_type); - - active_user_ = user_manager::User::CreateKioskAppUser(app_id); - active_user_->SetStubImage( - user_manager::UserImage( - *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_PROFILE_PICTURE_LOADING)), - user_manager::User::USER_IMAGE_INVALID, - false); - - WallpaperManager::Get()->SetUserWallpaperNow(app_id); - - // TODO(bartfab): Add KioskAppUsers to the users_ list and keep metadata like - // the kiosk_app_id in these objects, removing the need to re-parse the - // device-local account list here to extract the kiosk_app_id. - const std::vector<policy::DeviceLocalAccount> device_local_accounts = - policy::GetDeviceLocalAccounts(cros_settings_); - const policy::DeviceLocalAccount* account = NULL; - for (std::vector<policy::DeviceLocalAccount>::const_iterator it = - device_local_accounts.begin(); - it != device_local_accounts.end(); - ++it) { - if (it->user_id == app_id) { - account = &*it; - break; - } - } - std::string kiosk_app_id; - if (account) { - kiosk_app_id = account->kiosk_app_id; - } else { - LOG(ERROR) << "Logged into nonexistent kiosk-app account: " << app_id; - NOTREACHED(); - } - - CommandLine* command_line = CommandLine::ForCurrentProcess(); - command_line->AppendSwitch(::switches::kForceAppMode); - command_line->AppendSwitchASCII(::switches::kAppId, kiosk_app_id); - - // Disable window animation since kiosk app runs in a single full screen - // window and window animation causes start-up janks. - command_line->AppendSwitch(wm::switches::kWindowAnimationsDisabled); -} - -void ChromeUserManager::DemoAccountLoggedIn() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - active_user_ = - user_manager::User::CreateKioskAppUser(DemoAppLauncher::kDemoUserName); - active_user_->SetStubImage( - user_manager::UserImage( - *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_PROFILE_PICTURE_LOADING)), - user_manager::User::USER_IMAGE_INVALID, - false); - WallpaperManager::Get()->SetUserWallpaperNow(DemoAppLauncher::kDemoUserName); - - CommandLine* command_line = CommandLine::ForCurrentProcess(); - command_line->AppendSwitch(::switches::kForceAppMode); - command_line->AppendSwitchASCII(::switches::kAppId, - DemoAppLauncher::kDemoAppId); - - // Disable window animation since the demo app runs in a single full screen - // window and window animation causes start-up janks. - CommandLine::ForCurrentProcess()->AppendSwitch( - wm::switches::kWindowAnimationsDisabled); -} - -void ChromeUserManager::RetailModeUserLoggedIn() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - SetIsCurrentUserNew(true); - active_user_ = user_manager::User::CreateRetailModeUser(); - GetUserImageManager(chromeos::login::kRetailModeUserName) - ->UserLoggedIn(IsCurrentUserNew(), true); - WallpaperManager::Get()->SetUserWallpaperNow( - chromeos::login::kRetailModeUserName); -} - -void ChromeUserManager::NotifyOnLogin() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - - UserSessionManager::OverrideHomedir(); - UpdateNumberOfUsers(); - - UserManagerBase::NotifyOnLogin(); - - // TODO(nkostylev): Deprecate this notification in favor of - // ActiveUserChanged() observer call. - content::NotificationService::current()->Notify( - chrome::NOTIFICATION_LOGIN_USER_CHANGED, - content::Source<UserManager>(this), - content::Details<const user_manager::User>(GetActiveUser())); - - UserSessionManager::GetInstance()->PerformPostUserLoggedInActions(); -} - -void ChromeUserManager::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); - - WallpaperManager::Get()->RemoveUserWallpaperInfo(user_id); - GetUserImageManager(user_id)->DeleteUserImage(); - - supervised_user_manager_->RemoveNonCryptohomeData(user_id); - - multi_profile_user_controller_->RemoveCachedValues(user_id); -} - -void ChromeUserManager::CleanUpPublicAccountNonCryptohomeDataPendingRemoval() { - PrefService* local_state = GetLocalState(); - const std::string public_account_pending_data_removal = - local_state->GetString(kPublicAccountPendingDataRemoval); - if (public_account_pending_data_removal.empty() || - (IsUserLoggedIn() && - public_account_pending_data_removal == GetActiveUser()->email())) { - return; - } - - RemoveNonCryptohomeData(public_account_pending_data_removal); - local_state->ClearPref(kPublicAccountPendingDataRemoval); -} - -void ChromeUserManager::CleanUpPublicAccountNonCryptohomeData( - const std::vector<std::string>& old_public_accounts) { - std::set<std::string> users; - for (user_manager::UserList::const_iterator it = users_.begin(); - it != users_.end(); - ++it) - users.insert((*it)->email()); - - // If the user is logged into a public account that has been removed from the - // user list, mark the account's data as pending removal after logout. - if (IsLoggedInAsPublicAccount()) { - const std::string active_user_id = GetActiveUser()->email(); - if (users.find(active_user_id) == users.end()) { - GetLocalState()->SetString(kPublicAccountPendingDataRemoval, - active_user_id); - users.insert(active_user_id); - } - } - - // Remove the data belonging to any other public accounts that are no longer - // found on the user list. - for (std::vector<std::string>::const_iterator it = - old_public_accounts.begin(); - it != old_public_accounts.end(); - ++it) { - if (users.find(*it) == users.end()) - RemoveNonCryptohomeData(*it); - } -} - -bool ChromeUserManager::UpdateAndCleanUpPublicAccounts( - const std::vector<policy::DeviceLocalAccount>& device_local_accounts) { - // Try to remove any public account data marked as pending removal. - CleanUpPublicAccountNonCryptohomeDataPendingRemoval(); - - // Get the current list of public accounts. - std::vector<std::string> old_public_accounts; - for (user_manager::UserList::const_iterator it = users_.begin(); - it != users_.end(); - ++it) { - if ((*it)->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) - old_public_accounts.push_back((*it)->email()); - } - - // Get the new list of public accounts from policy. - std::vector<std::string> new_public_accounts; - for (std::vector<policy::DeviceLocalAccount>::const_iterator it = - device_local_accounts.begin(); - it != device_local_accounts.end(); - ++it) { - // TODO(mnissler, nkostylev, bartfab): Process Kiosk Apps within the - // standard login framework: http://crbug.com/234694 - if (it->type == policy::DeviceLocalAccount::TYPE_PUBLIC_SESSION) - new_public_accounts.push_back(it->user_id); - } - - // If the list of public accounts has not changed, return. - if (new_public_accounts.size() == old_public_accounts.size()) { - bool changed = false; - for (size_t i = 0; i < new_public_accounts.size(); ++i) { - if (new_public_accounts[i] != old_public_accounts[i]) { - changed = true; - break; - } - } - if (!changed) - return false; - } - - // Persist the new list of public accounts in a pref. - ListPrefUpdate prefs_public_accounts_update(GetLocalState(), kPublicAccounts); - prefs_public_accounts_update->Clear(); - for (std::vector<std::string>::const_iterator it = - new_public_accounts.begin(); - it != new_public_accounts.end(); - ++it) { - prefs_public_accounts_update->AppendString(*it); - } - - // Remove the old public accounts from the user list. - for (user_manager::UserList::iterator it = users_.begin(); - it != users_.end();) { - if ((*it)->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) { - if (*it != GetLoggedInUser()) - DeleteUser(*it); - it = users_.erase(it); - } else { - ++it; - } - } - - // Add the new public accounts to the front of the user list. - for (std::vector<std::string>::const_reverse_iterator it = - new_public_accounts.rbegin(); - it != new_public_accounts.rend(); - ++it) { - if (IsLoggedInAsPublicAccount() && *it == GetActiveUser()->email()) - users_.insert(users_.begin(), GetLoggedInUser()); - else - users_.insert(users_.begin(), - user_manager::User::CreatePublicAccountUser(*it)); - UpdatePublicAccountDisplayName(*it); - } - - for (user_manager::UserList::iterator - ui = users_.begin(), - ue = users_.begin() + new_public_accounts.size(); - ui != ue; - ++ui) { - GetUserImageManager((*ui)->email())->LoadUserImage(); - } - - // Remove data belonging to public accounts that are no longer found on the - // user list. - CleanUpPublicAccountNonCryptohomeData(old_public_accounts); - - return true; -} - -void ChromeUserManager::UpdatePublicAccountDisplayName( - const std::string& user_id) { - std::string display_name; - - if (device_local_account_policy_service_) { - policy::DeviceLocalAccountPolicyBroker* broker = - device_local_account_policy_service_->GetBrokerForUser(user_id); - if (broker) - display_name = broker->GetDisplayName(); - } - - // Set or clear the display name. - SaveUserDisplayName(user_id, base::UTF8ToUTF16(display_name)); -} - -UserFlow* ChromeUserManager::GetCurrentUserFlow() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - if (!IsUserLoggedIn()) - return GetDefaultUserFlow(); - return GetUserFlow(GetLoggedInUser()->email()); -} - -UserFlow* ChromeUserManager::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()) - return it->second; - return GetDefaultUserFlow(); -} - -void ChromeUserManager::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) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - FlowMap::iterator it = specific_flows_.find(user_id); - if (it != specific_flows_.end()) { - delete it->second; - specific_flows_.erase(it); - } -} - -bool ChromeUserManager::AreSupervisedUsersAllowed() const { - bool supervised_users_allowed = false; - cros_settings_->GetBoolean(kAccountsPrefSupervisedUsersEnabled, - &supervised_users_allowed); - return supervised_users_allowed; -} - -UserFlow* ChromeUserManager::GetDefaultUserFlow() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - if (!default_flow_.get()) - default_flow_.reset(new DefaultUserFlow()); - return default_flow_.get(); -} - -void ChromeUserManager::NotifyUserListChanged() { - content::NotificationService::current()->Notify( - chrome::NOTIFICATION_USER_LIST_CHANGED, - content::Source<UserManager>(this), - content::NotificationService::NoDetails()); -} - -void ChromeUserManager::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); -} - -void ChromeUserManager::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() { - size_t users = GetLoggedInUsers().size(); - if (users) { - // Write the user number as UMA stat when a multi user session is possible. - if ((users + GetUsersAdmittedForMultiProfile().size()) > 1) - ash::MultiProfileUMA::RecordUserCount(users); - } - - base::debug::SetCrashKeyValue( - crash_keys::kNumberOfUsers, - base::StringPrintf("%" PRIuS, GetLoggedInUsers().size())); +// static +ChromeUserManager* ChromeUserManager::Get() { + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); + return user_manager ? static_cast<ChromeUserManager*>(user_manager) : NULL; } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager.h b/chrome/browser/chromeos/login/users/chrome_user_manager.h index 84dd7d9..c6a74eb 100644 --- a/chrome/browser/chromeos/login/users/chrome_user_manager.h +++ b/chrome/browser/chromeos/login/users/chrome_user_manager.h @@ -5,222 +5,53 @@ #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_CHROME_USER_MANAGER_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_CHROME_USER_MANAGER_H_ -#include <map> -#include <string> -#include <vector> - #include "base/basictypes.h" -#include "base/containers/hash_tables.h" -#include "base/memory/linked_ptr.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" -#include "base/observer_list.h" -#include "base/synchronization/lock.h" -#include "base/time/time.h" -#include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" -#include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager_base.h" -#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" -#include "chrome/browser/chromeos/policy/cloud_external_data_policy_observer.h" -#include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" -#include "chrome/browser/chromeos/settings/cros_settings.h" -#include "chrome/browser/chromeos/settings/device_settings_service.h" -#include "components/user_manager/user.h" -#include "content/public/browser/notification_observer.h" -#include "content/public/browser/notification_registrar.h" - -class PrefService; -class ProfileSyncService; +#include "components/user_manager/user_manager_base.h" -namespace policy { -struct DeviceLocalAccount; +namespace base { +class TaskRunner; } namespace chromeos { class MultiProfileUserController; -class RemoveUserDelegate; -class SupervisedUserManagerImpl; -class SessionLengthLimiter; +class SupervisedUserManager; +class UserFlow; +class UserImageManager; -// Chrome specific implementation of the UserManager. -class ChromeUserManager - : public UserManagerBase, - public content::NotificationObserver, - public policy::CloudExternalDataPolicyObserver::Delegate, - public policy::DeviceLocalAccountPolicyService::Observer, - public MultiProfileUserControllerDelegate { +// Chrome specific interface of the UserManager. +class ChromeUserManager : public user_manager::UserManagerBase { public: + ChromeUserManager(scoped_refptr<base::TaskRunner> task_runner, + scoped_refptr<base::TaskRunner> blocking_task_runner); virtual ~ChromeUserManager(); - // UserManager implementation: - virtual void Shutdown() OVERRIDE; - virtual MultiProfileUserController* GetMultiProfileUserController() OVERRIDE; - virtual UserImageManager* GetUserImageManager( - const std::string& user_id) OVERRIDE; - virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE; - virtual user_manager::UserList GetUsersAdmittedForMultiProfile() - const OVERRIDE; - virtual user_manager::UserList GetUnlockUsers() const OVERRIDE; - virtual void SessionStarted() OVERRIDE; - virtual void SaveUserOAuthStatus( - const std::string& user_id, - user_manager::User::OAuthTokenStatus oauth_token_status) OVERRIDE; - virtual void SaveUserDisplayName(const std::string& user_id, - const base::string16& display_name) OVERRIDE; - virtual bool CanCurrentUserLock() const OVERRIDE; - virtual bool IsUserNonCryptohomeDataEphemeral( - const std::string& user_id) const OVERRIDE; - - virtual UserFlow* GetCurrentUserFlow() const OVERRIDE; - virtual UserFlow* GetUserFlow(const std::string& user_id) const OVERRIDE; - virtual void SetUserFlow(const std::string& user_id, UserFlow* flow) OVERRIDE; - virtual void ResetUserFlow(const std::string& user_id) OVERRIDE; - virtual bool AreSupervisedUsersAllowed() const OVERRIDE; - - // content::NotificationObserver implementation. - virtual void Observe(int type, - const content::NotificationSource& source, - const content::NotificationDetails& details) OVERRIDE; - - // policy::CloudExternalDataPolicyObserver::Delegate: - virtual void OnExternalDataSet(const std::string& policy, - const std::string& user_id) OVERRIDE; - virtual void OnExternalDataCleared(const std::string& policy, - const std::string& user_id) OVERRIDE; - virtual void OnExternalDataFetched(const std::string& policy, - const std::string& user_id, - scoped_ptr<std::string> data) OVERRIDE; - - // policy::DeviceLocalAccountPolicyService::Observer implementation. - virtual void OnPolicyUpdated(const std::string& user_id) OVERRIDE; - virtual void OnDeviceLocalAccountsChanged() OVERRIDE; - - void StopPolicyObserverForTesting(); - - protected: - // UserManagerBase implementation: - virtual bool AreEphemeralUsersEnabled() const OVERRIDE; - virtual const std::string& GetApplicationLocale() const OVERRIDE; - virtual PrefService* GetLocalState() const OVERRIDE; - virtual bool IsEnterpriseManaged() const OVERRIDE; - virtual void LoadPublicAccounts(std::set<std::string>* users_set) OVERRIDE; - virtual void NotifyOnLogin() OVERRIDE; - virtual void NotifyUserAddedToSession(const user_manager::User* added_user, - bool user_switch_pending) OVERRIDE; - virtual void PerformPreUserListLoadingActions() OVERRIDE; - virtual void PerformPostUserListLoadingActions() OVERRIDE; - virtual void PerformPostUserLoggedInActions(bool browser_restart) OVERRIDE; - virtual void RemoveNonCryptohomeData(const std::string& user_id) OVERRIDE; - virtual void RemoveUserInternal(const std::string& user_email, - RemoveUserDelegate* delegate) OVERRIDE; - virtual bool IsDemoApp(const std::string& user_id) const OVERRIDE; - virtual bool IsKioskApp(const std::string& user_id) const OVERRIDE; - virtual bool IsPublicAccountMarkedForRemoval( - const std::string& user_id) const OVERRIDE; - virtual void DemoAccountLoggedIn() OVERRIDE; - virtual void GuestUserLoggedIn() OVERRIDE; - virtual void KioskAppLoggedIn(const std::string& app_id) OVERRIDE; - virtual void PublicAccountUserLoggedIn(user_manager::User* user) OVERRIDE; - virtual void RegularUserLoggedIn(const std::string& user_id) OVERRIDE; - virtual void RegularUserLoggedInAsEphemeral( - const std::string& user_id) OVERRIDE; - virtual void RetailModeUserLoggedIn() OVERRIDE; - virtual void SupervisedUserLoggedIn(const std::string& user_id) OVERRIDE; - - private: - friend class SupervisedUserManagerImpl; - friend class UserManager; - friend class UserManagerTest; - friend class WallpaperManager; - friend class WallpaperManagerTest; - - typedef base::hash_map<std::string, linked_ptr<UserImageManager> > - UserImageManagerMap; - - ChromeUserManager(); - - // Retrieves trusted device policies and removes users from the persistent - // list if ephemeral users are enabled. Schedules a callback to itself if - // trusted device policies are not yet available. - void RetrieveTrustedDevicePolicies(); - - // Updates current user ownership on UI thread. - void UpdateOwnership(); - - // If data for a public account is marked as pending removal and the user is - // no longer logged into that account, removes the data. - void CleanUpPublicAccountNonCryptohomeDataPendingRemoval(); - - // Removes data belonging to public accounts that are no longer found on the - // user list. If the user is currently logged into one of these accounts, the - // data for that account is not removed immediately but marked as pending - // removal after logout. - void CleanUpPublicAccountNonCryptohomeData( - const std::vector<std::string>& old_public_accounts); - - // Replaces the list of public accounts with those found in - // |device_local_accounts|. Ensures that data belonging to accounts no longer - // on the list is removed. Returns |true| if the list has changed. - // Public accounts are defined by policy. This method is called whenever an - // updated list of public accounts is received from policy. - bool UpdateAndCleanUpPublicAccounts( - const std::vector<policy::DeviceLocalAccount>& device_local_accounts); - - // Updates the display name for public account |username| from policy settings - // associated with that username. - void UpdatePublicAccountDisplayName(const std::string& user_id); - - // Notifies the UI about a change to the user list. - void NotifyUserListChanged(); - - // Lazily creates default user flow. - UserFlow* GetDefaultUserFlow() const; - - // MultiProfileUserControllerDelegate implementation: - virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE; - - // Update the number of users. - void UpdateNumberOfUsers(); - - // Interface to the signed settings store. - CrosSettings* cros_settings_; - - // Interface to device-local account definitions and associated policy. - policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_; - - content::NotificationRegistrar registrar_; - - // User avatar managers. - UserImageManagerMap user_image_managers_; - - // Supervised user manager. - scoped_ptr<SupervisedUserManagerImpl> supervised_user_manager_; - - // Session length limiter. - scoped_ptr<SessionLengthLimiter> session_length_limiter_; - - typedef std::map<std::string, UserFlow*> FlowMap; - - // Lazy-initialized default flow. - mutable scoped_ptr<UserFlow> default_flow_; - - // Specific flows by user e-mail. Keys should be canonicalized before - // access. - FlowMap specific_flows_; + // Returns current ChromeUserManager or NULL if instance hasn't been + // yet initialized. + static ChromeUserManager* Get(); - scoped_ptr<CrosSettings::ObserverSubscription> local_accounts_subscription_; + virtual MultiProfileUserController* GetMultiProfileUserController() = 0; + virtual UserImageManager* GetUserImageManager(const std::string& user_id) = 0; + virtual SupervisedUserManager* GetSupervisedUserManager() = 0; - scoped_ptr<MultiProfileUserController> multi_profile_user_controller_; + // Method that allows to set |flow| for user identified by |user_id|. + // Flow should be set before login attempt. + // Takes ownership of the |flow|, |flow| will be deleted in case of login + // failure. + virtual void SetUserFlow(const std::string& user_id, UserFlow* flow) = 0; - // Observer for the policy that can be used to manage user images. - scoped_ptr<policy::CloudExternalDataPolicyObserver> avatar_policy_observer_; + // Return user flow for current user. Returns instance of DefaultUserFlow if + // no flow was defined for current user, or user is not logged in. + // Returned value should not be cached. + virtual UserFlow* GetCurrentUserFlow() const = 0; - // Observer for the policy that can be used to manage wallpapers. - scoped_ptr<policy::CloudExternalDataPolicyObserver> - wallpaper_policy_observer_; + // Return user flow for user identified by |user_id|. Returns instance of + // DefaultUserFlow if no flow was defined for user. + // Returned value should not be cached. + virtual UserFlow* GetUserFlow(const std::string& user_id) const = 0; - base::WeakPtrFactory<ChromeUserManager> weak_factory_; + // Resets user flow for user identified by |user_id|. + virtual void ResetUserFlow(const std::string& user_id) = 0; DISALLOW_COPY_AND_ASSIGN(ChromeUserManager); }; diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc new file mode 100644 index 0000000..32aab49 --- /dev/null +++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc @@ -0,0 +1,1040 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// 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_impl.h" + +#include <cstddef> +#include <set> + +#include "ash/multi_profile_uma.h" +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "base/command_line.h" +#include "base/compiler_specific.h" +#include "base/format_macros.h" +#include "base/logging.h" +#include "base/metrics/histogram.h" +#include "base/prefs/pref_registry_simple.h" +#include "base/prefs/pref_service.h" +#include "base/prefs/scoped_user_pref_update.h" +#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" +#include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" +#include "chrome/browser/chromeos/login/session/user_session_manager.h" +#include "chrome/browser/chromeos/login/signin/auth_sync_observer.h" +#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/supervised_user_manager_impl.h" +#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" +#include "chrome/browser/chromeos/policy/device_local_account.h" +#include "chrome/browser/chromeos/profiles/multiprofiles_session_aborted_dialog.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/chromeos/session_length_limiter.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/supervised_user/chromeos/manager_password_service_factory.h" +#include "chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.h" +#include "chrome/common/chrome_constants.h" +#include "chrome/common/chrome_switches.h" +#include "chrome/common/crash_keys.h" +#include "chrome/common/pref_names.h" +#include "chrome/grit/theme_resources.h" +#include "chromeos/chromeos_switches.h" +#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" +#include "content/public/browser/notification_service.h" +#include "policy/policy_constants.h" +#include "ui/base/resource/resource_bundle.h" +#include "ui/wm/core/wm_core_switches.h" + +using content::BrowserThread; + +namespace chromeos { +namespace { + +// A vector pref of the the regular users known on this device, arranged in LRU +// order. +const char kRegularUsers[] = "LoggedInUsers"; + +// A vector pref of the public accounts defined on this device. +const char kPublicAccounts[] = "PublicAccounts"; + +// A string pref that gets set when a public account is removed but a user is +// currently logged into that account, requiring the account's data to be +// removed after logout. +const char kPublicAccountPendingDataRemoval[] = + "PublicAccountPendingDataRemoval"; + +} // namespace + +// static +void ChromeUserManagerImpl::RegisterPrefs(PrefRegistrySimple* registry) { + ChromeUserManager::RegisterPrefs(registry); + + registry->RegisterListPref(kPublicAccounts); + registry->RegisterStringPref(kPublicAccountPendingDataRemoval, std::string()); + SupervisedUserManager::RegisterPrefs(registry); + SessionLengthLimiter::RegisterPrefs(registry); +} + +// 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) { + UpdateNumberOfUsers(); + + // UserManager instance should be used only on UI thread. + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + registrar_.Add(this, + chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED, + content::NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, + content::NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_PROFILE_CREATED, + content::NotificationService::AllSources()); + + // Since we're in ctor postpone any actions till this is fully created. + if (base::MessageLoop::current()) { + base::MessageLoop::current()->PostTask( + FROM_HERE, + base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, + weak_factory_.GetWeakPtr())); + } + + local_accounts_subscription_ = cros_settings_->AddSettingsObserver( + kAccountsPrefDeviceLocalAccounts, + base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, + weak_factory_.GetWeakPtr())); + multi_profile_user_controller_.reset( + new MultiProfileUserController(this, GetLocalState())); + + policy::BrowserPolicyConnectorChromeOS* connector = + g_browser_process->platform_part()->browser_policy_connector_chromeos(); + avatar_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver( + cros_settings_, + connector->GetDeviceLocalAccountPolicyService(), + policy::key::kUserAvatarImage, + this)); + avatar_policy_observer_->Init(); + + wallpaper_policy_observer_.reset(new policy::CloudExternalDataPolicyObserver( + cros_settings_, + connector->GetDeviceLocalAccountPolicyService(), + policy::key::kWallpaperImage, + this)); + wallpaper_policy_observer_->Init(); +} + +ChromeUserManagerImpl::~ChromeUserManagerImpl() { +} + +void ChromeUserManagerImpl::Shutdown() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ChromeUserManager::Shutdown(); + + local_accounts_subscription_.reset(); + + // Stop the session length limiter. + session_length_limiter_.reset(); + + if (device_local_account_policy_service_) + device_local_account_policy_service_->RemoveObserver(this); + + for (UserImageManagerMap::iterator it = user_image_managers_.begin(), + ie = user_image_managers_.end(); + it != ie; + ++it) { + it->second->Shutdown(); + } + multi_profile_user_controller_.reset(); + avatar_policy_observer_.reset(); + wallpaper_policy_observer_.reset(); + registrar_.RemoveAll(); +} + +MultiProfileUserController* +ChromeUserManagerImpl::GetMultiProfileUserController() { + return multi_profile_user_controller_.get(); +} + +UserImageManager* ChromeUserManagerImpl::GetUserImageManager( + const std::string& user_id) { + UserImageManagerMap::iterator ui = user_image_managers_.find(user_id); + if (ui != user_image_managers_.end()) + return ui->second.get(); + linked_ptr<UserImageManagerImpl> mgr(new UserImageManagerImpl(user_id, this)); + user_image_managers_[user_id] = mgr; + return mgr.get(); +} + +SupervisedUserManager* ChromeUserManagerImpl::GetSupervisedUserManager() { + return supervised_user_manager_.get(); +} + +user_manager::UserList ChromeUserManagerImpl::GetUsersAdmittedForMultiProfile() + const { + // Supervised users are not allowed to use multi-profiles. + if (GetLoggedInUsers().size() == 1 && + GetPrimaryUser()->GetType() != user_manager::USER_TYPE_REGULAR) { + return user_manager::UserList(); + } + + user_manager::UserList result; + const user_manager::UserList& users = GetUsers(); + for (user_manager::UserList::const_iterator it = users.begin(); + it != users.end(); + ++it) { + if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR && + !(*it)->is_logged_in()) { + MultiProfileUserController::UserAllowedInSessionReason check; + multi_profile_user_controller_->IsUserAllowedInSession((*it)->email(), + &check); + if (check == + MultiProfileUserController::NOT_ALLOWED_PRIMARY_USER_POLICY_FORBIDS) { + return user_manager::UserList(); + } + + // Users with a policy that prevents them being added to a session will be + // shown in login UI but will be grayed out. + // Same applies to owner account (see http://crbug.com/385034). + if (check == MultiProfileUserController::ALLOWED || + check == MultiProfileUserController::NOT_ALLOWED_POLICY_FORBIDS || + check == MultiProfileUserController::NOT_ALLOWED_OWNER_AS_SECONDARY || + check == + MultiProfileUserController::NOT_ALLOWED_POLICY_CERT_TAINTED) { + result.push_back(*it); + } + } + } + + return result; +} + +user_manager::UserList ChromeUserManagerImpl::GetUnlockUsers() const { + const user_manager::UserList& logged_in_users = GetLoggedInUsers(); + if (logged_in_users.empty()) + return user_manager::UserList(); + + user_manager::UserList unlock_users; + Profile* profile = + ProfileHelper::Get()->GetProfileByUserUnsafe(GetPrimaryUser()); + std::string primary_behavior = + profile->GetPrefs()->GetString(prefs::kMultiProfileUserBehavior); + + // Specific case: only one logged in user or + // primary user has primary-only multi-profile policy. + if (logged_in_users.size() == 1 || + primary_behavior == MultiProfileUserController::kBehaviorPrimaryOnly) { + if (GetPrimaryUser()->can_lock()) + unlock_users.push_back(primary_user_); + } else { + // Fill list of potential unlock users based on multi-profile policy state. + for (user_manager::UserList::const_iterator it = logged_in_users.begin(); + it != logged_in_users.end(); + ++it) { + user_manager::User* user = (*it); + Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); + const std::string behavior = + profile->GetPrefs()->GetString(prefs::kMultiProfileUserBehavior); + if (behavior == MultiProfileUserController::kBehaviorUnrestricted && + user->can_lock()) { + unlock_users.push_back(user); + } else if (behavior == MultiProfileUserController::kBehaviorPrimaryOnly) { + NOTREACHED() + << "Spotted primary-only multi-profile policy for non-primary user"; + } + } + } + + return unlock_users; +} + +void ChromeUserManagerImpl::SessionStarted() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ChromeUserManager::SessionStarted(); + + content::NotificationService::current()->Notify( + chrome::NOTIFICATION_SESSION_STARTED, + content::Source<UserManager>(this), + content::Details<const user_manager::User>(GetActiveUser())); +} + +void ChromeUserManagerImpl::RemoveUserInternal( + const std::string& user_email, + user_manager::RemoveUserDelegate* delegate) { + CrosSettings* cros_settings = CrosSettings::Get(); + + const base::Closure& callback = + base::Bind(&ChromeUserManagerImpl::RemoveUserInternal, + weak_factory_.GetWeakPtr(), + user_email, + delegate); + + // Ensure the value of owner email has been fetched. + if (CrosSettingsProvider::TRUSTED != + cros_settings->PrepareTrustedValues(callback)) { + // Value of owner email is not fetched yet. RemoveUserInternal will be + // called again after fetch completion. + return; + } + std::string owner; + cros_settings->GetString(kDeviceOwner, &owner); + if (user_email == owner) { + // Owner is not allowed to be removed from the device. + return; + } + RemoveNonOwnerUserInternal(user_email, delegate); +} + +void ChromeUserManagerImpl::SaveUserOAuthStatus( + const std::string& user_id, + user_manager::User::OAuthTokenStatus oauth_token_status) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ChromeUserManager::SaveUserOAuthStatus(user_id, oauth_token_status); + + GetUserFlow(user_id)->HandleOAuthTokenStatusChange(oauth_token_status); +} + +void ChromeUserManagerImpl::SaveUserDisplayName( + const std::string& user_id, + const base::string16& display_name) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + 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. + if (!IsUserNonCryptohomeDataEphemeral(user_id)) + supervised_user_manager_->UpdateManagerName(user_id, display_name); +} + +void ChromeUserManagerImpl::StopPolicyObserverForTesting() { + avatar_policy_observer_.reset(); + wallpaper_policy_observer_.reset(); +} + +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_) { + policy::BrowserPolicyConnectorChromeOS* connector = + g_browser_process->platform_part() + ->browser_policy_connector_chromeos(); + device_local_account_policy_service_ = + connector->GetDeviceLocalAccountPolicyService(); + if (device_local_account_policy_service_) + device_local_account_policy_service_->AddObserver(this); + } + RetrieveTrustedDevicePolicies(); + UpdateOwnership(); + break; + case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { + Profile* profile = content::Details<Profile>(details).ptr(); + if (IsUserLoggedIn() && !IsLoggedInAsGuest() && !IsLoggedInAsKioskApp()) { + if (IsLoggedInAsSupervisedUser()) + SupervisedUserPasswordServiceFactory::GetForProfile(profile); + if (IsLoggedInAsRegularUser()) + ManagerPasswordServiceFactory::GetForProfile(profile); + + if (!profile->IsOffTheRecord()) { + AuthSyncObserver* sync_observer = + AuthSyncObserverFactory::GetInstance()->GetForProfile(profile); + sync_observer->StartObserving(); + multi_profile_user_controller_->StartObserving(profile); + } + } + break; + } + case chrome::NOTIFICATION_PROFILE_CREATED: { + Profile* profile = content::Source<Profile>(source).ptr(); + user_manager::User* user = + ProfileHelper::Get()->GetUserByProfile(profile); + if (user != NULL) + user->set_profile_is_created(); + + // If there is pending user switch, do it now. + if (!GetPendingUserSwitchID().empty()) { + // Call SwitchActiveUser async because otherwise it may cause + // ProfileManager::GetProfile before the profile gets registered + // in ProfileManager. It happens in case of sync profile load when + // NOTIFICATION_PROFILE_CREATED is called synchronously. + base::MessageLoop::current()->PostTask( + FROM_HERE, + base::Bind(&ChromeUserManagerImpl::SwitchActiveUser, + weak_factory_.GetWeakPtr(), + GetPendingUserSwitchID())); + SetPendingUserSwitchID(std::string()); + } + break; + } + default: + NOTREACHED(); + } +} + +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) + WallpaperManager::Get()->OnPolicySet(policy, user_id); + else + NOTREACHED(); +} + +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) + WallpaperManager::Get()->OnPolicyCleared(policy, user_id); + else + NOTREACHED(); +} + +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) + WallpaperManager::Get()->OnPolicyFetched(policy, user_id, data.Pass()); + else + NOTREACHED(); +} + +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 ChromeUserManagerImpl::OnDeviceLocalAccountsChanged() { + // No action needed here, changes to the list of device-local accounts get + // handled via the kAccountsPrefDeviceLocalAccounts device setting observer. +} + +bool ChromeUserManagerImpl::CanCurrentUserLock() const { + return ChromeUserManager::CanCurrentUserLock() && + GetCurrentUserFlow()->CanLockScreen(); +} + +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 && + ChromeUserManager::IsUserNonCryptohomeDataEphemeral(user_id); +} + +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& ChromeUserManagerImpl::GetApplicationLocale() const { + return g_browser_process->GetApplicationLocale(); +} + +PrefService* ChromeUserManagerImpl::GetLocalState() const { + return g_browser_process ? g_browser_process->local_state() : NULL; +} + +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 ChromeUserManagerImpl::LoadPublicAccounts( + std::set<std::string>* public_sessions_set) { + const base::ListValue* prefs_public_sessions = + GetLocalState()->GetList(kPublicAccounts); + std::vector<std::string> public_sessions; + ParseUserList(*prefs_public_sessions, + std::set<std::string>(), + &public_sessions, + public_sessions_set); + for (std::vector<std::string>::const_iterator it = public_sessions.begin(); + it != public_sessions.end(); + ++it) { + users_.push_back(user_manager::User::CreatePublicAccountUser(*it)); + UpdatePublicAccountDisplayName(*it); + } +} + +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. + if (supervised_user_manager_->HasFailedUserCreationTransaction()) + supervised_user_manager_->RollbackUserCreationTransaction(); +} + +void ChromeUserManagerImpl::PerformPostUserListLoadingActions() { + for (user_manager::UserList::iterator ui = users_.begin(), ue = users_.end(); + ui != ue; + ++ui) { + GetUserImageManager((*ui)->email())->LoadUserImage(); + } +} + +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 ChromeUserManagerImpl::IsDemoApp(const std::string& user_id) const { + return DemoAppLauncher::IsDemoAppSession(user_id); +} + +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) && + device_local_account_type == + policy::DeviceLocalAccount::TYPE_KIOSK_APP; +} + +bool ChromeUserManagerImpl::IsPublicAccountMarkedForRemoval( + const std::string& user_id) const { + return user_id == + GetLocalState()->GetString(kPublicAccountPendingDataRemoval); +} + +void ChromeUserManagerImpl::RetrieveTrustedDevicePolicies() { + // Local state may not be initialized in unit_tests. + if (!GetLocalState()) + return; + + SetEphemeralUsersEnabled(false); + SetOwnerEmail(std::string()); + + // Schedule a callback if device policy has not yet been verified. + if (CrosSettingsProvider::TRUSTED != + cros_settings_->PrepareTrustedValues( + base::Bind(&ChromeUserManagerImpl::RetrieveTrustedDevicePolicies, + weak_factory_.GetWeakPtr()))) { + return; + } + + bool ephemeral_users_enabled = false; + cros_settings_->GetBoolean(kAccountsPrefEphemeralUsersEnabled, + &ephemeral_users_enabled); + SetEphemeralUsersEnabled(ephemeral_users_enabled); + + std::string owner_email; + cros_settings_->GetString(kDeviceOwner, &owner_email); + SetOwnerEmail(owner_email); + + EnsureUsersLoaded(); + + bool changed = UpdateAndCleanUpPublicAccounts( + policy::GetDeviceLocalAccounts(cros_settings_)); + + // If ephemeral users are enabled and we are on the login screen, take this + // opportunity to clean up by removing all regular users except the owner. + if (GetEphemeralUsersEnabled() && !IsUserLoggedIn()) { + ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); + prefs_users_update->Clear(); + for (user_manager::UserList::iterator it = users_.begin(); + it != users_.end();) { + const std::string user_email = (*it)->email(); + if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR && + user_email != GetOwnerEmail()) { + RemoveNonCryptohomeData(user_email); + DeleteUser(*it); + it = users_.erase(it); + changed = true; + } else { + if ((*it)->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) + prefs_users_update->Append(new base::StringValue(user_email)); + ++it; + } + } + } + + if (changed) + NotifyUserListChanged(); +} + +void ChromeUserManagerImpl::GuestUserLoggedIn() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ChromeUserManager::GuestUserLoggedIn(); + + // TODO(nkostylev): Add support for passing guest session cryptohome + // mount point. Legacy (--login-profile) value will be used for now. + // http://crosbug.com/230859 + active_user_->SetStubImage( + user_manager::UserImage( + *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( + IDR_PROFILE_PICTURE_LOADING)), + user_manager::User::USER_IMAGE_INVALID, + false); + + // Initializes wallpaper after active_user_ is set. + WallpaperManager::Get()->SetUserWallpaperNow(chromeos::login::kGuestUserName); +} + +void ChromeUserManagerImpl::RegularUserLoggedIn(const std::string& user_id) { + ChromeUserManager::RegularUserLoggedIn(user_id); + + if (IsCurrentUserNew()) + WallpaperManager::Get()->SetUserWallpaperNow(user_id); + + GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), false); + + WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); + + // Make sure that new data is persisted to Local State. + GetLocalState()->CommitPendingWrite(); +} + +void ChromeUserManagerImpl::RegularUserLoggedInAsEphemeral( + const std::string& user_id) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ChromeUserManager::RegularUserLoggedInAsEphemeral(user_id); + + GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), false); + WallpaperManager::Get()->SetUserWallpaperNow(user_id); +} + +void ChromeUserManagerImpl::SupervisedUserLoggedIn(const std::string& user_id) { + // TODO(nkostylev): Refactor, share code with RegularUserLoggedIn(). + + // Remove the user from the user list. + active_user_ = RemoveRegularOrSupervisedUserFromList(user_id); + + // If the user was not found on the user list, create a new user. + if (!GetActiveUser()) { + SetIsCurrentUserNew(true); + active_user_ = user_manager::User::CreateSupervisedUser(user_id); + // Leaving OAuth token status at the default state = unknown. + WallpaperManager::Get()->SetUserWallpaperNow(user_id); + } else { + if (supervised_user_manager_->CheckForFirstRun(user_id)) { + SetIsCurrentUserNew(true); + WallpaperManager::Get()->SetUserWallpaperNow(user_id); + } else { + SetIsCurrentUserNew(false); + } + } + + // Add the user to the front of the user list. + ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); + prefs_users_update->Insert(0, new base::StringValue(user_id)); + users_.insert(users_.begin(), active_user_); + + // Now that user is in the list, save display name. + if (IsCurrentUserNew()) { + SaveUserDisplayName(GetActiveUser()->email(), + GetActiveUser()->GetDisplayName()); + } + + GetUserImageManager(user_id)->UserLoggedIn(IsCurrentUserNew(), true); + WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); + + // Make sure that new data is persisted to Local State. + GetLocalState()->CommitPendingWrite(); +} + +void ChromeUserManagerImpl::PublicAccountUserLoggedIn( + user_manager::User* user) { + SetIsCurrentUserNew(true); + active_user_ = user; + + // The UserImageManager chooses a random avatar picture when a user logs in + // for the first time. Tell the UserImageManager that this user is not new to + // prevent the avatar from getting changed. + GetUserImageManager(user->email())->UserLoggedIn(false, true); + WallpaperManager::Get()->EnsureLoggedInUserWallpaperLoaded(); +} + +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)); + DCHECK_EQ(policy::DeviceLocalAccount::TYPE_KIOSK_APP, + device_local_account_type); + + active_user_ = user_manager::User::CreateKioskAppUser(app_id); + active_user_->SetStubImage( + user_manager::UserImage( + *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( + IDR_PROFILE_PICTURE_LOADING)), + user_manager::User::USER_IMAGE_INVALID, + false); + + WallpaperManager::Get()->SetUserWallpaperNow(app_id); + + // TODO(bartfab): Add KioskAppUsers to the users_ list and keep metadata like + // the kiosk_app_id in these objects, removing the need to re-parse the + // device-local account list here to extract the kiosk_app_id. + const std::vector<policy::DeviceLocalAccount> device_local_accounts = + policy::GetDeviceLocalAccounts(cros_settings_); + const policy::DeviceLocalAccount* account = NULL; + for (std::vector<policy::DeviceLocalAccount>::const_iterator it = + device_local_accounts.begin(); + it != device_local_accounts.end(); + ++it) { + if (it->user_id == app_id) { + account = &*it; + break; + } + } + std::string kiosk_app_id; + if (account) { + kiosk_app_id = account->kiosk_app_id; + } else { + LOG(ERROR) << "Logged into nonexistent kiosk-app account: " << app_id; + NOTREACHED(); + } + + CommandLine* command_line = CommandLine::ForCurrentProcess(); + command_line->AppendSwitch(::switches::kForceAppMode); + command_line->AppendSwitchASCII(::switches::kAppId, kiosk_app_id); + + // Disable window animation since kiosk app runs in a single full screen + // window and window animation causes start-up janks. + command_line->AppendSwitch(wm::switches::kWindowAnimationsDisabled); +} + +void ChromeUserManagerImpl::DemoAccountLoggedIn() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + active_user_ = + user_manager::User::CreateKioskAppUser(DemoAppLauncher::kDemoUserName); + active_user_->SetStubImage( + user_manager::UserImage( + *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( + IDR_PROFILE_PICTURE_LOADING)), + user_manager::User::USER_IMAGE_INVALID, + false); + WallpaperManager::Get()->SetUserWallpaperNow(DemoAppLauncher::kDemoUserName); + + CommandLine* command_line = CommandLine::ForCurrentProcess(); + command_line->AppendSwitch(::switches::kForceAppMode); + command_line->AppendSwitchASCII(::switches::kAppId, + DemoAppLauncher::kDemoAppId); + + // Disable window animation since the demo app runs in a single full screen + // window and window animation causes start-up janks. + CommandLine::ForCurrentProcess()->AppendSwitch( + wm::switches::kWindowAnimationsDisabled); +} + +void ChromeUserManagerImpl::RetailModeUserLoggedIn() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + SetIsCurrentUserNew(true); + active_user_ = user_manager::User::CreateRetailModeUser(); + GetUserImageManager(chromeos::login::kRetailModeUserName) + ->UserLoggedIn(IsCurrentUserNew(), true); + WallpaperManager::Get()->SetUserWallpaperNow( + chromeos::login::kRetailModeUserName); +} + +void ChromeUserManagerImpl::NotifyOnLogin() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + + UserSessionManager::OverrideHomedir(); + UpdateNumberOfUsers(); + + ChromeUserManager::NotifyOnLogin(); + + // TODO(nkostylev): Deprecate this notification in favor of + // ActiveUserChanged() observer call. + content::NotificationService::current()->Notify( + chrome::NOTIFICATION_LOGIN_USER_CHANGED, + content::Source<UserManager>(this), + content::Details<const user_manager::User>(GetActiveUser())); + + UserSessionManager::GetInstance()->PerformPostUserLoggedInActions(); +} + +void ChromeUserManagerImpl::UpdateOwnership() { + bool is_owner = DeviceSettingsService::Get()->HasPrivateOwnerKey(); + VLOG(1) << "Current user " << (is_owner ? "is owner" : "is not owner"); + + SetCurrentUserIsOwner(is_owner); +} + +void ChromeUserManagerImpl::RemoveNonCryptohomeData( + const std::string& user_id) { + ChromeUserManager::RemoveNonCryptohomeData(user_id); + + WallpaperManager::Get()->RemoveUserWallpaperInfo(user_id); + GetUserImageManager(user_id)->DeleteUserImage(); + + supervised_user_manager_->RemoveNonCryptohomeData(user_id); + + multi_profile_user_controller_->RemoveCachedValues(user_id); +} + +void +ChromeUserManagerImpl::CleanUpPublicAccountNonCryptohomeDataPendingRemoval() { + PrefService* local_state = GetLocalState(); + const std::string public_account_pending_data_removal = + local_state->GetString(kPublicAccountPendingDataRemoval); + if (public_account_pending_data_removal.empty() || + (IsUserLoggedIn() && + public_account_pending_data_removal == GetActiveUser()->email())) { + return; + } + + RemoveNonCryptohomeData(public_account_pending_data_removal); + local_state->ClearPref(kPublicAccountPendingDataRemoval); +} + +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(); + it != users_.end(); + ++it) + users.insert((*it)->email()); + + // If the user is logged into a public account that has been removed from the + // user list, mark the account's data as pending removal after logout. + if (IsLoggedInAsPublicAccount()) { + const std::string active_user_id = GetActiveUser()->email(); + if (users.find(active_user_id) == users.end()) { + GetLocalState()->SetString(kPublicAccountPendingDataRemoval, + active_user_id); + users.insert(active_user_id); + } + } + + // Remove the data belonging to any other public accounts that are no longer + // found on the user list. + for (std::vector<std::string>::const_iterator it = + old_public_accounts.begin(); + it != old_public_accounts.end(); + ++it) { + if (users.find(*it) == users.end()) + RemoveNonCryptohomeData(*it); + } +} + +bool ChromeUserManagerImpl::UpdateAndCleanUpPublicAccounts( + const std::vector<policy::DeviceLocalAccount>& device_local_accounts) { + // Try to remove any public account data marked as pending removal. + CleanUpPublicAccountNonCryptohomeDataPendingRemoval(); + + // Get the current list of public accounts. + std::vector<std::string> old_public_accounts; + for (user_manager::UserList::const_iterator it = users_.begin(); + it != users_.end(); + ++it) { + if ((*it)->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) + old_public_accounts.push_back((*it)->email()); + } + + // Get the new list of public accounts from policy. + std::vector<std::string> new_public_accounts; + for (std::vector<policy::DeviceLocalAccount>::const_iterator it = + device_local_accounts.begin(); + it != device_local_accounts.end(); + ++it) { + // TODO(mnissler, nkostylev, bartfab): Process Kiosk Apps within the + // standard login framework: http://crbug.com/234694 + if (it->type == policy::DeviceLocalAccount::TYPE_PUBLIC_SESSION) + new_public_accounts.push_back(it->user_id); + } + + // If the list of public accounts has not changed, return. + if (new_public_accounts.size() == old_public_accounts.size()) { + bool changed = false; + for (size_t i = 0; i < new_public_accounts.size(); ++i) { + if (new_public_accounts[i] != old_public_accounts[i]) { + changed = true; + break; + } + } + if (!changed) + return false; + } + + // Persist the new list of public accounts in a pref. + ListPrefUpdate prefs_public_accounts_update(GetLocalState(), kPublicAccounts); + prefs_public_accounts_update->Clear(); + for (std::vector<std::string>::const_iterator it = + new_public_accounts.begin(); + it != new_public_accounts.end(); + ++it) { + prefs_public_accounts_update->AppendString(*it); + } + + // Remove the old public accounts from the user list. + for (user_manager::UserList::iterator it = users_.begin(); + it != users_.end();) { + if ((*it)->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) { + if (*it != GetLoggedInUser()) + DeleteUser(*it); + it = users_.erase(it); + } else { + ++it; + } + } + + // Add the new public accounts to the front of the user list. + for (std::vector<std::string>::const_reverse_iterator it = + new_public_accounts.rbegin(); + it != new_public_accounts.rend(); + ++it) { + if (IsLoggedInAsPublicAccount() && *it == GetActiveUser()->email()) + users_.insert(users_.begin(), GetLoggedInUser()); + else + users_.insert(users_.begin(), + user_manager::User::CreatePublicAccountUser(*it)); + UpdatePublicAccountDisplayName(*it); + } + + for (user_manager::UserList::iterator + ui = users_.begin(), + ue = users_.begin() + new_public_accounts.size(); + ui != ue; + ++ui) { + GetUserImageManager((*ui)->email())->LoadUserImage(); + } + + // Remove data belonging to public accounts that are no longer found on the + // user list. + CleanUpPublicAccountNonCryptohomeData(old_public_accounts); + + return true; +} + +void ChromeUserManagerImpl::UpdatePublicAccountDisplayName( + const std::string& user_id) { + std::string display_name; + + if (device_local_account_policy_service_) { + policy::DeviceLocalAccountPolicyBroker* broker = + device_local_account_policy_service_->GetBrokerForUser(user_id); + if (broker) + display_name = broker->GetDisplayName(); + } + + // Set or clear the display name. + SaveUserDisplayName(user_id, base::UTF8ToUTF16(display_name)); +} + +UserFlow* ChromeUserManagerImpl::GetCurrentUserFlow() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + if (!IsUserLoggedIn()) + return GetDefaultUserFlow(); + return GetUserFlow(GetLoggedInUser()->email()); +} + +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()) + return it->second; + return GetDefaultUserFlow(); +} + +void ChromeUserManagerImpl::SetUserFlow(const std::string& user_id, + UserFlow* flow) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + ResetUserFlow(user_id); + specific_flows_[user_id] = flow; +} + +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()) { + delete it->second; + specific_flows_.erase(it); + } +} + +bool ChromeUserManagerImpl::AreSupervisedUsersAllowed() const { + bool supervised_users_allowed = false; + cros_settings_->GetBoolean(kAccountsPrefSupervisedUsersEnabled, + &supervised_users_allowed); + return supervised_users_allowed; +} + +UserFlow* ChromeUserManagerImpl::GetDefaultUserFlow() const { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + if (!default_flow_.get()) + default_flow_.reset(new DefaultUserFlow()); + return default_flow_.get(); +} + +void ChromeUserManagerImpl::NotifyUserListChanged() { + content::NotificationService::current()->Notify( + chrome::NOTIFICATION_USER_LIST_CHANGED, + content::Source<UserManager>(this), + content::NotificationService::NoDetails()); +} + +void ChromeUserManagerImpl::NotifyUserAddedToSession( + const user_manager::User* added_user, + bool user_switch_pending) { + if (user_switch_pending) + SetPendingUserSwitchID(added_user->email()); + + UpdateNumberOfUsers(); + ChromeUserManager::NotifyUserAddedToSession(added_user, user_switch_pending); +} + +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 ChromeUserManagerImpl::UpdateNumberOfUsers() { + size_t users = GetLoggedInUsers().size(); + if (users) { + // Write the user number as UMA stat when a multi user session is possible. + if ((users + GetUsersAdmittedForMultiProfile().size()) > 1) + ash::MultiProfileUMA::RecordUserCount(users); + } + + base::debug::SetCrashKeyValue( + crash_keys::kNumberOfUsers, + base::StringPrintf("%" PRIuS, GetLoggedInUsers().size())); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.h b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.h new file mode 100644 index 0000000..9ba3c20 --- /dev/null +++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.h @@ -0,0 +1,245 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_CHROME_USER_MANAGER_IMPL_H_ +#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_CHROME_USER_MANAGER_IMPL_H_ + +#include <map> +#include <string> +#include <vector> + +#include "base/basictypes.h" +#include "base/containers/hash_tables.h" +#include "base/memory/linked_ptr.h" +#include "base/memory/scoped_ptr.h" +#include "base/memory/weak_ptr.h" +#include "base/observer_list.h" +#include "base/synchronization/lock.h" +#include "base/time/time.h" +#include "chrome/browser/chromeos/login/user_flow.h" +#include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" +#include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" +#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" +#include "chrome/browser/chromeos/policy/cloud_external_data_policy_observer.h" +#include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" +#include "chrome/browser/chromeos/settings/device_settings_service.h" +#include "components/user_manager/user.h" +#include "content/public/browser/notification_observer.h" +#include "content/public/browser/notification_registrar.h" + +class PrefRegistrySimple; +class PrefService; +class ProfileSyncService; + +namespace policy { +struct DeviceLocalAccount; +} + +namespace user_manager { +class RemoveUserDelegate; +} + +namespace chromeos { + +class MultiProfileUserController; +class SupervisedUserManagerImpl; +class SessionLengthLimiter; + +// Chrome specific implementation of the UserManager. +class ChromeUserManagerImpl + : public ChromeUserManager, + public content::NotificationObserver, + public policy::CloudExternalDataPolicyObserver::Delegate, + public policy::DeviceLocalAccountPolicyService::Observer, + public MultiProfileUserControllerDelegate { + public: + virtual ~ChromeUserManagerImpl(); + + // Creates ChromeUserManagerImpl instance. + static scoped_ptr<ChromeUserManager> CreateChromeUserManager(); + + // Registers user manager preferences. + static void RegisterPrefs(PrefRegistrySimple* registry); + + // ChromeUserManager implementation: + virtual MultiProfileUserController* GetMultiProfileUserController() OVERRIDE; + virtual UserImageManager* GetUserImageManager( + const std::string& user_id) OVERRIDE; + virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE; + virtual UserFlow* GetCurrentUserFlow() const OVERRIDE; + virtual UserFlow* GetUserFlow(const std::string& user_id) const OVERRIDE; + virtual void SetUserFlow(const std::string& user_id, UserFlow* flow) OVERRIDE; + virtual void ResetUserFlow(const std::string& user_id) OVERRIDE; + + // UserManager implementation: + virtual void Shutdown() OVERRIDE; + virtual user_manager::UserList GetUsersAdmittedForMultiProfile() + const OVERRIDE; + virtual user_manager::UserList GetUnlockUsers() const OVERRIDE; + virtual void SessionStarted() OVERRIDE; + virtual void SaveUserOAuthStatus( + const std::string& user_id, + user_manager::User::OAuthTokenStatus oauth_token_status) OVERRIDE; + virtual void SaveUserDisplayName(const std::string& user_id, + const base::string16& display_name) OVERRIDE; + virtual bool CanCurrentUserLock() const OVERRIDE; + virtual bool IsUserNonCryptohomeDataEphemeral( + const std::string& user_id) const OVERRIDE; + virtual bool AreSupervisedUsersAllowed() const OVERRIDE; + + // content::NotificationObserver implementation. + virtual void Observe(int type, + const content::NotificationSource& source, + const content::NotificationDetails& details) OVERRIDE; + + // policy::CloudExternalDataPolicyObserver::Delegate: + virtual void OnExternalDataSet(const std::string& policy, + const std::string& user_id) OVERRIDE; + virtual void OnExternalDataCleared(const std::string& policy, + const std::string& user_id) OVERRIDE; + virtual void OnExternalDataFetched(const std::string& policy, + const std::string& user_id, + scoped_ptr<std::string> data) OVERRIDE; + + // policy::DeviceLocalAccountPolicyService::Observer implementation. + virtual void OnPolicyUpdated(const std::string& user_id) OVERRIDE; + virtual void OnDeviceLocalAccountsChanged() OVERRIDE; + + void StopPolicyObserverForTesting(); + + protected: + // UserManagerBase implementation: + virtual bool AreEphemeralUsersEnabled() const OVERRIDE; + virtual const std::string& GetApplicationLocale() const OVERRIDE; + virtual PrefService* GetLocalState() const OVERRIDE; + virtual void HandleUserOAuthTokenStatusChange( + const std::string& user_id, + user_manager::User::OAuthTokenStatus status) const OVERRIDE; + virtual bool IsEnterpriseManaged() const OVERRIDE; + virtual void LoadPublicAccounts(std::set<std::string>* users_set) OVERRIDE; + virtual void NotifyOnLogin() OVERRIDE; + virtual void NotifyUserAddedToSession(const user_manager::User* added_user, + bool user_switch_pending) OVERRIDE; + virtual void PerformPreUserListLoadingActions() OVERRIDE; + virtual void PerformPostUserListLoadingActions() OVERRIDE; + virtual void PerformPostUserLoggedInActions(bool browser_restart) OVERRIDE; + virtual void RemoveNonCryptohomeData(const std::string& user_id) OVERRIDE; + virtual void RemoveUserInternal( + const std::string& user_email, + user_manager::RemoveUserDelegate* delegate) OVERRIDE; + virtual bool IsDemoApp(const std::string& user_id) const OVERRIDE; + virtual bool IsKioskApp(const std::string& user_id) const OVERRIDE; + virtual bool IsPublicAccountMarkedForRemoval( + const std::string& user_id) const OVERRIDE; + virtual void DemoAccountLoggedIn() OVERRIDE; + virtual void GuestUserLoggedIn() OVERRIDE; + virtual void KioskAppLoggedIn(const std::string& app_id) OVERRIDE; + virtual void PublicAccountUserLoggedIn(user_manager::User* user) OVERRIDE; + virtual void RegularUserLoggedIn(const std::string& user_id) OVERRIDE; + virtual void RegularUserLoggedInAsEphemeral( + const std::string& user_id) OVERRIDE; + virtual void RetailModeUserLoggedIn() OVERRIDE; + virtual void SupervisedUserLoggedIn(const std::string& user_id) OVERRIDE; + + private: + friend class SupervisedUserManagerImpl; + friend class UserManagerTest; + friend class WallpaperManager; + friend class WallpaperManagerTest; + + typedef base::hash_map<std::string, linked_ptr<UserImageManager> > + UserImageManagerMap; + + ChromeUserManagerImpl(); + + // Retrieves trusted device policies and removes users from the persistent + // list if ephemeral users are enabled. Schedules a callback to itself if + // trusted device policies are not yet available. + void RetrieveTrustedDevicePolicies(); + + // Updates current user ownership on UI thread. + void UpdateOwnership(); + + // If data for a public account is marked as pending removal and the user is + // no longer logged into that account, removes the data. + void CleanUpPublicAccountNonCryptohomeDataPendingRemoval(); + + // Removes data belonging to public accounts that are no longer found on the + // user list. If the user is currently logged into one of these accounts, the + // data for that account is not removed immediately but marked as pending + // removal after logout. + void CleanUpPublicAccountNonCryptohomeData( + const std::vector<std::string>& old_public_accounts); + + // Replaces the list of public accounts with those found in + // |device_local_accounts|. Ensures that data belonging to accounts no longer + // on the list is removed. Returns |true| if the list has changed. + // Public accounts are defined by policy. This method is called whenever an + // updated list of public accounts is received from policy. + bool UpdateAndCleanUpPublicAccounts( + const std::vector<policy::DeviceLocalAccount>& device_local_accounts); + + // Updates the display name for public account |username| from policy settings + // associated with that username. + void UpdatePublicAccountDisplayName(const std::string& user_id); + + // Notifies the UI about a change to the user list. + void NotifyUserListChanged(); + + // Lazily creates default user flow. + UserFlow* GetDefaultUserFlow() const; + + // MultiProfileUserControllerDelegate implementation: + virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE; + + // Update the number of users. + void UpdateNumberOfUsers(); + + // Interface to the signed settings store. + CrosSettings* cros_settings_; + + // Interface to device-local account definitions and associated policy. + policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_; + + content::NotificationRegistrar registrar_; + + // User avatar managers. + UserImageManagerMap user_image_managers_; + + // Supervised user manager. + scoped_ptr<SupervisedUserManagerImpl> supervised_user_manager_; + + // Session length limiter. + scoped_ptr<SessionLengthLimiter> session_length_limiter_; + + typedef std::map<std::string, UserFlow*> FlowMap; + + // Lazy-initialized default flow. + mutable scoped_ptr<UserFlow> default_flow_; + + // Specific flows by user e-mail. Keys should be canonicalized before + // access. + FlowMap specific_flows_; + + scoped_ptr<CrosSettings::ObserverSubscription> local_accounts_subscription_; + + scoped_ptr<MultiProfileUserController> multi_profile_user_controller_; + + // Observer for the policy that can be used to manage user images. + scoped_ptr<policy::CloudExternalDataPolicyObserver> avatar_policy_observer_; + + // Observer for the policy that can be used to manage wallpapers. + scoped_ptr<policy::CloudExternalDataPolicyObserver> + wallpaper_policy_observer_; + + base::WeakPtrFactory<ChromeUserManagerImpl> weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(ChromeUserManagerImpl); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_CHROME_USER_MANAGER_IMPL_H_ diff --git a/chrome/browser/chromeos/login/users/fake_user_manager.cc b/chrome/browser/chromeos/login/users/fake_user_manager.cc index a969521..f801f8b 100644 --- a/chrome/browser/chromeos/login/users/fake_user_manager.cc +++ b/chrome/browser/chromeos/login/users/fake_user_manager.cc @@ -4,6 +4,7 @@ #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "base/task_runner.h" #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/grit/theme_resources.h" @@ -16,12 +17,27 @@ namespace { // As defined in /chromeos/dbus/cryptohome_client.cc. static const char kUserIdHashSuffix[] = "-hash"; +class FakeTaskRunner : public base::TaskRunner { + public: + virtual bool PostDelayedTask(const tracked_objects::Location& from_here, + const base::Closure& task, + base::TimeDelta delay) OVERRIDE { + task.Run(); + return true; + } + virtual bool RunsTasksOnCurrentThread() const OVERRIDE { return true; } + + protected: + virtual ~FakeTaskRunner() {} +}; + } // namespace namespace chromeos { FakeUserManager::FakeUserManager() - : supervised_user_manager_(new FakeSupervisedUserManager), + : ChromeUserManager(new FakeTaskRunner(), new FakeTaskRunner()), + supervised_user_manager_(new FakeSupervisedUserManager), primary_user_(NULL), multi_profile_user_controller_(NULL) { ProfileHelper::SetProfileToUserForTestingEnabled(true); @@ -304,4 +320,34 @@ bool FakeUserManager::AreSupervisedUsersAllowed() const { return true; } +bool FakeUserManager::AreEphemeralUsersEnabled() const { + return false; +} + +const std::string& FakeUserManager::GetApplicationLocale() const { + static const std::string default_locale("en-US"); + return default_locale; +} + +PrefService* FakeUserManager::GetLocalState() const { + return NULL; +} + +bool FakeUserManager::IsEnterpriseManaged() const { + return false; +} + +bool FakeUserManager::IsDemoApp(const std::string& user_id) const { + return false; +} + +bool FakeUserManager::IsKioskApp(const std::string& user_id) const { + return false; +} + +bool FakeUserManager::IsPublicAccountMarkedForRemoval( + const std::string& user_id) const { + return false; +} + } // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/fake_user_manager.h b/chrome/browser/chromeos/login/users/fake_user_manager.h index 8ade4ec..c312880 100644 --- a/chrome/browser/chromeos/login/users/fake_user_manager.h +++ b/chrome/browser/chromeos/login/users/fake_user_manager.h @@ -10,7 +10,7 @@ #include "base/memory/scoped_ptr.h" #include "chrome/browser/chromeos/login/user_flow.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "components/user_manager/user.h" #include "components/user_manager/user_image/user_image.h" @@ -20,7 +20,7 @@ class FakeSupervisedUserManager; // Fake user manager with a barebones implementation. Users can be added // and set as logged in, and those users can be returned. -class FakeUserManager : public UserManager { +class FakeUserManager : public ChromeUserManager { public: FakeUserManager(); virtual ~FakeUserManager(); @@ -37,6 +37,16 @@ class FakeUserManager : public UserManager { // Calculates the user name hash and calls UserLoggedIn to login a user. void LoginUser(const std::string& email); + // ChromeUserManager overrides. + virtual MultiProfileUserController* GetMultiProfileUserController() OVERRIDE; + virtual UserImageManager* GetUserImageManager( + const std::string& user_id) OVERRIDE; + virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE; + virtual void SetUserFlow(const std::string& email, UserFlow* flow) OVERRIDE {} + virtual UserFlow* GetCurrentUserFlow() const OVERRIDE; + virtual UserFlow* GetUserFlow(const std::string& email) const OVERRIDE; + virtual void ResetUserFlow(const std::string& email) OVERRIDE {} + // UserManager overrides. virtual const user_manager::UserList& GetUsers() const OVERRIDE; virtual user_manager::UserList GetUsersAdmittedForMultiProfile() @@ -59,16 +69,13 @@ class FakeUserManager : public UserManager { const std::string& user_id, const UserAccountData& account_data) OVERRIDE {} virtual void Shutdown() OVERRIDE {} - virtual MultiProfileUserController* GetMultiProfileUserController() OVERRIDE; - virtual UserImageManager* GetUserImageManager( - const std::string& user_id) OVERRIDE; - virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE; virtual const user_manager::UserList& GetLRULoggedInUsers() const OVERRIDE; virtual user_manager::UserList GetUnlockUsers() const OVERRIDE; virtual const std::string& GetOwnerEmail() const OVERRIDE; virtual void SessionStarted() OVERRIDE {} virtual void RemoveUser(const std::string& email, - RemoveUserDelegate* delegate) OVERRIDE {} + user_manager::RemoveUserDelegate* delegate) OVERRIDE { + } virtual void RemoveUserFromList(const std::string& email) OVERRIDE; virtual bool IsKnownUser(const std::string& email) const OVERRIDE; virtual const user_manager::User* FindUser( @@ -104,10 +111,6 @@ class FakeUserManager : public UserManager { virtual bool IsSessionStarted() const OVERRIDE; virtual bool IsUserNonCryptohomeDataEphemeral( const std::string& email) const OVERRIDE; - virtual void SetUserFlow(const std::string& email, UserFlow* flow) OVERRIDE {} - virtual UserFlow* GetCurrentUserFlow() const OVERRIDE; - virtual UserFlow* GetUserFlow(const std::string& email) const OVERRIDE; - virtual void ResetUserFlow(const std::string& email) OVERRIDE {} virtual void AddObserver(Observer* obs) OVERRIDE {} virtual void RemoveObserver(Observer* obs) OVERRIDE {} virtual void AddSessionStateObserver( @@ -117,6 +120,29 @@ class FakeUserManager : public UserManager { virtual void NotifyLocalStateChanged() OVERRIDE {} virtual bool AreSupervisedUsersAllowed() const OVERRIDE; + // UserManagerBase overrides: + virtual bool AreEphemeralUsersEnabled() const OVERRIDE; + virtual const std::string& GetApplicationLocale() const OVERRIDE; + virtual PrefService* GetLocalState() const OVERRIDE; + virtual void HandleUserOAuthTokenStatusChange( + const std::string& user_id, + user_manager::User::OAuthTokenStatus status) const OVERRIDE {} + virtual bool IsEnterpriseManaged() const OVERRIDE; + virtual void LoadPublicAccounts( + std::set<std::string>* public_sessions_set) OVERRIDE {} + virtual void PerformPreUserListLoadingActions() OVERRIDE {} + virtual void PerformPostUserListLoadingActions() OVERRIDE {} + virtual void PerformPostUserLoggedInActions(bool browser_restart) OVERRIDE {} + virtual bool IsDemoApp(const std::string& user_id) const OVERRIDE; + virtual bool IsKioskApp(const std::string& user_id) const OVERRIDE; + virtual bool IsPublicAccountMarkedForRemoval( + const std::string& user_id) const OVERRIDE; + virtual void DemoAccountLoggedIn() OVERRIDE {} + virtual void KioskAppLoggedIn(const std::string& app_id) OVERRIDE {} + virtual void PublicAccountUserLoggedIn(user_manager::User* user) OVERRIDE {} + virtual void RetailModeUserLoggedIn() OVERRIDE {} + virtual void SupervisedUserLoggedIn(const std::string& user_id) OVERRIDE {} + void set_owner_email(const std::string& owner_email) { owner_email_ = owner_email; } diff --git a/chrome/browser/chromeos/login/users/mock_user_manager.cc b/chrome/browser/chromeos/login/users/mock_user_manager.cc index a283a67..b459256 100644 --- a/chrome/browser/chromeos/login/users/mock_user_manager.cc +++ b/chrome/browser/chromeos/login/users/mock_user_manager.cc @@ -4,13 +4,33 @@ #include "chrome/browser/chromeos/login/users/mock_user_manager.h" +#include "base/task_runner.h" #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" +namespace { + +class FakeTaskRunner : public base::TaskRunner { + public: + virtual bool PostDelayedTask(const tracked_objects::Location& from_here, + const base::Closure& task, + base::TimeDelta delay) OVERRIDE { + task.Run(); + return true; + } + virtual bool RunsTasksOnCurrentThread() const OVERRIDE { return true; } + + protected: + virtual ~FakeTaskRunner() {} +}; + +} // namespace + namespace chromeos { MockUserManager::MockUserManager() - : user_flow_(new DefaultUserFlow()), + : ChromeUserManager(new FakeTaskRunner(), new FakeTaskRunner()), + user_flow_(new DefaultUserFlow()), supervised_user_manager_(new FakeSupervisedUserManager()) { ProfileHelper::SetProfileToUserForTestingEnabled(true); } diff --git a/chrome/browser/chromeos/login/users/mock_user_manager.h b/chrome/browser/chromeos/login/users/mock_user_manager.h index a5ad8de..7e8dc33 100644 --- a/chrome/browser/chromeos/login/users/mock_user_manager.h +++ b/chrome/browser/chromeos/login/users/mock_user_manager.h @@ -11,7 +11,7 @@ #include "base/memory/weak_ptr.h" #include "chrome/browser/chromeos/login/user_flow.h" #include "chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "components/user_manager/user.h" #include "components/user_manager/user_image/user_image.h" #include "testing/gmock/include/gmock/gmock.h" @@ -20,7 +20,7 @@ namespace chromeos { class FakeSupervisedUserManager; -class MockUserManager : public UserManager { +class MockUserManager : public ChromeUserManager { public: MockUserManager(); virtual ~MockUserManager(); @@ -34,7 +34,8 @@ class MockUserManager : public UserManager { const std::string&, const std::string&, bool)); MOCK_METHOD1(SwitchActiveUser, void(const std::string& email)); MOCK_METHOD0(SessionStarted, void(void)); - MOCK_METHOD2(RemoveUser, void(const std::string&, RemoveUserDelegate*)); + MOCK_METHOD2(RemoveUser, + void(const std::string&, user_manager::RemoveUserDelegate*)); MOCK_METHOD1(RemoveUserFromList, void(const std::string&)); MOCK_CONST_METHOD1(IsKnownUser, bool(const std::string&)); MOCK_CONST_METHOD1(FindUser, const user_manager::User*(const std::string&)); @@ -72,11 +73,29 @@ class MockUserManager : public UserManager { MOCK_METHOD1(RemoveSessionStateObserver, void(UserManager::UserSessionStateObserver*)); MOCK_METHOD0(NotifyLocalStateChanged, void(void)); - MOCK_METHOD2(SetUserFlow, void(const std::string&, UserFlow*)); - MOCK_METHOD1(ResetUserFlow, void(const std::string&)); - MOCK_CONST_METHOD0(AreSupervisedUsersAllowed, bool(void)); + // UserManagerBase overrides: + MOCK_CONST_METHOD0(AreEphemeralUsersEnabled, bool(void)); + MOCK_CONST_METHOD0(GetApplicationLocale, const std::string&(void)); + MOCK_CONST_METHOD0(GetLocalState, PrefService*(void)); + MOCK_CONST_METHOD2(HandleUserOAuthTokenStatusChange, + void(const std::string&, + user_manager::User::OAuthTokenStatus status)); + MOCK_CONST_METHOD0(IsEnterpriseManaged, bool(void)); + MOCK_METHOD1(LoadPublicAccounts, void(std::set<std::string>*)); + MOCK_METHOD0(PerformPreUserListLoadingActions, void(void)); + MOCK_METHOD0(PerformPostUserListLoadingActions, void(void)); + MOCK_METHOD1(PerformPostUserLoggedInActions, void(bool)); + MOCK_CONST_METHOD1(IsDemoApp, bool(const std::string&)); + MOCK_CONST_METHOD1(IsKioskApp, bool(const std::string&)); + MOCK_CONST_METHOD1(IsPublicAccountMarkedForRemoval, bool(const std::string&)); + MOCK_METHOD0(DemoAccountLoggedIn, void(void)); + MOCK_METHOD1(KioskAppLoggedIn, void(const std::string&)); + MOCK_METHOD1(PublicAccountUserLoggedIn, void(user_manager::User*)); + MOCK_METHOD0(RetailModeUserLoggedIn, void(void)); + MOCK_METHOD1(SupervisedUserLoggedIn, void(const std::string&)); + // You can't mock these functions easily because nobody can create // User objects but the ChromeUserManager and us. virtual const user_manager::UserList& GetUsers() const OVERRIDE; @@ -88,11 +107,13 @@ class MockUserManager : public UserManager { virtual user_manager::User* GetActiveUser() OVERRIDE; virtual const user_manager::User* GetPrimaryUser() const OVERRIDE; + // ChromeUserManager overrides: virtual MultiProfileUserController* GetMultiProfileUserController() OVERRIDE; virtual UserImageManager* GetUserImageManager( const std::string& user_id) OVERRIDE; virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE; - + MOCK_METHOD2(SetUserFlow, void(const std::string&, UserFlow*)); + MOCK_METHOD1(ResetUserFlow, void(const std::string&)); virtual UserFlow* GetCurrentUserFlow() const OVERRIDE; virtual UserFlow* GetUserFlow(const std::string&) const OVERRIDE; diff --git a/chrome/browser/chromeos/login/users/multi_profile_user_controller.cc b/chrome/browser/chromeos/login/users/multi_profile_user_controller.cc index d079360..f328c2c 100644 --- a/chrome/browser/chromeos/login/users/multi_profile_user_controller.cc +++ b/chrome/browser/chromeos/login/users/multi_profile_user_controller.cc @@ -11,7 +11,6 @@ #include "base/prefs/pref_service.h" #include "base/prefs/scoped_user_pref_update.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/policy_cert_service.h" #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -19,6 +18,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "google_apis/gaia/gaia_auth_util.h" namespace chromeos { @@ -90,7 +90,7 @@ void MultiProfileUserController::RegisterProfilePrefs( // static MultiProfileUserController::UserAllowedInSessionReason MultiProfileUserController::GetPrimaryUserPolicy() { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); CHECK(user_manager); const user_manager::User* user = user_manager->GetPrimaryUser(); @@ -129,7 +129,7 @@ MultiProfileUserController::GetPrimaryUserPolicy() { bool MultiProfileUserController::IsUserAllowedInSession( const std::string& user_email, MultiProfileUserController::UserAllowedInSessionReason* reason) const { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); CHECK(user_manager); const user_manager::User* primary_user = user_manager->GetPrimaryUser(); @@ -208,7 +208,8 @@ void MultiProfileUserController::SetCachedValue( } void MultiProfileUserController::CheckSessionUsers() { - const user_manager::UserList& users = UserManager::Get()->GetLoggedInUsers(); + const user_manager::UserList& users = + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = users.begin(); it != users.end(); ++it) { diff --git a/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc b/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc index b93d73a..7bf7b94 100644 --- a/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc +++ b/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc @@ -9,7 +9,7 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/policy_cert_service.h" #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" @@ -21,6 +21,7 @@ #include "chrome/test/base/testing_pref_service_syncable.h" #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_browser_thread_bundle.h" #include "net/cert/x509_certificate.h" #include "testing/gtest/include/gtest/gtest.h" @@ -101,8 +102,9 @@ policy::PolicyCertVerifier* g_policy_cert_verifier_for_factory = NULL; KeyedService* TestPolicyCertServiceFactory(content::BrowserContext* context) { return policy::PolicyCertService::CreateForTesting( - kUsers[0], g_policy_cert_verifier_for_factory, UserManager::Get()) - .release(); + kUsers[0], + g_policy_cert_verifier_for_factory, + user_manager::UserManager::Get()).release(); } } // namespace diff --git a/chrome/browser/chromeos/login/users/scoped_test_user_manager.cc b/chrome/browser/chromeos/login/users/scoped_test_user_manager.cc new file mode 100644 index 0000000..49dc7f2 --- /dev/null +++ b/chrome/browser/chromeos/login/users/scoped_test_user_manager.cc @@ -0,0 +1,26 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// 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/scoped_test_user_manager.h" + +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" + +namespace chromeos { + +ScopedTestUserManager::ScopedTestUserManager() { + chrome_user_manager_ = ChromeUserManagerImpl::CreateChromeUserManager(); + chrome_user_manager_->Initialize(); + + // ProfileHelper has to be initialized after UserManager instance is created. + ProfileHelper::Get()->Initialize(); +} + +ScopedTestUserManager::~ScopedTestUserManager() { + user_manager::UserManager::Get()->Shutdown(); + chrome_user_manager_->Destroy(); + chrome_user_manager_.reset(); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/scoped_test_user_manager.h b/chrome/browser/chromeos/login/users/scoped_test_user_manager.h new file mode 100644 index 0000000..ec07d2c --- /dev/null +++ b/chrome/browser/chromeos/login/users/scoped_test_user_manager.h @@ -0,0 +1,30 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_TEST_USER_MANAGER_H_ +#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_TEST_USER_MANAGER_H_ + +#include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" + +namespace chromeos { + +class ChromeUserManager; + +// Helper class for unit tests. Initializes the UserManager singleton on +// construction and tears it down again on destruction. +class ScopedTestUserManager { + public: + ScopedTestUserManager(); + ~ScopedTestUserManager(); + + private: + scoped_ptr<ChromeUserManager> chrome_user_manager_; + + DISALLOW_COPY_AND_ASSIGN(ScopedTestUserManager); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_TEST_USER_MANAGER_H_ diff --git a/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc new file mode 100644 index 0000000..8ae87be --- /dev/null +++ b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.cc @@ -0,0 +1,29 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// 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/scoped_user_manager_enabler.h" + +#include "components/user_manager/user_manager.h" + +namespace chromeos { + +ScopedUserManagerEnabler::ScopedUserManagerEnabler( + user_manager::UserManager* user_manager) { + if (user_manager::UserManager::GetForTesting()) + user_manager::UserManager::GetForTesting()->Shutdown(); + + previous_user_manager_ = + user_manager::UserManager::SetForTesting(user_manager); +} + +ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { + // Shutdown and destroy current UserManager instance that we track. + user_manager::UserManager::Get()->Shutdown(); + delete user_manager::UserManager::Get(); + user_manager::UserManager::SetInstance(NULL); + + user_manager::UserManager::SetForTesting(previous_user_manager_); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h new file mode 100644 index 0000000..38880f6 --- /dev/null +++ b/chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h @@ -0,0 +1,34 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_USER_MANAGER_ENABLER_H_ +#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_USER_MANAGER_ENABLER_H_ + +#include "base/basictypes.h" + +namespace user_manager { +class UserManager; +} + +namespace chromeos { + +// Helper class for unit tests. Initializes the UserManager singleton to the +// given |user_manager| and tears it down again on destruction. If the singleton +// had already been initialized, its previous value is restored after tearing +// down |user_manager|. +class ScopedUserManagerEnabler { + public: + // Takes ownership of |user_manager|. + explicit ScopedUserManagerEnabler(user_manager::UserManager* user_manager); + ~ScopedUserManagerEnabler(); + + private: + user_manager::UserManager* previous_user_manager_; + + DISALLOW_COPY_AND_ASSIGN(ScopedUserManagerEnabler); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_SCOPED_USER_MANAGER_ENABLER_H_ diff --git a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc index 7335a0a..1e4b1c3 100644 --- a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc +++ b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc @@ -17,7 +17,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" -#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/supervised_user/supervised_user_service.h" #include "chrome/browser/supervised_user/supervised_user_service_factory.h" @@ -129,7 +129,8 @@ void SupervisedUserManager::RegisterPrefs(PrefRegistrySimple* registry) { registry->RegisterDictionaryPref(kSupervisedUserIncompleteKey); } -SupervisedUserManagerImpl::SupervisedUserManagerImpl(ChromeUserManager* owner) +SupervisedUserManagerImpl::SupervisedUserManagerImpl( + ChromeUserManagerImpl* owner) : owner_(owner), cros_settings_(CrosSettings::Get()) { // SupervisedUserManager instance should be used only on UI thread. DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.h b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.h index 05e45d4..eaa013f 100644 --- a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.h +++ b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.h @@ -14,7 +14,7 @@ namespace chromeos { -class ChromeUserManager; +class ChromeUserManagerImpl; class CrosSettings; // Implementation of the UserManager. @@ -60,10 +60,10 @@ class SupervisedUserManagerImpl const std::string& token) OVERRIDE; private: - friend class ChromeUserManager; + friend class ChromeUserManagerImpl; friend class UserManager; - explicit SupervisedUserManagerImpl(ChromeUserManager* owner); + explicit SupervisedUserManagerImpl(ChromeUserManagerImpl* owner); // Returns true if there is non-committed user creation transaction. bool HasFailedUserCreationTransaction(); @@ -106,7 +106,7 @@ class SupervisedUserManagerImpl void CleanPref(const std::string& user_id, const char* key); - ChromeUserManager* owner_; + ChromeUserManagerImpl* owner_; // Interface to the signed settings store. CrosSettings* cros_settings_; diff --git a/chrome/browser/chromeos/login/users/user_manager.cc b/chrome/browser/chromeos/login/users/user_manager.cc deleted file mode 100644 index 1adceeb..0000000 --- a/chrome/browser/chromeos/login/users/user_manager.cc +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// 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/user_manager.h" - -#include "base/command_line.h" -#include "base/prefs/pref_registry_simple.h" -#include "chrome/browser/browser_process_platform_part_chromeos.h" -#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" -#include "chrome/browser/chromeos/profiles/profile_helper.h" -#include "chrome/common/chrome_switches.h" - -namespace chromeos { - -static UserManager* g_user_manager = NULL; - -UserManager::Observer::~Observer() { -} - -void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { -} - -void UserManager::UserSessionStateObserver::ActiveUserChanged( - const user_manager::User* active_user) { -} - -void UserManager::UserSessionStateObserver::UserAddedToSession( - const user_manager::User* active_user) { -} - -void UserManager::UserSessionStateObserver::ActiveUserHashChanged( - const std::string& hash) { -} - -UserManager::UserSessionStateObserver::~UserSessionStateObserver() { -} - -UserManager::UserAccountData::UserAccountData( - const base::string16& display_name, - const base::string16& given_name, - const std::string& locale) - : display_name_(display_name), - given_name_(given_name), - locale_(locale) { -} - -UserManager::UserAccountData::~UserAccountData() {} - -// static -void UserManager::Initialize() { - CHECK(!g_user_manager); - g_user_manager = new ChromeUserManager(); -} - -// static -bool UserManager::IsInitialized() { - return g_user_manager; -} - -void UserManager::Destroy() { - DCHECK(g_user_manager); - delete g_user_manager; - g_user_manager = NULL; -} - -// static -UserManager* UserManager::Get() { - CHECK(g_user_manager); - return g_user_manager; -} - -UserManager::~UserManager() { -} - -// static -UserManager* UserManager::SetForTesting(UserManager* user_manager) { - UserManager* previous_user_manager = g_user_manager; - if (previous_user_manager) - previous_user_manager->Shutdown(); - - g_user_manager = user_manager; - return previous_user_manager; -} - -ScopedUserManagerEnabler::ScopedUserManagerEnabler(UserManager* user_manager) - : previous_user_manager_(UserManager::SetForTesting(user_manager)) { -} - -ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { - UserManager::Get()->Shutdown(); - UserManager::Destroy(); - UserManager::SetForTesting(previous_user_manager_); -} - -ScopedTestUserManager::ScopedTestUserManager() { - UserManager::Initialize(); - - // ProfileHelper has to be initialized after UserManager instance is created. - ProfileHelper::Get()->Initialize(); -} - -ScopedTestUserManager::~ScopedTestUserManager() { - UserManager::Get()->Shutdown(); - UserManager::Destroy(); -} - -} // namespace chromeos diff --git a/chrome/browser/chromeos/login/users/user_manager_unittest.cc b/chrome/browser/chromeos/login/users/user_manager_unittest.cc index 20c8e44..5a3e989 100644 --- a/chrome/browser/chromeos/login/users/user_manager_unittest.cc +++ b/chrome/browser/chromeos/login/users/user_manager_unittest.cc @@ -12,8 +12,8 @@ #include "base/run_loop.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -27,6 +27,7 @@ #include "chromeos/settings/cros_settings_names.h" #include "chromeos/settings/cros_settings_provider.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/common/content_switches.h" #include "content/public/test/test_browser_thread_bundle.h" #include "testing/gtest/include/gtest/gtest.h" @@ -103,8 +104,9 @@ class UserManagerTest : public testing::Test { chromeos::DBusThreadManager::Shutdown(); } - ChromeUserManager* GetChromeUserManager() const { - return static_cast<ChromeUserManager*>(UserManager::Get()); + ChromeUserManagerImpl* GetChromeUserManager() const { + return static_cast<ChromeUserManagerImpl*>( + user_manager::UserManager::Get()); } bool GetUserManagerEphemeralUsersEnabled() const { @@ -126,12 +128,12 @@ class UserManagerTest : public testing::Test { void ResetUserManager() { // Reset the UserManager singleton. user_manager_enabler_.reset(); - // Initialize the UserManager singleton to a fresh ChromeUserManager + // Initialize the UserManager singleton to a fresh ChromeUserManagerImpl // instance. user_manager_enabler_.reset( - new ScopedUserManagerEnabler(new ChromeUserManager)); + new ScopedUserManagerEnabler(new ChromeUserManagerImpl)); - // ChromeUserManager ctor posts a task to reload policies. + // ChromeUserManagerImpl ctor posts a task to reload policies. base::RunLoop().RunUntilIdle(); } @@ -179,17 +181,18 @@ TEST_F(UserManagerTest, RetrieveTrustedDevicePolicies) { } TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) { - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "owner@invalid.domain", false); ResetUserManager(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "user0@invalid.domain", "owner@invalid.domain", false); ResetUserManager(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "user1@invalid.domain", "owner@invalid.domain", false); ResetUserManager(); - const user_manager::UserList* users = &UserManager::Get()->GetUsers(); + const user_manager::UserList* users = + &user_manager::UserManager::Get()->GetUsers(); ASSERT_EQ(3U, users->size()); EXPECT_EQ((*users)[0]->email(), "user1@invalid.domain"); EXPECT_EQ((*users)[1]->email(), "user0@invalid.domain"); @@ -198,7 +201,7 @@ TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) { SetDeviceSettings(true, "owner@invalid.domain", false); RetrieveTrustedDevicePolicies(); - users = &UserManager::Get()->GetUsers(); + users = &user_manager::UserManager::Get()->GetUsers(); EXPECT_EQ(1U, users->size()); EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain"); } @@ -207,14 +210,15 @@ TEST_F(UserManagerTest, RegularUserLoggedInAsEphemeral) { SetDeviceSettings(true, "owner@invalid.domain", false); RetrieveTrustedDevicePolicies(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "user0@invalid.domain", false); ResetUserManager(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "user0@invalid.domain", "user0@invalid.domain", false); ResetUserManager(); - const user_manager::UserList* users = &UserManager::Get()->GetUsers(); + const user_manager::UserList* users = + &user_manager::UserManager::Get()->GetUsers(); EXPECT_EQ(1U, users->size()); EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain"); } diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc index 461c1b7..6053cee 100644 --- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc +++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc @@ -34,7 +34,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/customization_document.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/common/chrome_paths.h" @@ -46,6 +45,7 @@ #include "chromeos/login/user_names.h" #include "components/user_manager/user.h" #include "components/user_manager/user_image/user_image.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -536,7 +536,8 @@ void WallpaperManager::EnsureLoggedInUserWallpaperLoaded() { if (info == current_user_wallpaper_info_) return; } - SetUserWallpaperNow(UserManager::Get()->GetLoggedInUser()->email()); + SetUserWallpaperNow( + user_manager::UserManager::Get()->GetLoggedInUser()->email()); } void WallpaperManager::ClearDisposableWallpaperCache() { @@ -545,7 +546,7 @@ void WallpaperManager::ClearDisposableWallpaperCache() { // Keep the wallpaper of logged in users in cache at multi-profile mode. std::set<std::string> logged_in_users_names; const user_manager::UserList& logged_users = - UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_users.begin(); it != logged_users.end(); ++it) { @@ -566,7 +567,7 @@ void WallpaperManager::ClearDisposableWallpaperCache() { bool WallpaperManager::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - if (UserManager::Get()->IsLoggedInAsStub()) { + if (user_manager::UserManager::Get()->IsLoggedInAsStub()) { info->location = current_user_wallpaper_info_.location = ""; info->layout = current_user_wallpaper_info_.layout = ash::WALLPAPER_LAYOUT_CENTER_CROPPED; @@ -577,13 +578,13 @@ bool WallpaperManager::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) { return true; } - return GetUserWallpaperInfo(UserManager::Get()->GetLoggedInUser()->email(), - info); + return GetUserWallpaperInfo( + user_manager::UserManager::Get()->GetLoggedInUser()->email(), info); } void WallpaperManager::InitializeWallpaper() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Apply device customization. if (ShouldUseCustomizedDefaultWallpaper()) { @@ -828,7 +829,7 @@ void WallpaperManager::SetPolicyControlledWallpaper( const std::string& user_id, const user_manager::UserImage& user_image) { const user_manager::User* user = - chromeos::UserManager::Get()->FindUser(user_id); + user_manager::UserManager::Get()->FindUser(user_id); if (!user) { NOTREACHED() << "Unknown user."; return; @@ -881,7 +882,7 @@ void WallpaperManager::SetCustomWallpaper( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); // There is no visible background in kiosk mode. - if (UserManager::Get()->IsLoggedInAsKioskApp()) + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) return; // Don't allow custom wallpapers while policy is in effect. @@ -898,10 +899,12 @@ void WallpaperManager::SetCustomWallpaper( return; } - const user_manager::User *user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); CHECK(user); bool is_persistent = - !UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id) || + !user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( + user_id) || (type == user_manager::User::POLICY && user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT); @@ -960,7 +963,7 @@ void WallpaperManager::DoSetDefaultWallpaper( const std::string& user_id, MovableOnDestroyCallbackHolder on_finish) { // There is no visible background in kiosk mode. - if (UserManager::Get()->IsLoggedInAsKioskApp()) + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) return; current_wallpaper_path_.clear(); wallpaper_cache_.erase(user_id); @@ -975,7 +978,7 @@ void WallpaperManager::DoSetDefaultWallpaper( const base::FilePath* file = NULL; - if (UserManager::Get()->IsLoggedInAsGuest()) { + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) { file = use_small ? &guest_small_wallpaper_file_ : &guest_large_wallpaper_file_; } else { @@ -1167,21 +1170,26 @@ void WallpaperManager::ScheduleSetUserWallpaper(const std::string& user_id, bool delayed) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); // Some unit tests come here without a UserManager or without a pref system. - if (!UserManager::IsInitialized() || !g_browser_process->local_state()) + if (!user_manager::UserManager::IsInitialized() || + !g_browser_process->local_state()) { return; + } + // There is no visible background in kiosk mode. - if (UserManager::Get()->IsLoggedInAsKioskApp()) + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) return; // Guest user, regular user in ephemeral mode, or kiosk app. - const user_manager::User* user = UserManager::Get()->FindUser(user_id); - if (UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id) || + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); + if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( + user_id) || (user != NULL && user->GetType() == user_manager::USER_TYPE_KIOSK_APP)) { InitInitialUserWallpaper(user_id, false); GetPendingWallpaper(user_id, delayed)->ResetSetDefaultWallpaper(); return; } - if (!UserManager::Get()->IsKnownUser(user_id)) + if (!user_manager::UserManager::Get()->IsKnownUser(user_id)) return; last_selected_user_ = user_id; @@ -1235,10 +1243,10 @@ void WallpaperManager::SetWallpaperFromImageSkia(const std::string& user_id, const gfx::ImageSkia& image, ash::WallpaperLayout layout, bool update_wallpaper) { - DCHECK(UserManager::Get()->IsUserLoggedIn()); + DCHECK(user_manager::UserManager::Get()->IsUserLoggedIn()); // There is no visible background in kiosk mode. - if (UserManager::Get()->IsLoggedInAsKioskApp()) + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) return; WallpaperInfo info; info.layout = layout; @@ -1294,7 +1302,7 @@ bool WallpaperManager::GetWallpaperFromCache(const std::string& user_id, void WallpaperManager::CacheUsersWallpapers() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - user_manager::UserList users = UserManager::Get()->GetUsers(); + user_manager::UserList users = user_manager::UserManager::Get()->GetUsers(); if (!users.empty()) { user_manager::UserList::const_iterator it = users.begin(); @@ -1399,7 +1407,7 @@ CommandLine* WallpaperManager::GetCommandLine() { } void WallpaperManager::InitializeRegisteredDeviceWallpaper() { - if (UserManager::Get()->IsUserLoggedIn()) + if (user_manager::UserManager::Get()->IsUserLoggedIn()) return; bool disable_boot_animation = @@ -1409,7 +1417,8 @@ void WallpaperManager::InitializeRegisteredDeviceWallpaper() { kAccountsPrefShowUserNamesOnSignIn, &show_users); DCHECK(result) << "Unable to fetch setting " << kAccountsPrefShowUserNamesOnSignIn; - const user_manager::UserList& users = UserManager::Get()->GetUsers(); + const user_manager::UserList& users = + user_manager::UserManager::Get()->GetUsers(); int public_session_user_index = FindPublicSession(users); if ((!show_users && public_session_user_index == -1) || users.empty()) { // Boot into sign in form, preload default wallpaper. @@ -1494,7 +1503,8 @@ bool WallpaperManager::GetUserWallpaperInfo(const std::string& user_id, WallpaperInfo* info) const { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - if (UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id)) { + if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( + user_id)) { // Default to the values cached in memory. *info = current_user_wallpaper_info_; @@ -1544,20 +1554,23 @@ void WallpaperManager::MoveCustomWallpapersSuccess( // This is needed because at login screen, user id hash is not available. info.location = base::FilePath(user_id_hash).Append(info.location).value(); bool is_persistent = - !UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id); + !user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( + user_id); SetUserWallpaperInfo(user_id, info, is_persistent); } } void WallpaperManager::MoveLoggedInUserCustomWallpaper() { const user_manager::User* logged_in_user = - UserManager::Get()->GetLoggedInUser(); - task_runner_->PostTask( - FROM_HERE, - base::Bind(&WallpaperManager::MoveCustomWallpapersOnWorker, - logged_in_user->email(), - logged_in_user->username_hash(), - weak_factory_.GetWeakPtr())); + user_manager::UserManager::Get()->GetLoggedInUser(); + if (logged_in_user) { + task_runner_->PostTask( + FROM_HERE, + base::Bind(&WallpaperManager::MoveCustomWallpapersOnWorker, + logged_in_user->email(), + logged_in_user->username_hash(), + weak_factory_.GetWeakPtr())); + } } void WallpaperManager::OnWallpaperDecoded( diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_browsertest.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_browsertest.cc index 2b11522..46f75a9 100644 --- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_browsertest.cc +++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_browsertest.cc @@ -24,7 +24,6 @@ #include "base/strings/string_number_conversions.h" #include "base/time/time.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_test_utils.h" #include "chrome/common/chrome_paths.h" #include "chrome/test/base/in_process_browser_test.h" @@ -32,6 +31,7 @@ #include "chromeos/chromeos_switches.h" #include "chromeos/login/user_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "ui/aura/env.h" #include "ui/gfx/image/image_skia.h" @@ -111,7 +111,8 @@ class WallpaperManagerBrowserTest : public InProcessBrowserTest { // Logs in |username|. void LogIn(const std::string& username, const std::string& username_hash) { - UserManager::Get()->UserLoggedIn(username, username_hash, false); + user_manager::UserManager::Get()->UserLoggedIn( + username, username_hash, false); WaitAsyncWallpaperLoadStarted(); } @@ -733,7 +734,7 @@ IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, SmallGuestWallpaper) { if (!ash::test::AshTestHelper::SupportsMultipleDisplays()) return; CreateCmdlineWallpapers(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( chromeos::login::kGuestUserName, chromeos::login::kGuestUserName, false); UpdateDisplay("800x600"); WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); @@ -748,7 +749,7 @@ IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, LargeGuestWallpaper) { return; CreateCmdlineWallpapers(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( chromeos::login::kGuestUserName, chromeos::login::kGuestUserName, false); UpdateDisplay("1600x1200"); WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); @@ -763,7 +764,7 @@ IN_PROC_BROWSER_TEST_F(WallpaperManagerBrowserTest, // Start loading the default wallpaper. UpdateDisplay("640x480"); CreateCmdlineWallpapers(); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( chromeos::login::kStubUser, "test_hash", false); WallpaperManager::Get()->SetDefaultWallpaperNow(std::string()); diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc index 506f5c5..7abb4bb 100644 --- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc +++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_policy_browsertest.cc @@ -20,7 +20,6 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_util.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" @@ -40,6 +39,7 @@ #include "components/policy/core/common/cloud/cloud_policy_validator.h" #include "components/policy/core/common/cloud/policy_builder.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/browser_test_utils.h" #include "crypto/rsa_private_key.h" #include "net/test/embedded_test_server/embedded_test_server.h" @@ -245,7 +245,8 @@ class WallpaperManagerPolicyTest } builder->Build(); fake_session_manager_client_->set_user_policy(user_id, builder->GetBlob()); - const user_manager::User* user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); ASSERT_TRUE(user); policy::CloudPolicyStore* store = GetStoreForUser(user); ASSERT_TRUE(store); diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_unittest.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_unittest.cc index 9e6d4a5..06c97ed 100644 --- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_unittest.cc +++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager_unittest.cc @@ -20,6 +20,7 @@ #include "base/prefs/testing_pref_service.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc index 9ba3c1b4..bba472f 100644 --- a/chrome/browser/chromeos/login/wizard_controller.cc +++ b/chrome/browser/chromeos/login/wizard_controller.cc @@ -49,7 +49,6 @@ #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/oobe_display.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/net/delay_network_call.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h" @@ -73,6 +72,7 @@ #include "chromeos/settings/cros_settings_names.h" #include "chromeos/settings/timezone_settings.h" #include "components/breakpad/app/breakpad_linux.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_types.h" #include "ui/base/accelerators/accelerator.h" @@ -444,7 +444,8 @@ void WizardController::ShowUpdateScreen() { } void WizardController::ShowUserImageScreen() { - const chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + const user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); // Skip user image selection for public sessions and ephemeral logins. if (user_manager->IsLoggedInAsPublicAccount() || user_manager->IsCurrentUserNonCryptohomeDataEphemeral()) { @@ -518,9 +519,9 @@ void WizardController::ShowTermsOfServiceScreen() { // Only show the Terms of Service when logging into a public account and Terms // of Service have been specified through policy. In all other cases, advance // to the user image screen immediately. - if (!chromeos::UserManager::Get()->IsLoggedInAsPublicAccount() || - !ProfileManager::GetActiveUserProfile()->GetPrefs()-> - IsManagedPreference(prefs::kTermsOfServiceURL)) { + if (!user_manager::UserManager::Get()->IsLoggedInAsPublicAccount() || + !ProfileManager::GetActiveUserProfile()->GetPrefs()->IsManagedPreference( + prefs::kTermsOfServiceURL)) { ShowUserImageScreen(); return; } diff --git a/chrome/browser/chromeos/net/onc_utils.cc b/chrome/browser/chromeos/net/onc_utils.cc index febfac2..dae67a2 100644 --- a/chrome/browser/chromeos/net/onc_utils.cc +++ b/chrome/browser/chromeos/net/onc_utils.cc @@ -9,7 +9,6 @@ #include "base/logging.h" #include "base/prefs/pref_service.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ui_proxy_config.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" #include "chrome/common/pref_names.h" @@ -26,6 +25,7 @@ #include "chromeos/network/onc/onc_translator.h" #include "chromeos/network/onc/onc_utils.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "net/base/host_port_pair.h" #include "net/proxy/proxy_bypass_rules.h" #include "net/proxy/proxy_server.h" @@ -266,7 +266,8 @@ void ImportNetworksForUser(const user_manager::User* user, const base::DictionaryValue* FindPolicyForActiveUser( const std::string& guid, ::onc::ONCSource* onc_source) { - const user_manager::User* user = UserManager::Get()->GetActiveUser(); + const user_manager::User* user = + user_manager::UserManager::Get()->GetActiveUser(); std::string username_hash = user ? user->username_hash() : std::string(); return NetworkHandler::Get()->managed_network_configuration_handler()-> FindPolicyByGUID(username_hash, guid, onc_source); @@ -275,7 +276,8 @@ const base::DictionaryValue* FindPolicyForActiveUser( const base::DictionaryValue* GetGlobalConfigFromPolicy(bool for_active_user) { std::string username_hash; if (for_active_user) { - const user_manager::User* user = UserManager::Get()->GetActiveUser(); + const user_manager::User* user = + user_manager::UserManager::Get()->GetActiveUser(); if (!user) { LOG(ERROR) << "No user logged in yet."; return NULL; diff --git a/chrome/browser/chromeos/ownership/owner_settings_service.cc b/chrome/browser/chromeos/ownership/owner_settings_service.cc index b2581e2..a8fc0f2 100644 --- a/chrome/browser/chromeos/ownership/owner_settings_service.cc +++ b/chrome/browser/chromeos/ownership/owner_settings_service.cc @@ -9,14 +9,12 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/session_manager_operation.h" #include "chrome/browser/profiles/profile.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" -#include "components/user_manager/user.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" diff --git a/chrome/browser/chromeos/ownership/owner_settings_service_factory.cc b/chrome/browser/chromeos/ownership/owner_settings_service_factory.cc index 9cf55d4..3154df4 100644 --- a/chrome/browser/chromeos/ownership/owner_settings_service_factory.cc +++ b/chrome/browser/chromeos/ownership/owner_settings_service_factory.cc @@ -4,12 +4,12 @@ #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ownership/owner_settings_service.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" namespace chromeos { @@ -36,9 +36,10 @@ OwnerSettingsServiceFactory* OwnerSettingsServiceFactory::GetInstance() { void OwnerSettingsServiceFactory::SetUsername(const std::string& username) { username_ = username; - if (!UserManager::IsInitialized()) + if (!user_manager::UserManager::IsInitialized()) return; - const user_manager::User* user = UserManager::Get()->FindUser(username_); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(username_); if (!user || !user->is_profile_created()) return; Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); diff --git a/chrome/browser/chromeos/policy/blocking_login_browsertest.cc b/chrome/browser/chromeos/policy/blocking_login_browsertest.cc index 54d4898..7cae921 100644 --- a/chrome/browser/chromeos/policy/blocking_login_browsertest.cc +++ b/chrome/browser/chromeos/policy/blocking_login_browsertest.cc @@ -13,7 +13,6 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/existing_user_controller.h" #include "chrome/browser/chromeos/login/ui/webui_login_display.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" @@ -23,6 +22,7 @@ #include "chromeos/chromeos_switches.h" #include "components/policy/core/common/cloud/device_management_service.h" #include "components/policy/core/common/policy_switches.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_service.h" @@ -257,7 +257,7 @@ class BlockingLoginTest IN_PROC_BROWSER_TEST_P(BlockingLoginTest, LoginBlocksForUser) { // Verify that there isn't a logged in user when the test starts. - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); EXPECT_FALSE(user_manager->IsUserLoggedIn()); EXPECT_FALSE(browser_policy_connector()->IsEnterpriseManaged()); EXPECT_FALSE(profile_added_); diff --git a/chrome/browser/chromeos/policy/device_local_account.h b/chrome/browser/chromeos/policy/device_local_account.h index d10b228..175ab9c 100644 --- a/chrome/browser/chromeos/policy/device_local_account.h +++ b/chrome/browser/chromeos/policy/device_local_account.h @@ -43,7 +43,8 @@ struct DeviceLocalAccount { // The |account_id| is primarily used by policy code: If device policy defines // a device-local account with a certain |account_id|, the user policy for // that account has to be fetched by referencing the same |account_id|. - // The |user_id| is passed to the chromeos::UserManager where it becomes part + // The |user_id| is passed to the user_manager::UserManager where it becomes + // part // of the global user list on the device. The |account_id| would not be safe // to use here as it is a free-form identifier that could conflict with // another |user_id| on the device and cannot be easily identified as diff --git a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc index 06ea719b..077d915a 100644 --- a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc +++ b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc @@ -51,8 +51,7 @@ #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_util.h" -#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_util.h" @@ -104,6 +103,7 @@ #include "components/policy/core/common/policy_switches.h" #include "components/signin/core/common/signin_pref_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" @@ -374,7 +374,7 @@ scoped_ptr<net::FakeURLFetcher> RunCallbackAndReturnFakeURLFetcher( } bool IsSessionStarted() { - return chromeos::UserManager::Get()->IsSessionStarted(); + return user_manager::UserManager::Get()->IsSessionStarted(); } // GetKeyboardLayoutsForLocale() posts a task to a background task runner. This @@ -397,7 +397,7 @@ void WaitForGetKeyboardLayoutsForLocaleToFinish() { } // namespace class DeviceLocalAccountTest : public DevicePolicyCrosBrowserTest, - public chromeos::UserManager::Observer, + public user_manager::UserManager::Observer, public chrome::BrowserListObserver, public apps::AppWindowRegistry::Observer { protected: @@ -519,7 +519,8 @@ class DeviceLocalAccountTest : public DevicePolicyCrosBrowserTest, base::RunLoop().RunUntilIdle(); } - virtual void LocalStateChanged(chromeos::UserManager* user_manager) OVERRIDE { + virtual void LocalStateChanged( + user_manager::UserManager* user_manager) OVERRIDE { if (run_loop_) run_loop_->Quit(); } @@ -609,7 +610,8 @@ class DeviceLocalAccountTest : public DevicePolicyCrosBrowserTest, } void CheckPublicSessionPresent(const std::string& id) { - const user_manager::User* user = chromeos::UserManager::Get()->FindUser(id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(id); ASSERT_TRUE(user); EXPECT_EQ(id, user->email()); EXPECT_EQ(user_manager::USER_TYPE_PUBLIC_ACCOUNT, user->GetType()); @@ -709,7 +711,7 @@ class DeviceLocalAccountTest : public DevicePolicyCrosBrowserTest, }; static bool IsKnownUser(const std::string& account_id) { - return chromeos::UserManager::Get()->IsKnownUser(account_id); + return user_manager::UserManager::Get()->IsKnownUser(account_id); } IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, LoginScreen) { @@ -1065,13 +1067,13 @@ IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, ExtensionsCached) { } IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, ExternalData) { - // chromeos::UserManager requests an external data fetch whenever + // user_manager::UserManager requests an external data fetch whenever // the key::kUserAvatarImage policy is set. Since this test wants to // verify that the underlying policy subsystem will start a fetch - // without this request as well, the chromeos::UserManager must be + // without this request as well, the user_manager::UserManager must be // prevented from seeing the policy change. - reinterpret_cast<chromeos::ChromeUserManager*>(chromeos::UserManager::Get()) - ->StopPolicyObserverForTesting(); + reinterpret_cast<chromeos::ChromeUserManagerImpl*>( + user_manager::UserManager::Get())->StopPolicyObserverForTesting(); UploadDeviceLocalAccountPolicy(); AddPublicSessionToDevicePolicy(kAccountId1); @@ -1194,17 +1196,17 @@ IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, UserAvatarImage) { ASSERT_TRUE(broker); run_loop_.reset(new base::RunLoop); - chromeos::UserManager::Get()->AddObserver(this); + user_manager::UserManager::Get()->AddObserver(this); broker->core()->store()->Load(); run_loop_->Run(); - chromeos::UserManager::Get()->RemoveObserver(this); + user_manager::UserManager::Get()->RemoveObserver(this); scoped_ptr<gfx::ImageSkia> policy_image = chromeos::test::ImageLoader( test_dir.Append(chromeos::test::kUserAvatarImage1RelativePath)).Load(); ASSERT_TRUE(policy_image); const user_manager::User* user = - chromeos::UserManager::Get()->FindUser(user_id_1_); + user_manager::UserManager::Get()->FindUser(user_id_1_); ASSERT_TRUE(user); base::FilePath user_data_dir; diff --git a/chrome/browser/chromeos/policy/device_status_collector.cc b/chrome/browser/chromeos/policy/device_status_collector.cc index c48eab4..377c827 100644 --- a/chrome/browser/chromeos/policy/device_status_collector.cc +++ b/chrome/browser/chromeos/policy/device_status_collector.cc @@ -17,7 +17,6 @@ #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/common/chrome_version_info.h" @@ -28,6 +27,7 @@ #include "chromeos/settings/cros_settings_names.h" #include "chromeos/system/statistics_provider.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "policy/proto/device_management_backend.pb.h" @@ -428,7 +428,7 @@ void DeviceStatusCollector::GetUsers(em::DeviceStatusReportRequest* request) { policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); const user_manager::UserList& users = - chromeos::UserManager::Get()->GetUsers(); + user_manager::UserManager::Get()->GetUsers(); user_manager::UserList::const_iterator user; for (user = users.begin(); user != users.end(); ++user) { // Only regular users are reported. diff --git a/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc index 6e4a1f5..215f6ec 100644 --- a/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc +++ b/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc @@ -13,7 +13,7 @@ #include "base/run_loop.h" #include "base/threading/sequenced_worker_pool.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/stub_enterprise_install_attributes.h" #include "chrome/browser/chromeos/settings/cros_settings.h" diff --git a/chrome/browser/chromeos/policy/policy_cert_service.cc b/chrome/browser/chromeos/policy/policy_cert_service.cc index 53b61f9..ed503b5 100644 --- a/chrome/browser/chromeos/policy/policy_cert_service.cc +++ b/chrome/browser/chromeos/policy/policy_cert_service.cc @@ -7,9 +7,9 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/logging.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "net/cert/x509_certificate.h" @@ -23,7 +23,7 @@ PolicyCertService::~PolicyCertService() { PolicyCertService::PolicyCertService( const std::string& user_id, UserNetworkConfigurationUpdater* net_conf_updater, - chromeos::UserManager* user_manager) + user_manager::UserManager* user_manager) : cert_verifier_(NULL), user_id_(user_id), net_conf_updater_(net_conf_updater), @@ -36,13 +36,14 @@ PolicyCertService::PolicyCertService( PolicyCertService::PolicyCertService(const std::string& user_id, PolicyCertVerifier* verifier, - chromeos::UserManager* user_manager) + user_manager::UserManager* user_manager) : cert_verifier_(verifier), user_id_(user_id), net_conf_updater_(NULL), user_manager_(user_manager), has_trust_anchors_(false), - weak_ptr_factory_(this) {} + weak_ptr_factory_(this) { +} scoped_ptr<PolicyCertVerifier> PolicyCertService::CreatePolicyCertVerifier() { base::Closure callback = base::Bind( @@ -109,7 +110,7 @@ void PolicyCertService::Shutdown() { scoped_ptr<PolicyCertService> PolicyCertService::CreateForTesting( const std::string& user_id, PolicyCertVerifier* verifier, - chromeos::UserManager* user_manager) { + user_manager::UserManager* user_manager) { return make_scoped_ptr( new PolicyCertService(user_id, verifier, user_manager)); } diff --git a/chrome/browser/chromeos/policy/policy_cert_service.h b/chrome/browser/chromeos/policy/policy_cert_service.h index c514ba1..e32ca25 100644 --- a/chrome/browser/chromeos/policy/policy_cert_service.h +++ b/chrome/browser/chromeos/policy/policy_cert_service.h @@ -16,7 +16,7 @@ #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h" #include "components/keyed_service/core/keyed_service.h" -namespace chromeos { +namespace user_manager { class UserManager; } @@ -40,7 +40,7 @@ class PolicyCertService public: PolicyCertService(const std::string& user_id, UserNetworkConfigurationUpdater* net_conf_updater, - chromeos::UserManager* user_manager); + user_manager::UserManager* user_manager); virtual ~PolicyCertService(); // Creates an associated PolicyCertVerifier. The returned object must only be @@ -64,17 +64,17 @@ class PolicyCertService static scoped_ptr<PolicyCertService> CreateForTesting( const std::string& user_id, PolicyCertVerifier* verifier, - chromeos::UserManager* user_manager); + user_manager::UserManager* user_manager); private: PolicyCertService(const std::string& user_id, PolicyCertVerifier* verifier, - chromeos::UserManager* user_manager); + user_manager::UserManager* user_manager); PolicyCertVerifier* cert_verifier_; std::string user_id_; UserNetworkConfigurationUpdater* net_conf_updater_; - chromeos::UserManager* user_manager_; + user_manager::UserManager* user_manager_; bool has_trust_anchors_; // Weak pointers to handle callbacks from PolicyCertVerifier on the IO thread. diff --git a/chrome/browser/chromeos/policy/policy_cert_service_factory.cc b/chrome/browser/chromeos/policy/policy_cert_service_factory.cc index a8c8ef0..b0bee1c 100644 --- a/chrome/browser/chromeos/policy/policy_cert_service_factory.cc +++ b/chrome/browser/chromeos/policy/policy_cert_service_factory.cc @@ -9,7 +9,6 @@ #include "base/prefs/pref_service.h" #include "base/prefs/scoped_user_pref_update.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/policy_cert_service.h" #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" #include "chrome/browser/chromeos/policy/user_network_configuration_updater_factory.h" @@ -20,6 +19,7 @@ #include "chrome/common/pref_names.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/pref_registry/pref_registry_syncable.h" +#include "components/user_manager/user_manager.h" namespace policy { @@ -94,7 +94,7 @@ KeyedService* PolicyCertServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { Profile* profile = static_cast<Profile*>(context); - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_manager::User* user = chromeos::ProfileHelper::Get()->GetUserByProfile( profile->GetOriginalProfile()); if (!user) diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc index f7c8d54..1dc5111 100644 --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc @@ -25,6 +25,7 @@ #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_pref_names.h" #include "components/policy/core/common/policy_types.h" +#include "components/user_manager/user_manager.h" #include "net/url_request/url_request_context_getter.h" #include "policy/policy_constants.h" #include "url/gurl.h" @@ -63,7 +64,7 @@ void OnWildcardCheckCompleted(const std::string& username, // logged-in session is not possible. Fix this either by delaying the // cryptohome deletion operation or by getting rid of the in-session // wildcard check. - chromeos::UserManager::Get()->RemoveUserFromList(username); + user_manager::UserManager::Get()->RemoveUserFromList(username); chrome::AttemptUserExit(); } } diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc index 5eb1590..e7a14dc 100644 --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.cc @@ -16,7 +16,6 @@ #include "base/time/time.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/login_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_external_data_manager.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" @@ -33,6 +32,7 @@ #include "components/policy/core/common/cloud/cloud_external_data_manager.h" #include "components/policy/core/common/cloud/device_management_service.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "net/url_request/url_request_context_getter.h" @@ -150,10 +150,11 @@ scoped_ptr<UserCloudPolicyManagerChromeOS> command_line->HasSwitch(chromeos::switches::kLoginUser); const bool wait_for_initial_policy = !is_browser_restart && - (chromeos::UserManager::Get()->IsCurrentUserNew() || is_affiliated_user); + (user_manager::UserManager::Get()->IsCurrentUserNew() || + is_affiliated_user); const base::TimeDelta initial_policy_fetch_timeout = - chromeos::UserManager::Get()->IsCurrentUserNew() + user_manager::UserManager::Get()->IsCurrentUserNew() ? base::TimeDelta::Max() : base::TimeDelta::FromSeconds(kInitialPolicyFetchTimeoutSeconds); diff --git a/chrome/browser/chromeos/policy/user_network_configuration_updater_factory.cc b/chrome/browser/chromeos/policy/user_network_configuration_updater_factory.cc index f332147..5d22dc7 100644 --- a/chrome/browser/chromeos/policy/user_network_configuration_updater_factory.cc +++ b/chrome/browser/chromeos/policy/user_network_configuration_updater_factory.cc @@ -5,7 +5,6 @@ #include "chrome/browser/chromeos/policy/user_network_configuration_updater_factory.h" #include "base/memory/singleton.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/policy/profile_policy_connector.h" @@ -17,6 +16,7 @@ #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" namespace policy { @@ -71,7 +71,7 @@ KeyedService* UserNetworkConfigurationUpdaterFactory::BuildServiceInstanceFor( DCHECK(user); // Currently, only the network policy of the primary user is supported. See // also http://crbug.com/310685 . - if (user != chromeos::UserManager::Get()->GetPrimaryUser()) + if (user != user_manager::UserManager::Get()->GetPrimaryUser()) return NULL; const bool allow_trusted_certs_from_policy = diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index f649254..60f7bae 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc @@ -71,7 +71,7 @@ Preferences::Preferences(input_method::InputMethodManager* input_method_manager) Preferences::~Preferences() { prefs_->RemoveObserver(this); - UserManager::Get()->RemoveSessionStateObserver(this); + user_manager::UserManager::Get()->RemoveSessionStateObserver(this); // If shell instance is destoryed before this preferences instance, there is // no need to remove this shell observer. if (ash::Shell::HasInstance()) @@ -353,10 +353,11 @@ void Preferences::Init(PrefServiceSyncable* prefs, const user_manager::User* user) { DCHECK(user); user_ = user; - user_is_primary_ = UserManager::Get()->GetPrimaryUser() == user_; + user_is_primary_ = + user_manager::UserManager::Get()->GetPrimaryUser() == user_; InitUserPrefs(prefs); - UserManager::Get()->AddSessionStateObserver(this); + user_manager::UserManager::Get()->AddSessionStateObserver(this); // This causes OnIsSyncingChanged to be called when the value of // PrefService::IsSyncing() changes. @@ -390,7 +391,7 @@ void Preferences::ApplyPreferences(ApplyReason reason, const std::string& pref_name) { DCHECK(reason != REASON_PREF_CHANGED || !pref_name.empty()); const bool user_is_owner = - UserManager::Get()->GetOwnerEmail() == user_->email(); + user_manager::UserManager::Get()->GetOwnerEmail() == user_->email(); const bool user_is_active = user_->is_active(); system::TouchpadSettings touchpad_settings; diff --git a/chrome/browser/chromeos/preferences.h b/chrome/browser/chromeos/preferences.h index bf8e6e6..0d24b05 100644 --- a/chrome/browser/chromeos/preferences.h +++ b/chrome/browser/chromeos/preferences.h @@ -12,8 +12,8 @@ #include "base/compiler_specific.h" #include "base/prefs/pref_member.h" #include "chrome/browser/chromeos/language_preferences.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/prefs/pref_service_syncable_observer.h" +#include "components/user_manager/user_manager.h" class PrefRegistrySimple; class PrefService; @@ -39,7 +39,7 @@ class InputMethodManager; // When the preferences change, we change the settings to reflect the new value. class Preferences : public PrefServiceSyncableObserver, public ash::ShellObserver, - public UserManager::UserSessionStateObserver { + public user_manager::UserManager::UserSessionStateObserver { public: Preferences(); explicit Preferences( @@ -103,7 +103,7 @@ class Preferences : public PrefServiceSyncableObserver, // Overriden from ash::ShellObserver. virtual void OnTouchHudProjectionToggled(bool enabled) OVERRIDE; - // Overriden form UserManager::UserSessionStateObserver. + // Overriden form user_manager::UserManager::UserSessionStateObserver. virtual void ActiveUserChanged( const user_manager::User* active_user) OVERRIDE; diff --git a/chrome/browser/chromeos/preferences_browsertest.cc b/chrome/browser/chromeos/preferences_browsertest.cc index 9c6f1da..d28efed 100644 --- a/chrome/browser/chromeos/preferences_browsertest.cc +++ b/chrome/browser/chromeos/preferences_browsertest.cc @@ -13,7 +13,6 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/preferences.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -24,6 +23,7 @@ #include "chromeos/chromeos_switches.h" #include "chromeos/ime/fake_ime_keyboard.h" #include "components/feedback/tracing_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/events/event_utils.h" @@ -139,7 +139,7 @@ IN_PROC_BROWSER_TEST_F(PreferencesTest, PRE_MultiProfiles) { } IN_PROC_BROWSER_TEST_F(PreferencesTest, MultiProfiles) { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Add first user and init its preferences. Check that corresponding // settings has been changed. diff --git a/chrome/browser/chromeos/preferences_unittest.cc b/chrome/browser/chromeos/preferences_unittest.cc index 0f444d0..62cc543 100644 --- a/chrome/browser/chromeos/preferences_unittest.cc +++ b/chrome/browser/chromeos/preferences_unittest.cc @@ -7,7 +7,7 @@ #include "base/prefs/pref_member.h" #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_pref_service_syncable.h" diff --git a/chrome/browser/chromeos/profiles/avatar_menu_actions_chromeos.cc b/chrome/browser/chromeos/profiles/avatar_menu_actions_chromeos.cc index c88c50b..a65eae2 100644 --- a/chrome/browser/chromeos/profiles/avatar_menu_actions_chromeos.cc +++ b/chrome/browser/chromeos/profiles/avatar_menu_actions_chromeos.cc @@ -7,9 +7,10 @@ #include "ash/multi_profile_uma.h" #include "ash/shell.h" #include "ash/system/tray/system_tray_delegate.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_avatar_icon_util.h" #include "chrome/browser/ui/browser.h" +#include "components/user_manager/user_manager.h" // static AvatarMenuActions* AvatarMenuActions::Create() { @@ -38,7 +39,9 @@ void AvatarMenuActionsChromeOS::EditProfile(Profile* profile, size_t index) { bool AvatarMenuActionsChromeOS::ShouldShowAddNewProfileLink() const { // |browser_| can be NULL in unit_tests. return (!browser_ || !browser_->profile()->IsSupervised()) && - UserManager::Get()->GetUsersAdmittedForMultiProfile().size(); + user_manager::UserManager::Get() + ->GetUsersAdmittedForMultiProfile() + .size(); } bool AvatarMenuActionsChromeOS::ShouldShowEditProfileLink() const { diff --git a/chrome/browser/chromeos/profiles/profile_helper.cc b/chrome/browser/chromeos/profiles/profile_helper.cc index f960630..fc95ed6 100644 --- a/chrome/browser/chromeos/profiles/profile_helper.cc +++ b/chrome/browser/chromeos/profiles/profile_helper.cc @@ -9,7 +9,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/browsing_data/browsing_data_helper.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profiles_state.h" @@ -17,6 +16,7 @@ #include "chrome/common/chrome_switches.h" #include "chromeos/chromeos_switches.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" namespace chromeos { @@ -61,8 +61,8 @@ ProfileHelper::ProfileHelper() ProfileHelper::~ProfileHelper() { // Checking whether UserManager is initialized covers case // when ScopedTestUserManager is used. - if (UserManager::IsInitialized()) - UserManager::Get()->RemoveSessionStateObserver(this); + if (user_manager::UserManager::IsInitialized()) + user_manager::UserManager::Get()->RemoveSessionStateObserver(this); } // static @@ -151,7 +151,8 @@ base::FilePath ProfileHelper::GetUserProfileDirByUserId( // ProfileManager and use only this function to construct profile path. // TODO(nkostylev): Cleanup profile dir related code paths crbug.com/294233 base::FilePath profile_dir; - const user_manager::User* user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); if (user && !user->username_hash().empty()) profile_dir = ProfileHelper::GetUserProfileDir(user->username_hash()); @@ -174,7 +175,7 @@ bool ProfileHelper::IsOwnerProfile(Profile* profile) { if (!user) return false; - return user->email() == chromeos::UserManager::Get()->GetOwnerEmail(); + return user->email() == user_manager::UserManager::Get()->GetOwnerEmail(); } // static @@ -184,7 +185,7 @@ bool ProfileHelper::IsPrimaryProfile(Profile* profile) { user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile); if (!user) return false; - return user == chromeos::UserManager::Get()->GetPrimaryUser(); + return user == user_manager::UserManager::Get()->GetPrimaryUser(); } void ProfileHelper::ProfileStartup(Profile* profile, bool process_startup) { @@ -198,8 +199,8 @@ void ProfileHelper::ProfileStartup(Profile* profile, bool process_startup) { // Add observer so we can see when the first profile's session restore is // completed. After that, we won't need the default profile anymore. if (!IsSigninProfile(profile) && - UserManager::Get()->IsLoggedInAsRegularUser() && - !UserManager::Get()->IsLoggedInAsStub()) { + user_manager::UserManager::Get()->IsLoggedInAsRegularUser() && + !user_manager::UserManager::Get()->IsLoggedInAsStub()) { chromeos::OAuth2LoginManager* login_manager = chromeos::OAuth2LoginManagerFactory::GetInstance()->GetForProfile( profile); @@ -213,7 +214,7 @@ base::FilePath ProfileHelper::GetActiveUserProfileDir() { } void ProfileHelper::Initialize() { - UserManager::Get()->AddSessionStateObserver(this); + user_manager::UserManager::Get()->AddSessionStateObserver(this); } void ProfileHelper::ClearSigninProfile(const base::Closure& on_clear_callback) { @@ -249,7 +250,7 @@ Profile* ProfileHelper::GetProfileByUser(const user_manager::User* user) { // GetActiveUserProfile() or GetProfileByUserIdHash() returns a new instance // of ProfileImpl(), but actually its OffTheRecordProfile() should be used. - if (UserManager::Get()->IsLoggedInAsGuest()) + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) profile = profile->GetOffTheRecordProfile(); return profile; @@ -276,7 +277,7 @@ Profile* ProfileHelper::GetProfileByUserUnsafe(const user_manager::User* user) { // GetActiveUserProfile() or GetProfileByUserIdHash() returns a new instance // of ProfileImpl(), but actually its OffTheRecordProfile() should be used. - if (profile && UserManager::Get()->IsLoggedInAsGuest()) + if (profile && user_manager::UserManager::Get()->IsLoggedInAsGuest()) profile = profile->GetOffTheRecordProfile(); return profile; } @@ -286,7 +287,7 @@ user_manager::User* ProfileHelper::GetUserByProfile(Profile* profile) { if (enable_profile_to_user_testing || !user_list_for_testing_.empty()) { if (always_return_primary_user_for_testing) return const_cast<user_manager::User*>( - UserManager::Get()->GetPrimaryUser()); + user_manager::UserManager::Get()->GetPrimaryUser()); const std::string& user_name = profile->GetProfileName(); for (user_manager::UserList::const_iterator it = @@ -299,14 +300,14 @@ user_manager::User* ProfileHelper::GetUserByProfile(Profile* profile) { // In case of test setup we should always default to primary user. return const_cast<user_manager::User*>( - UserManager::Get()->GetPrimaryUser()); + user_manager::UserManager::Get()->GetPrimaryUser()); } DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); if (ProfileHelper::IsSigninProfile(profile)) return NULL; - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Special case for non-CrOS tests that do create several profiles // and don't really care about mapping to the real user. diff --git a/chrome/browser/chromeos/profiles/profile_helper.h b/chrome/browser/chromeos/profiles/profile_helper.h index 04afba4..3dd899e 100644 --- a/chrome/browser/chromeos/profiles/profile_helper.h +++ b/chrome/browser/chromeos/profiles/profile_helper.h @@ -13,7 +13,7 @@ #include "base/files/file_path.h" #include "chrome/browser/browsing_data/browsing_data_remover.h" #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" class Profile; class User; @@ -39,9 +39,10 @@ namespace chromeos { // 2. Get profile dir of an active user, used by ProfileManager: // GetActiveUserProfileDir() // 3. Get mapping from user_id_hash to Profile instance/profile path etc. -class ProfileHelper : public BrowsingDataRemover::Observer, - public OAuth2LoginManager::Observer, - public UserManager::UserSessionStateObserver { +class ProfileHelper + : public BrowsingDataRemover::Observer, + public OAuth2LoginManager::Observer, + public user_manager::UserManager::UserSessionStateObserver { public: ProfileHelper(); virtual ~ProfileHelper(); @@ -139,12 +140,12 @@ class ProfileHelper : public BrowsingDataRemover::Observer, // BrowsingDataRemover::Observer implementation: virtual void OnBrowsingDataRemoverDone() OVERRIDE; - // UserManager::Observer overrides. + // OAuth2LoginManager::Observer overrides. virtual void OnSessionRestoreStateChanged( Profile* user_profile, OAuth2LoginManager::SessionRestoreState state) OVERRIDE; - // UserManager::UserSessionStateObserver implementation: + // user_manager::UserManager::UserSessionStateObserver implementation: virtual void ActiveUserHashChanged(const std::string& hash) OVERRIDE; // Associates |user| with profile with the same user_id, diff --git a/chrome/browser/chromeos/profiles/profile_list_chromeos.cc b/chrome/browser/chromeos/profiles/profile_list_chromeos.cc index b49bcac..d8f7591 100644 --- a/chrome/browser/chromeos/profiles/profile_list_chromeos.cc +++ b/chrome/browser/chromeos/profiles/profile_list_chromeos.cc @@ -8,12 +8,12 @@ #include "ash/shell.h" #include "base/command_line.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile_avatar_icon_util.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/chrome_switches.h" #include "components/signin/core/common/profile_management_switches.h" +#include "components/user_manager/user_manager.h" // static ProfileList* ProfileList::Create(ProfileInfoInterface* profile_cache) { @@ -43,7 +43,8 @@ void ProfileListChromeOS::RebuildMenu() { ClearMenu(); // Filter for profiles associated with logged-in users. - user_manager::UserList users = UserManager::Get()->GetLoggedInUsers(); + user_manager::UserList users = + user_manager::UserManager::Get()->GetLoggedInUsers(); // Add corresponding profiles. for (user_manager::UserList::const_iterator it = users.begin(); diff --git a/chrome/browser/chromeos/profiles/profile_list_chromeos_unittest.cc b/chrome/browser/chromeos/profiles/profile_list_chromeos_unittest.cc index 6f47d2e..398aa3e 100644 --- a/chrome/browser/chromeos/profiles/profile_list_chromeos_unittest.cc +++ b/chrome/browser/chromeos/profiles/profile_list_chromeos_unittest.cc @@ -10,6 +10,7 @@ #include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/profiles/avatar_menu.h" @@ -69,7 +70,7 @@ class ProfileListChromeOSTest : public testing::Test { } FakeUserManager* GetFakeUserManager() { - return static_cast<FakeUserManager*>(UserManager::Get()); + return static_cast<FakeUserManager*>(user_manager::UserManager::Get()); } void AddProfile(base::string16 name, bool log_in) { diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc index 89d07f6..9134736 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl.cc +++ b/chrome/browser/chromeos/proxy_config_service_impl.cc @@ -12,7 +12,6 @@ #include "base/prefs/pref_service.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/net/proxy_config_handler.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" @@ -24,6 +23,7 @@ #include "chromeos/network/network_state_handler.h" #include "chromeos/network/onc/onc_utils.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" +#include "components/user_manager/user_manager.h" namespace chromeos { @@ -144,7 +144,7 @@ bool ProxyConfigServiceImpl::IgnoreProxy(const PrefService* profile_prefs, policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); const user_manager::User* logged_in_user = - UserManager::Get()->GetLoggedInUser(); + user_manager::UserManager::Get()->GetLoggedInUser(); if (connector->GetUserAffiliation(logged_in_user->email()) == policy::USER_AFFILIATION_MANAGED) { VLOG(1) << "Respecting proxy for network, as logged-in user belongs to " diff --git a/chrome/browser/chromeos/settings/device_settings_test_helper.h b/chrome/browser/chromeos/settings/device_settings_test_helper.h index 8ac6a00..fc66da9 100644 --- a/chrome/browser/chromeos/settings/device_settings_test_helper.h +++ b/chrome/browser/chromeos/settings/device_settings_test_helper.h @@ -16,7 +16,7 @@ #include "base/message_loop/message_loop.h" #include "base/strings/string_util.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/device_policy_builder.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" diff --git a/chrome/browser/chromeos/settings/session_manager_operation.cc b/chrome/browser/chromeos/settings/session_manager_operation.cc index 44aadfe..37b9626 100644 --- a/chrome/browser/chromeos/settings/session_manager_operation.cc +++ b/chrome/browser/chromeos/settings/session_manager_operation.cc @@ -11,12 +11,10 @@ #include "base/stl_util.h" #include "base/task_runner_util.h" #include "base/threading/sequenced_worker_pool.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" #include "chrome/browser/chromeos/settings/owner_key_util.h" #include "chrome/browser/net/nss_context.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" -#include "components/user_manager/user.h" #include "content/public/browser/browser_thread.h" #include "crypto/rsa_private_key.h" #include "crypto/signature_creator.h" diff --git a/chrome/browser/chromeos/settings/stub_cros_settings_provider.cc b/chrome/browser/chromeos/settings/stub_cros_settings_provider.cc index 0202da7..c11e3c3 100644 --- a/chrome/browser/chromeos/settings/stub_cros_settings_provider.cc +++ b/chrome/browser/chromeos/settings/stub_cros_settings_provider.cc @@ -6,7 +6,6 @@ #include "base/logging.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_provider.h" #include "chromeos/settings/cros_settings_names.h" diff --git a/chrome/browser/chromeos/sim_dialog_delegate.cc b/chrome/browser/chromeos/sim_dialog_delegate.cc index ebb819f..7e49665 100644 --- a/chrome/browser/chromeos/sim_dialog_delegate.cc +++ b/chrome/browser/chromeos/sim_dialog_delegate.cc @@ -5,7 +5,6 @@ #include "chrome/browser/chromeos/sim_dialog_delegate.h" #include "base/strings/stringprintf.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/url_constants.h" diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc index 07dcba04..4efcc07 100644 --- a/chrome/browser/chromeos/status/network_menu.cc +++ b/chrome/browser/chromeos/status/network_menu.cc @@ -15,7 +15,6 @@ #include "base/logging.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/mobile_config.h" #include "chrome/browser/chromeos/options/network_config_view.h" #include "chrome/browser/chromeos/sim_dialog_delegate.h" diff --git a/chrome/browser/chromeos/system/automatic_reboot_manager.cc b/chrome/browser/chromeos/system/automatic_reboot_manager.cc index b5370b7..6e96e41 100644 --- a/chrome/browser/chromeos/system/automatic_reboot_manager.cc +++ b/chrome/browser/chromeos/system/automatic_reboot_manager.cc @@ -33,12 +33,12 @@ #include "base/time/tick_clock.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/system/automatic_reboot_manager_observer.h" #include "chrome/common/pref_names.h" #include "chromeos/chromeos_paths.h" #include "chromeos/chromeos_switches.h" #include "chromeos/dbus/dbus_thread_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" @@ -171,7 +171,7 @@ AutomaticRebootManager::AutomaticRebootManager( // If no user is logged in, a reboot may be performed whenever the user is // idle. Start listening for user activity to determine whether the user is // idle or not. - if (!UserManager::Get()->IsUserLoggedIn()) { + if (!user_manager::UserManager::Get()->IsUserLoggedIn()) { if (ash::Shell::HasInstance()) ash::Shell::GetInstance()->user_activity_detector()->AddObserver(this); notification_registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_CHANGED, @@ -262,7 +262,7 @@ void AutomaticRebootManager::Observe( const content::NotificationSource& source, const content::NotificationDetails& details) { if (type == chrome::NOTIFICATION_APP_TERMINATING) { - if (UserManager::Get()->IsUserLoggedIn()) { + if (user_manager::UserManager::Get()->IsUserLoggedIn()) { // The browser is terminating during a session, either because the session // is ending or because the browser is being restarted. MaybeReboot(true); @@ -395,7 +395,7 @@ void AutomaticRebootManager::MaybeReboot(bool ignore_session) { // * A session is in progress and |ignore_session| is not set. if (!reboot_requested_ || (login_screen_idle_timer_ && login_screen_idle_timer_->IsRunning()) || - (!ignore_session && UserManager::Get()->IsUserLoggedIn())) { + (!ignore_session && user_manager::UserManager::Get()->IsUserLoggedIn())) { return; } @@ -404,8 +404,8 @@ void AutomaticRebootManager::MaybeReboot(bool ignore_session) { void AutomaticRebootManager::Reboot() { // If a non-kiosk-app session is in progress, do not reboot. - if (UserManager::Get()->IsUserLoggedIn() && - !UserManager::Get()->IsLoggedInAsKioskApp()) { + if (user_manager::UserManager::Get()->IsUserLoggedIn() && + !user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) { return; } diff --git a/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc b/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc index 70c431e..32310a2 100644 --- a/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc +++ b/chrome/browser/chromeos/system/automatic_reboot_manager_unittest.cc @@ -28,7 +28,7 @@ #include "base/values.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_browser_process.h" #include "chromeos/chromeos_paths.h" diff --git a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc index c84338b..b097f4f 100644 --- a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc +++ b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc @@ -20,7 +20,6 @@ #include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/login_utils.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/api/braille_display_private/mock_braille_controller.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -34,6 +33,7 @@ #include "components/policy/core/common/mock_configuration_policy_provider.h" #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_types.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_utils.h" #include "policy/policy_constants.h" #include "testing/gtest/include/gtest/gtest.h" @@ -271,9 +271,9 @@ class TrayAccessibilityTest IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "owner@invalid.domain", true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus()); } @@ -285,9 +285,9 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowTrayIcon) { // Confirms that the icon is invisible before login. EXPECT_FALSE(IsTrayIconVisible()); - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "owner@invalid.domain", true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); // Confirms that the icon is invisible just after login. EXPECT_FALSE(IsTrayIconVisible()); @@ -351,9 +351,9 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowTrayIcon) { // http://crbug.com/396342 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenu) { // Login - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "owner@invalid.domain", true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); SetShowAccessibilityOptionsInSystemTrayMenu(false); @@ -421,9 +421,9 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenu) { IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenuWithShowMenuOption) { // Login - UserManager::Get()->UserLoggedIn( + user_manager::UserManager::Get()->UserLoggedIn( "owner@invalid.domain", "owner@invalid.domain", true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); SetShowAccessibilityOptionsInSystemTrayMenu(true); diff --git a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc index d5327d6..fa3c395 100644 --- a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc +++ b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc @@ -12,11 +12,11 @@ #include "base/memory/weak_ptr.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/common/chrome_switches.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/debug_daemon_client.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" const char kNotAvailable[] = "<not available>"; @@ -136,9 +136,8 @@ void DebugDaemonLogSource::OnGetUserLogFiles( SystemLogsResponse* response = new SystemLogsResponse; std::vector<Profile*> last_used = ProfileManager::GetLastOpenedProfiles(); - if (last_used.empty() && - chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsKioskApp()) { + if (last_used.empty() && user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) { // Use the kiosk app profile explicitly because kiosk session does not // open any browsers thus ProfileManager::GetLastOpenedProfiles returns // an empty |last_used|. diff --git a/chrome/browser/chromeos/ui/choose_mobile_network_dialog.cc b/chrome/browser/chromeos/ui/choose_mobile_network_dialog.cc index 11ce289..ad5acc3 100644 --- a/chrome/browser/chromeos/ui/choose_mobile_network_dialog.cc +++ b/chrome/browser/chromeos/ui/choose_mobile_network_dialog.cc @@ -4,7 +4,6 @@ #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/url_constants.h" diff --git a/chrome/browser/extensions/activity_log/activity_database_unittest.cc b/chrome/browser/extensions/activity_log/activity_database_unittest.cc index 7b1e135..1ad7121 100644 --- a/chrome/browser/extensions/activity_log/activity_database_unittest.cc +++ b/chrome/browser/extensions/activity_log/activity_database_unittest.cc @@ -28,7 +28,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chromeos/chromeos_switches.h" diff --git a/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc index 4f516bb..ff831014 100644 --- a/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc +++ b/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc @@ -17,7 +17,7 @@ #include "extensions/common/extension_builder.h" #if defined OS_CHROMEOS -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/activity_log/activity_log_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_unittest.cc index b187343..0a22195 100644 --- a/chrome/browser/extensions/activity_log/activity_log_unittest.cc +++ b/chrome/browser/extensions/activity_log/activity_log_unittest.cc @@ -27,7 +27,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc index 2823812..371b913 100644 --- a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc +++ b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc index 493469c..188a52a 100644 --- a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc +++ b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc @@ -24,7 +24,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc index e2a12d2..da360aa 100644 --- a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc +++ b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc @@ -23,10 +23,10 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/lock/screen_locker.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager_client.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif namespace extensions { @@ -96,7 +96,8 @@ bool AutotestPrivateLoginStatusFunction::RunSync() { base::DictionaryValue* result(new base::DictionaryValue); #if defined(OS_CHROMEOS) - const chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + const user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); const bool is_screen_locked = !!chromeos::ScreenLocker::default_screen_locker(); diff --git a/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc b/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc index ae2300c..41e9dcb 100644 --- a/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc +++ b/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc @@ -13,7 +13,6 @@ #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" #include "chrome/browser/chromeos/login/lock/screen_locker.h" #include "chrome/browser/chromeos/login/lock/screen_locker_tester.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/api/braille_display_private/braille_controller_brlapi.h" #include "chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h" @@ -23,6 +22,7 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/test/base/testing_profile.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" @@ -30,7 +30,7 @@ using chromeos::ProfileHelper; using chromeos::ScreenLocker; -using chromeos::UserManager; +using user_manager::UserManager; using chromeos::test::ScreenLockerTester; using content::BrowserThread; @@ -327,8 +327,9 @@ IN_PROC_BROWSER_TEST_F(BrailleDisplayPrivateAPIUserTest, KeyEventOnLockScreen) { scoped_ptr<ScreenLockerTester> tester(ScreenLocker::GetTester()); // Log in. - UserManager::Get()->UserLoggedIn(kTestUserName, kTestUserName, true); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->UserLoggedIn( + kTestUserName, kTestUserName, true); + user_manager::UserManager::Get()->SessionStarted(); Profile* profile = ProfileManager::GetActiveUserProfile(); ASSERT_FALSE( ProfileHelper::GetSigninProfile()->IsSameProfile(profile)) diff --git a/chrome/browser/extensions/api/feedback_private/feedback_service_chromeos.cc b/chrome/browser/extensions/api/feedback_private/feedback_service_chromeos.cc index 84bec47..94cd0e3 100644 --- a/chrome/browser/extensions/api/feedback_private/feedback_service_chromeos.cc +++ b/chrome/browser/extensions/api/feedback_private/feedback_service_chromeos.cc @@ -8,8 +8,8 @@ #include "base/memory/weak_ptr.h" #include "base/metrics/statistics_recorder.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" namespace extensions { @@ -41,7 +41,7 @@ FeedbackServiceImpl::~FeedbackServiceImpl() { } std::string FeedbackServiceImpl::GetUserEmail() { - const chromeos::UserManager* manager = chromeos::UserManager::Get(); + const user_manager::UserManager* manager = user_manager::UserManager::Get(); const user_manager::User* user = manager ? manager->GetActiveUser() : NULL; return user ? user->display_email() : std::string(); } diff --git a/chrome/browser/extensions/api/identity/identity_api.cc b/chrome/browser/extensions/api/identity/identity_api.cc index 26c54c1..58c41aa 100644 --- a/chrome/browser/extensions/api/identity/identity_api.cc +++ b/chrome/browser/extensions/api/identity/identity_api.cc @@ -40,10 +40,10 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/session/user_session_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" +#include "components/user_manager/user_manager.h" #include "google_apis/gaia/gaia_constants.h" #endif @@ -367,7 +367,7 @@ bool IdentityGetAuthTokenFunction::RunAsync() { #if defined(OS_CHROMEOS) policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); - if (chromeos::UserManager::Get()->IsLoggedInAsKioskApp() && + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp() && connector->IsEnterpriseManaged()) { StartMintTokenFlow(IdentityMintRequestQueue::MINT_TYPE_NONINTERACTIVE); return true; @@ -491,7 +491,7 @@ void IdentityGetAuthTokenFunction::StartMintToken( case IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND: #if defined(OS_CHROMEOS) // Always force minting token for ChromeOS kiosk app. - if (chromeos::UserManager::Get()->IsLoggedInAsKioskApp()) { + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) { gaia_mint_token_mode_ = OAuth2MintTokenFlow::MODE_MINT_TOKEN_FORCE; policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part() diff --git a/chrome/browser/extensions/api/image_writer_private/operation_manager_unittest.cc b/chrome/browser/extensions/api/image_writer_private/operation_manager_unittest.cc index dbda8b0..3bd5200 100644 --- a/chrome/browser/extensions/api/image_writer_private/operation_manager_unittest.cc +++ b/chrome/browser/extensions/api/image_writer_private/operation_manager_unittest.cc @@ -3,7 +3,6 @@ // found in the LICENSE file. #include "base/command_line.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/api/image_writer_private/error_messages.h" #include "chrome/browser/extensions/api/image_writer_private/operation_manager.h" #include "chrome/browser/extensions/api/image_writer_private/test_utils.h" @@ -14,7 +13,7 @@ #include "extensions/browser/event_router.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/api/input/input.cc b/chrome/browser/extensions/api/input/input.cc index a3939ad..b9f4b1e 100644 --- a/chrome/browser/extensions/api/input/input.cc +++ b/chrome/browser/extensions/api/input/input.cc @@ -21,7 +21,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/lock/screen_locker.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif // OS_CHROMEOS #if defined(USE_ASH) @@ -177,10 +177,10 @@ bool VirtualKeyboardPrivateOpenSettingsFunction::RunSync() { #if defined(OS_CHROMEOS) // Do not try to open language options page if user is not logged in or // locked. - if (!chromeos::UserManager::Get()->IsUserLoggedIn() || + if (!user_manager::UserManager::Get()->IsUserLoggedIn() || chromeos::UserAddingScreen::Get()->IsRunning() || (chromeos::ScreenLocker::default_screen_locker() && - chromeos::ScreenLocker::default_screen_locker()->locked())) + chromeos::ScreenLocker::default_screen_locker()->locked())) return true; #endif // OS_CHROMEOS diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api.cc b/chrome/browser/extensions/api/input_ime/input_ime_api.cc index a7b0fdf..1f75f9f 100644 --- a/chrome/browser/extensions/api/input_ime/input_ime_api.cc +++ b/chrome/browser/extensions/api/input_ime/input_ime_api.cc @@ -9,7 +9,6 @@ #include "chrome/browser/chromeos/input_method/input_method_engine.h" #include "chrome/browser/chromeos/login/lock/screen_locker.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile_manager.h" diff --git a/chrome/browser/extensions/api/networking_private/networking_private_apitest.cc b/chrome/browser/extensions/api/networking_private/networking_private_apitest.cc index 33f1c9c..19f437e 100644 --- a/chrome/browser/extensions/api/networking_private/networking_private_apitest.cc +++ b/chrome/browser/extensions/api/networking_private/networking_private_apitest.cc @@ -7,10 +7,10 @@ #include "base/command_line.h" #include "base/macros.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/extensions/extension_apitest.h" #include "chrome/test/base/ui_test_utils.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "extensions/common/switches.h" #include "testing/gmock/include/gmock/gmock.h" @@ -188,7 +188,7 @@ class ExtensionNetworkingPrivateApiTest } void InitializeSanitizedUsername() { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); user_manager::User* user = user_manager->GetActiveUser(); CHECK(user); std::string userhash; diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc index 97098b8..767b444 100644 --- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc +++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc @@ -22,9 +22,9 @@ #include "extensions/common/api/runtime.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/power_manager_client.h" +#include "components/user_manager/user_manager.h" #endif using extensions::Extension; @@ -226,7 +226,7 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { bool ChromeRuntimeAPIDelegate::RestartDevice(std::string* error_message) { #if defined(OS_CHROMEOS) - if (chromeos::UserManager::Get()->IsLoggedInAsKioskApp()) { + if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) { chromeos::DBusThreadManager::Get() ->GetPowerManagerClient() ->RequestRestart(); diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index ec60802..ac35c2b6 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc @@ -17,6 +17,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/extensions/extension_constants.h" +#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/plugin_service.h" #include "extensions/common/extension.h" @@ -40,7 +41,6 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/chromeos_switches.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/storage_partition.h" diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc index 2228271..9823d4e 100644 --- a/chrome/browser/extensions/crx_installer.cc +++ b/chrome/browser/extensions/crx_installer.cc @@ -63,7 +63,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif using base::UserMetricsAction; @@ -574,7 +574,7 @@ void CrxInstaller::ConfirmInstall() { if (KioskModeInfo::IsKioskOnly(install_checker_.extension())) { bool in_kiosk_mode = false; #if defined(OS_CHROMEOS) - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); in_kiosk_mode = user_manager && user_manager->IsLoggedInAsKioskApp(); #endif if (!in_kiosk_mode) { diff --git a/chrome/browser/extensions/crx_installer_browsertest.cc b/chrome/browser/extensions/crx_installer_browsertest.cc index aeb7313..1ae57dd 100644 --- a/chrome/browser/extensions/crx_installer_browsertest.cc +++ b/chrome/browser/extensions/crx_installer_browsertest.cc @@ -37,7 +37,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" #include "chromeos/chromeos_switches.h" #endif diff --git a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc index 748eec2..f163300 100644 --- a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc +++ b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc @@ -26,7 +26,7 @@ #include "ui/gfx/skia_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/extension_assets_manager_chromeos.cc b/chrome/browser/extensions/extension_assets_manager_chromeos.cc index e7e3d92..e74842b 100644 --- a/chrome/browser/extensions/extension_assets_manager_chromeos.cc +++ b/chrome/browser/extensions/extension_assets_manager_chromeos.cc @@ -16,13 +16,13 @@ #include "base/sequenced_task_runner.h" #include "base/sys_info.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/manifest_url_handler.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_system.h" @@ -281,7 +281,7 @@ void ExtensionAssetsManagerChromeOS::CheckSharedExtension( DCHECK_CURRENTLY_ON(BrowserThread::UI); const std::string& user_id = profile->GetProfileName(); - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (!user_manager) { NOTREACHED(); return; @@ -497,7 +497,7 @@ bool ExtensionAssetsManagerChromeOS::CleanUpExtension( const std::string& id, base::DictionaryValue* extension_info, std::multimap<std::string, base::FilePath>* live_extension_paths) { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (!user_manager) { NOTREACHED(); return false; diff --git a/chrome/browser/extensions/extension_garbage_collector_chromeos.cc b/chrome/browser/extensions/extension_garbage_collector_chromeos.cc index d4a2d92..e737cc0 100644 --- a/chrome/browser/extensions/extension_garbage_collector_chromeos.cc +++ b/chrome/browser/extensions/extension_garbage_collector_chromeos.cc @@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" +#include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" #include "chrome/browser/extensions/extension_service.h" +#include "components/user_manager/user_manager.h" #include "extensions/browser/extension_system.h" namespace extensions { @@ -49,7 +49,7 @@ void ExtensionGarbageCollectorChromeOS::GarbageCollectExtensions() { } bool ExtensionGarbageCollectorChromeOS::CanGarbageCollectSharedExtensions() { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (!user_manager) { NOTREACHED(); return false; diff --git a/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc b/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc index fea341eb..ea6451e 100644 --- a/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc +++ b/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc @@ -9,7 +9,7 @@ #include "base/threading/sequenced_worker_pool.h" #include "base/values.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" #include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" @@ -20,6 +20,7 @@ #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/plugin_service.h" #include "extensions/browser/extension_prefs.h" @@ -140,7 +141,7 @@ class ExtensionGarbageCollectorChromeOSUnitTest chromeos::FakeUserManager* GetFakeUserManager() { return static_cast<chromeos::FakeUserManager*>( - chromeos::UserManager::Get()); + user_manager::UserManager::Get()); } private: diff --git a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc index ffef228..21027f3 100644 --- a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc +++ b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc @@ -53,7 +53,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/extension_service_test_base.h b/chrome/browser/extensions/extension_service_test_base.h index dea4f4f..cf0785d 100644 --- a/chrome/browser/extensions/extension_service_test_base.h +++ b/chrome/browser/extensions/extension_service_test_base.h @@ -14,7 +14,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index 4c475ff..20b589f 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc @@ -129,7 +129,7 @@ #include "webkit/common/database/database_identifier.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc index 9804b81..bb4617a 100644 --- a/chrome/browser/extensions/extension_system_impl.cc +++ b/chrome/browser/extensions/extension_system_impl.cc @@ -71,12 +71,12 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/app_mode/app_mode_utils.h" #include "chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/extensions/extension_assets_manager_chromeos.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/login_state.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif using content::BrowserThread; @@ -126,7 +126,7 @@ void ExtensionSystemImpl::Shared::InitPrefs() { #if defined(OS_CHROMEOS) const user_manager::User* user = - chromeos::UserManager::Get()->GetActiveUser(); + user_manager::UserManager::Get()->GetActiveUser(); policy::DeviceLocalAccount::Type device_local_account_type; if (user && policy::IsDeviceLocalAccountUser(user->email(), &device_local_account_type)) { diff --git a/chrome/browser/extensions/extension_ui_unittest.cc b/chrome/browser/extensions/extension_ui_unittest.cc index 5ec8f7b..09f66c4 100644 --- a/chrome/browser/extensions/extension_ui_unittest.cc +++ b/chrome/browser/extensions/extension_ui_unittest.cc @@ -19,7 +19,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/extension_web_ui_unittest.cc b/chrome/browser/extensions/extension_web_ui_unittest.cc index 7d69656..fb3bee9 100644 --- a/chrome/browser/extensions/extension_web_ui_unittest.cc +++ b/chrome/browser/extensions/extension_web_ui_unittest.cc @@ -16,7 +16,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc index 79181b8..271d0a4 100644 --- a/chrome/browser/extensions/external_provider_impl.cc +++ b/chrome/browser/extensions/external_provider_impl.cc @@ -37,13 +37,13 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" #include "chrome/browser/chromeos/customization_document.h" #include "chrome/browser/chromeos/extensions/device_local_account_external_policy_loader.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/app_pack_updater.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #else #include "chrome/browser/extensions/default_apps.h" #endif @@ -437,7 +437,7 @@ void ExternalProviderImpl::CreateExternalProviders( bool is_chromeos_demo_session = false; int bundled_extension_creation_flags = Extension::NO_FLAGS; #if defined(OS_CHROMEOS) - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); is_chromeos_demo_session = user_manager && user_manager->IsLoggedInAsDemoUser() && connector->GetDeviceMode() == policy::DEVICE_MODE_RETAIL_KIOSK; diff --git a/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc b/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc index c88ecce..bc90c09 100644 --- a/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc +++ b/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc @@ -12,6 +12,7 @@ #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" #include "chrome/browser/chromeos/customization_document.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service_test_base.h" #include "chrome/common/chrome_paths.h" diff --git a/chrome/browser/extensions/external_provider_impl_unittest.cc b/chrome/browser/extensions/external_provider_impl_unittest.cc index f74949c..f9991cb 100644 --- a/chrome/browser/extensions/external_provider_impl_unittest.cc +++ b/chrome/browser/extensions/external_provider_impl_unittest.cc @@ -32,6 +32,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/customization_document.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chromeos/system/mock_statistics_provider.h" #include "chromeos/system/statistics_provider.h" #endif diff --git a/chrome/browser/extensions/page_action_controller_unittest.cc b/chrome/browser/extensions/page_action_controller_unittest.cc index 5d96b18..33e0c84 100644 --- a/chrome/browser/extensions/page_action_controller_unittest.cc +++ b/chrome/browser/extensions/page_action_controller_unittest.cc @@ -21,7 +21,7 @@ #include "extensions/common/value_builder.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/test_extension_environment.h b/chrome/browser/extensions/test_extension_environment.h index a8afc858..57136588 100644 --- a/chrome/browser/extensions/test_extension_environment.h +++ b/chrome/browser/extensions/test_extension_environment.h @@ -10,7 +10,7 @@ #include "content/public/test/test_browser_thread_bundle.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc index 874dca1..b6ebb83 100644 --- a/chrome/browser/extensions/updater/extension_updater_unittest.cc +++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc @@ -67,7 +67,7 @@ #include "url/third_party/mozilla/url_parse.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/extensions/zipfile_installer_unittest.cc b/chrome/browser/extensions/zipfile_installer_unittest.cc index 63ea3c7..f26d836 100644 --- a/chrome/browser/extensions/zipfile_installer_unittest.cc +++ b/chrome/browser/extensions/zipfile_installer_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/invalidation/profile_invalidation_provider_factory.cc b/chrome/browser/invalidation/profile_invalidation_provider_factory.cc index f54a63b..3c1bc71 100644 --- a/chrome/browser/invalidation/profile_invalidation_provider_factory.cc +++ b/chrome/browser/invalidation/profile_invalidation_provider_factory.cc @@ -36,11 +36,11 @@ #if defined(OS_CHROMEOS) #include "base/files/file_path.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/device_identity_provider.h" #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" +#include "components/user_manager/user_manager.h" #endif namespace invalidation { @@ -53,9 +53,9 @@ ProfileInvalidationProvider* ProfileInvalidationProviderFactory::GetForProfile( // when this method is called during the creation of the sign-in profile // itself. Using ProfileHelper::GetSigninProfileDir() is safe because it does // not try to access the sign-in profile. - if (profile->GetPath() == chromeos::ProfileHelper::GetSigninProfileDir()|| - (chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsGuest())) { + if (profile->GetPath() == chromeos::ProfileHelper::GetSigninProfileDir() || + (user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsGuest())) { // The Chrome OS login and Chrome OS guest profiles do not have GAIA // credentials and do not support invalidation. return NULL; @@ -110,8 +110,8 @@ KeyedService* ProfileInvalidationProviderFactory::BuildServiceInstanceFor( #if defined(OS_CHROMEOS) policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); - if (chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsKioskApp() && + if (user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsKioskApp() && connector->IsEnterpriseManaged()) { identity_provider.reset(new chromeos::DeviceIdentityProvider( chromeos::DeviceOAuth2TokenServiceFactory::Get())); diff --git a/chrome/browser/invalidation/profile_invalidation_provider_factory_browsertest.cc b/chrome/browser/invalidation/profile_invalidation_provider_factory_browsertest.cc index d4e7003..b30ca78 100644 --- a/chrome/browser/invalidation/profile_invalidation_provider_factory_browsertest.cc +++ b/chrome/browser/invalidation/profile_invalidation_provider_factory_browsertest.cc @@ -14,6 +14,7 @@ #include "chromeos/login/user_names.h" #include "components/invalidation/invalidation_service.h" #include "components/invalidation/profile_invalidation_provider.h" +#include "components/user_manager/user_manager.h" #include "testing/gtest/include/gtest/gtest.h" namespace invalidation { @@ -114,7 +115,7 @@ void ProfileInvalidationProviderFactoryGuestBrowserTest::SetUpCommandLine( // the guest profile while a guest session is in progress. IN_PROC_BROWSER_TEST_F(ProfileInvalidationProviderFactoryGuestBrowserTest, NoInvalidationService) { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); EXPECT_TRUE(user_manager->IsLoggedInAsGuest()); Profile* guest_profile = chromeos::ProfileHelper::Get() diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc index e954d4a..664a507 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -104,7 +104,6 @@ #endif // defined(SPDY_PROXY_AUTH_ORIGIN) #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/net/cert_verify_proc_chromeos.h" #include "chromeos/network/host_resolver_impl_chromeos.h" #endif diff --git a/chrome/browser/lifetime/application_lifetime.cc b/chrome/browser/lifetime/application_lifetime.cc index 4c10890..f02bd06 100644 --- a/chrome/browser/lifetime/application_lifetime.cc +++ b/chrome/browser/lifetime/application_lifetime.cc @@ -41,7 +41,6 @@ #if defined(OS_CHROMEOS) #include "base/sys_info.h" #include "chrome/browser/chromeos/boot_times_loader.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager_client.h" #include "chromeos/dbus/update_engine_client.h" diff --git a/chrome/browser/media/media_stream_devices_controller.cc b/chrome/browser/media/media_stream_devices_controller.cc index 431af98..dd9ca2c 100644 --- a/chrome/browser/media/media_stream_devices_controller.cc +++ b/chrome/browser/media/media_stream_devices_controller.cc @@ -31,7 +31,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif using content::BrowserThread; @@ -86,7 +86,8 @@ bool IsInKioskMode() { return true; #if defined(OS_CHROMEOS) - const chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + const user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); return user_manager && user_manager->IsLoggedInAsKioskApp(); #else return false; diff --git a/chrome/browser/media_galleries/gallery_watch_manager_unittest.cc b/chrome/browser/media_galleries/gallery_watch_manager_unittest.cc index fe3b9f2..9599b3a 100644 --- a/chrome/browser/media_galleries/gallery_watch_manager_unittest.cc +++ b/chrome/browser/media_galleries/gallery_watch_manager_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/media_galleries/media_file_system_registry_unittest.cc b/chrome/browser/media_galleries/media_file_system_registry_unittest.cc index c80efdc..a43723f 100644 --- a/chrome/browser/media_galleries/media_file_system_registry_unittest.cc +++ b/chrome/browser/media_galleries/media_file_system_registry_unittest.cc @@ -49,7 +49,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc b/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc index ba975b5..7246aee 100644 --- a/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc +++ b/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc @@ -22,7 +22,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc b/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc index 1a1f8c9..e3a4e8f 100644 --- a/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc +++ b/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc @@ -37,7 +37,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/media_galleries/media_galleries_scan_result_controller_unittest.cc b/chrome/browser/media_galleries/media_galleries_scan_result_controller_unittest.cc index f345c3b..026715d 100644 --- a/chrome/browser/media_galleries/media_galleries_scan_result_controller_unittest.cc +++ b/chrome/browser/media_galleries/media_galleries_scan_result_controller_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/media_galleries/media_scan_manager_unittest.cc b/chrome/browser/media_galleries/media_scan_manager_unittest.cc index 9964aff..fa10586 100644 --- a/chrome/browser/media_galleries/media_scan_manager_unittest.cc +++ b/chrome/browser/media_galleries/media_scan_manager_unittest.cc @@ -27,7 +27,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/metrics/chromeos_metrics_provider.cc b/chrome/browser/metrics/chromeos_metrics_provider.cc index ef732c0..eb90cfe 100644 --- a/chrome/browser/metrics/chromeos_metrics_provider.cc +++ b/chrome/browser/metrics/chromeos_metrics_provider.cc @@ -10,11 +10,11 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/common/pref_names.h" #include "chromeos/system/statistics_provider.h" #include "components/metrics/metrics_service.h" #include "components/metrics/proto/chrome_user_metrics_extension.pb.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "device/bluetooth/bluetooth_adapter.h" #include "device/bluetooth/bluetooth_adapter_factory.h" @@ -128,10 +128,10 @@ void ChromeOSMetricsProvider::LogCrash(const std::string& crash_type) { void ChromeOSMetricsProvider::OnDidCreateMetricsLog() { registered_user_count_at_log_initialization_ = false; - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { registered_user_count_at_log_initialization_ = true; user_count_at_log_initialization_ = - chromeos::UserManager::Get()->GetLoggedInUsers().size(); + user_manager::UserManager::Get()->GetLoggedInUsers().size(); } } @@ -269,8 +269,9 @@ void ChromeOSMetricsProvider::WriteBluetoothProto( void ChromeOSMetricsProvider::UpdateMultiProfileUserCount( metrics::SystemProfileProto* system_profile_proto) { - if (chromeos::UserManager::IsInitialized()) { - size_t user_count = chromeos::UserManager::Get()->GetLoggedInUsers().size(); + if (user_manager::UserManager::IsInitialized()) { + size_t user_count = + user_manager::UserManager::Get()->GetLoggedInUsers().size(); // We invalidate the user count if it changed while the log was open. if (registered_user_count_at_log_initialization_ && diff --git a/chrome/browser/metrics/chromeos_metrics_provider_unittest.cc b/chrome/browser/metrics/chromeos_metrics_provider_unittest.cc index 21f5e16..a9ae53ef 100644 --- a/chrome/browser/metrics/chromeos_metrics_provider_unittest.cc +++ b/chrome/browser/metrics/chromeos_metrics_provider_unittest.cc @@ -8,7 +8,7 @@ #include "base/basictypes.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/metrics/chromeos_metrics_provider.h" #include "chromeos/dbus/fake_bluetooth_adapter_client.h" #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h" @@ -21,6 +21,7 @@ #include "chromeos/dbus/power_manager_client.h" #include "chromeos/login/login_state.h" #include "components/metrics/proto/system_profile.pb.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" diff --git a/chrome/browser/net/nss_context_chromeos_browsertest.cc b/chrome/browser/net/nss_context_chromeos_browsertest.cc index d77c64f..c1aec35 100644 --- a/chrome/browser/net/nss_context_chromeos_browsertest.cc +++ b/chrome/browser/net/nss_context_chromeos_browsertest.cc @@ -9,9 +9,9 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "net/cert/nss_cert_database.h" @@ -131,7 +131,7 @@ IN_PROC_BROWSER_TEST_F(NSSContextChromeOSBrowserTest, PRE_TwoUsers) { } IN_PROC_BROWSER_TEST_F(NSSContextChromeOSBrowserTest, TwoUsers) { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Log in first user and get their DB. LoginUser(kTestUser1); diff --git a/chrome/browser/notifications/message_center_settings_controller.cc b/chrome/browser/notifications/message_center_settings_controller.cc index a163942..f0bc5fb 100644 --- a/chrome/browser/notifications/message_center_settings_controller.cc +++ b/chrome/browser/notifications/message_center_settings_controller.cc @@ -141,16 +141,16 @@ MessageCenterSettingsController::MessageCenterSettingsController( #if defined(OS_CHROMEOS) // UserManager may not exist in some tests. - if (chromeos::UserManager::IsInitialized()) - chromeos::UserManager::Get()->AddSessionStateObserver(this); + if (user_manager::UserManager::IsInitialized()) + user_manager::UserManager::Get()->AddSessionStateObserver(this); #endif } MessageCenterSettingsController::~MessageCenterSettingsController() { #if defined(OS_CHROMEOS) // UserManager may not exist in some tests. - if (chromeos::UserManager::IsInitialized()) - chromeos::UserManager::Get()->RemoveSessionStateObserver(this); + if (user_manager::UserManager::IsInitialized()) + user_manager::UserManager::Get()->RemoveSessionStateObserver(this); #endif } @@ -446,7 +446,7 @@ void MessageCenterSettingsController::CreateNotifierGroupForGuestLogin() { if (!notifier_groups_.empty()) return; - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // |notifier_groups_| can be empty in login screen too. if (!user_manager->IsLoggedInAsGuest()) return; @@ -488,8 +488,9 @@ void MessageCenterSettingsController::RebuildNotifierGroups() { #if defined(OS_CHROMEOS) // Allows the active user only. // UserManager may not exist in some tests. - if (chromeos::UserManager::IsInitialized()) { - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + if (user_manager::UserManager::IsInitialized()) { + user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); if (chromeos::ProfileHelper::Get()->GetUserByProfile(group->profile()) != user_manager->GetActiveUser()) { continue; @@ -508,8 +509,8 @@ void MessageCenterSettingsController::RebuildNotifierGroups() { #if defined(OS_CHROMEOS) // ChromeOS guest login cannot get the profile from the for-loop above, so // get the group here. - if (notifier_groups_.empty() && chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsGuest()) { + if (notifier_groups_.empty() && user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsGuest()) { // Do not invoke CreateNotifierGroupForGuestLogin() directly. In some tests, // this method may be called before the primary profile is created, which // means ProfileHelper::Get()->GetProfileByUser() will create a new primary diff --git a/chrome/browser/notifications/message_center_settings_controller.h b/chrome/browser/notifications/message_center_settings_controller.h index 18a7382..a4abb49 100644 --- a/chrome/browser/notifications/message_center_settings_controller.h +++ b/chrome/browser/notifications/message_center_settings_controller.h @@ -23,7 +23,7 @@ #include "ui/message_center/notifier_settings.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif class Profile; @@ -47,7 +47,7 @@ class MessageCenterSettingsController : public message_center::NotifierSettingsProvider, public content::NotificationObserver, #if defined(OS_CHROMEOS) - public chromeos::UserManager::UserSessionStateObserver, + public user_manager::UserManager::UserSessionStateObserver, #endif public extensions::AppIconLoader::Delegate { public: @@ -79,7 +79,7 @@ class MessageCenterSettingsController const std::string* notification_id) OVERRIDE; #if defined(OS_CHROMEOS) - // Overridden from chromeos::UserManager::UserSessionStateObserver. + // Overridden from user_manager::UserManager::UserSessionStateObserver. virtual void ActiveUserChanged( const user_manager::User* active_user) OVERRIDE; #endif diff --git a/chrome/browser/notifications/message_center_settings_controller_unittest.cc b/chrome/browser/notifications/message_center_settings_controller_unittest.cc index 9046e58..750f29f 100644 --- a/chrome/browser/notifications/message_center_settings_controller_unittest.cc +++ b/chrome/browser/notifications/message_center_settings_controller_unittest.cc @@ -18,6 +18,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #endif class MessageCenterSettingsControllerTest : public testing::Test { @@ -96,7 +97,7 @@ class MessageCenterSettingsControllerChromeOSTest private: chromeos::FakeUserManager* GetFakeUserManager() { return static_cast<chromeos::FakeUserManager*>( - chromeos::UserManager::Get()); + user_manager::UserManager::Get()); } scoped_ptr<chromeos::ScopedUserManagerEnabler> user_manager_enabler_; diff --git a/chrome/browser/performance_monitor/performance_monitor_browsertest.cc b/chrome/browser/performance_monitor/performance_monitor_browsertest.cc index ee0d5f2..81519c9f 100644 --- a/chrome/browser/performance_monitor/performance_monitor_browsertest.cc +++ b/chrome/browser/performance_monitor/performance_monitor_browsertest.cc @@ -45,9 +45,9 @@ #include "extensions/common/extension.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #endif #if defined(OS_MACOSX) @@ -359,9 +359,8 @@ class PerformanceMonitorUncleanExitBrowserTest virtual void AddSecondUserAccount() { // Add second user account for multi-profile test. if (GetParam()) { - chromeos::UserManager::Get()->UserLoggedIn(kSecondProfileAccount, - kSecondProfileHash, - false); + user_manager::UserManager::Get()->UserLoggedIn( + kSecondProfileAccount, kSecondProfileHash, false); } } #endif diff --git a/chrome/browser/policy/cloud/cloud_policy_browsertest.cc b/chrome/browser/policy/cloud/cloud_policy_browsertest.cc index 517a560..238fdd1 100644 --- a/chrome/browser/policy/cloud/cloud_policy_browsertest.cc +++ b/chrome/browser/policy/cloud/cloud_policy_browsertest.cc @@ -48,7 +48,6 @@ #include "url/gurl.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" #include "chromeos/chromeos_paths.h" diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index 6e26e3b..2321a7a 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc @@ -38,10 +38,10 @@ #if defined(OS_CHROMEOS) #include "ash/magnifier/magnifier_constants.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h" #include "chromeos/dbus/power_policy_controller.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif #if !defined(OS_ANDROID) && !defined(OS_IOS) @@ -535,9 +535,9 @@ void GetDeprecatedFeaturesMap( void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) { #if defined(OS_CHROMEOS) - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { const user_manager::User* user = - chromeos::UserManager::Get()->GetActiveUser(); + user_manager::UserManager::Get()->GetActiveUser(); if (user) parameters->user_id_hash = user->username_hash(); } diff --git a/chrome/browser/policy/profile_policy_connector.cc b/chrome/browser/policy/profile_policy_connector.cc index 85694c2..cd93a32 100644 --- a/chrome/browser/policy/profile_policy_connector.cc +++ b/chrome/browser/policy/profile_policy_connector.cc @@ -20,12 +20,12 @@ #include "google_apis/gaia/gaia_auth_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" #include "chrome/browser/chromeos/policy/login_profile_policy_provider.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif namespace policy { @@ -106,7 +106,8 @@ void ProfilePolicyConnector::Init( new LoginProfilePolicyProvider(connector->GetPolicyService())); } else { // |user| should never be NULL except for the signin profile. - is_primary_user_ = user == chromeos::UserManager::Get()->GetPrimaryUser(); + is_primary_user_ = + user == user_manager::UserManager::Get()->GetPrimaryUser(); special_user_policy_provider_ = DeviceLocalAccountPolicyProvider::Create( user->email(), connector->GetDeviceLocalAccountPolicyService()); diff --git a/chrome/browser/policy/schema_registry_service_factory.cc b/chrome/browser/policy/schema_registry_service_factory.cc index 94dbbc8..a2997ab 100644 --- a/chrome/browser/policy/schema_registry_service_factory.cc +++ b/chrome/browser/policy/schema_registry_service_factory.cc @@ -14,12 +14,12 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part_chromeos.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif namespace policy { @@ -33,7 +33,7 @@ DeviceLocalAccountPolicyBroker* GetBroker(content::BrowserContext* context) { if (chromeos::ProfileHelper::IsSigninProfile(profile)) return NULL; - if (!chromeos::UserManager::IsInitialized()) { + if (!user_manager::UserManager::IsInitialized()) { // Bail out in unit tests that don't have a UserManager. return NULL; } diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index 525dac2..44ff8a8 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -154,8 +154,8 @@ #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/net/proxy_config_handler.h" #include "chrome/browser/chromeos/policy/auto_enrollment_client.h" @@ -303,6 +303,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { ChromeOSMetricsProvider::RegisterPrefs(registry); chromeos::AudioDevicesPrefHandlerImpl::RegisterPrefs(registry); chromeos::ChargerReplacementHandler::RegisterPrefs(registry); + chromeos::ChromeUserManagerImpl::RegisterPrefs(registry); chromeos::DataPromoNotification::RegisterPrefs(registry); chromeos::DeviceOAuth2TokenService::RegisterPrefs(registry); chromeos::device_settings_cache::RegisterPrefs(registry); @@ -321,7 +322,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) { chromeos::StartupUtils::RegisterPrefs(registry); chromeos::system::AutomaticRebootManager::RegisterPrefs(registry); chromeos::UserImageManager::RegisterPrefs(registry); - chromeos::UserManager::RegisterPrefs(registry); chromeos::UserSessionManager::RegisterPrefs(registry); chromeos::WallpaperManager::RegisterPrefs(registry); chromeos::echo_offer::RegisterPrefs(registry); diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc index 61bb7a6..209ba2a 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.cc +++ b/chrome/browser/profiles/off_the_record_profile_impl.cc @@ -489,8 +489,9 @@ class GuestSessionProfile : public OffTheRecordProfileImpl { virtual void InitChromeOSPreferences() OVERRIDE { chromeos_preferences_.reset(new chromeos::Preferences()); - chromeos_preferences_->Init(static_cast<PrefServiceSyncable*>(GetPrefs()), - chromeos::UserManager::Get()->GetActiveUser()); + chromeos_preferences_->Init( + static_cast<PrefServiceSyncable*>(GetPrefs()), + user_manager::UserManager::Get()->GetActiveUser()); } private: diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index e84f795..d1d6325 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -111,9 +111,9 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/locale_change_guard.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/preferences.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "components/user_manager/user_manager.h" #endif #if defined(SPDY_PROXY_AUTH_ORIGIN) @@ -1263,7 +1263,7 @@ void ProfileImpl::ChangeAppLocale( if (via != APP_LOCALE_CHANGED_VIA_PUBLIC_SESSION_LOGIN) local_state->SetString(prefs::kApplicationLocale, new_locale); - if (chromeos::UserManager::Get()->GetOwnerEmail() == + if (user_manager::UserManager::Get()->GetOwnerEmail() == chromeos::ProfileHelper::Get()->GetUserByProfile(this)->email()) local_state->SetString(prefs::kOwnerLocale, new_locale); } diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc index 1bf14f6..1df3ccd 100644 --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc @@ -108,7 +108,6 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/drive/drive_protocol_handler.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/net/cert_verify_proc_chromeos.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/policy_cert_service.h" @@ -121,6 +120,7 @@ #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/settings/cros_settings_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "crypto/nss_util.h" #include "crypto/nss_util_internal.h" #include "net/cert/multi_threaded_cert_verifier.h" @@ -223,7 +223,8 @@ class DebugDevToolsInterceptor : public net::URLRequestInterceptor { // per-profile. // // Initialization basically follows these steps: -// 1) Get some info from chromeos::UserManager about the User for this profile. +// 1) Get some info from user_manager::UserManager about the User for this +// profile. // 2) Tell nss_util to initialize the software slot for this profile. // 3) Wait for the TPM module to be loaded by nss_util if it isn't already. // 4) Ask CryptohomeClient which TPM slot id corresponds to this profile. @@ -366,7 +367,7 @@ void ProfileIOData::InitializeOnUIThread(Profile* profile) { supervised_user_service->GetURLFilterForIOThread(); #endif #if defined(OS_CHROMEOS) - chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager) { user_manager::User* user = chromeos::ProfileHelper::Get()->GetUserByProfile(profile); diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc index 4b0fee3..9d410c5 100644 --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc @@ -82,13 +82,13 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/browser_process_platform_part_chromeos.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profiles_state.h" #include "chromeos/chromeos_switches.h" #include "chromeos/dbus/cryptohome_client.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #endif using base::UserMetricsAction; @@ -313,10 +313,11 @@ std::vector<Profile*> ProfileManager::GetLastOpenedProfiles() { Profile* ProfileManager::GetPrimaryUserProfile() { ProfileManager* profile_manager = g_browser_process->profile_manager(); #if defined(OS_CHROMEOS) - if (!profile_manager->IsLoggedIn() || !chromeos::UserManager::IsInitialized()) + if (!profile_manager->IsLoggedIn() || + !user_manager::UserManager::IsInitialized()) return profile_manager->GetActiveUserOrOffTheRecordProfileFromPath( profile_manager->user_data_dir()); - chromeos::UserManager* manager = chromeos::UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); // Note: The ProfileHelper will take care of guest profiles. return chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe( manager->GetPrimaryUser()); @@ -331,12 +332,12 @@ Profile* ProfileManager::GetActiveUserProfile() { ProfileManager* profile_manager = g_browser_process->profile_manager(); #if defined(OS_CHROMEOS) if (!profile_manager->IsLoggedIn() || - !chromeos::UserManager::IsInitialized()) { + !user_manager::UserManager::IsInitialized()) { return profile_manager->GetActiveUserOrOffTheRecordProfileFromPath( profile_manager->user_data_dir()); } - chromeos::UserManager* manager = chromeos::UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); const user_manager::User* user = manager->GetActiveUser(); // To avoid an endless loop (crbug.com/334098) we have to additionally check // if the profile of the user was already created. If the profile was not yet @@ -1053,7 +1054,7 @@ Profile* ProfileManager::GetActiveUserOrOffTheRecordProfileFromPath( // if the login-profile switch is passed so that we can test this. if (ShouldGoOffTheRecord(profile)) return profile->GetOffTheRecordProfile(); - DCHECK(!chromeos::UserManager::Get()->IsLoggedInAsGuest()); + DCHECK(!user_manager::UserManager::Get()->IsLoggedInAsGuest()); return profile; } @@ -1066,8 +1067,8 @@ Profile* ProfileManager::GetActiveUserOrOffTheRecordProfileFromPath( Profile* profile = GetProfile(default_profile_dir); // Some unit tests didn't initialize the UserManager. - if (chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsGuest()) + if (user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsGuest()) return profile->GetOffTheRecordProfile(); return profile; #else diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc index 681ce38..b43a973 100644 --- a/chrome/browser/profiles/profile_manager_unittest.cc +++ b/chrome/browser/profiles/profile_manager_unittest.cc @@ -46,11 +46,12 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/users/mock_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chromeos/chromeos_switches.h" #include "chromeos/login/user_names.h" +#include "components/user_manager/user_manager.h" #endif using base::ASCIIToUTF16; @@ -404,9 +405,10 @@ class ProfileManagerGuestTest : public ProfileManagerTest { cl->AppendSwitch(chromeos::switches::kGuestSession); cl->AppendSwitch(::switches::kIncognito); - chromeos::UserManager::Get()->UserLoggedIn(chromeos::login::kGuestUserName, - chromeos::login::kGuestUserName, - false); + user_manager::UserManager::Get()->UserLoggedIn( + chromeos::login::kGuestUserName, + chromeos::login::kGuestUserName, + false); #endif } }; diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc index 827c9c9..c19fb33 100644 --- a/chrome/browser/profiles/profiles_state.cc +++ b/chrome/browser/profiles/profiles_state.cc @@ -24,10 +24,6 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/text_elider.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" -#endif - namespace profiles { bool IsMultipleProfilesEnabled() { diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc index dd909b6..66f9326 100644 --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc @@ -27,7 +27,7 @@ #endif #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif using content::ChildProcessHost; @@ -116,8 +116,8 @@ scoped_refptr<TokenWebData> ChromeSigninClient::GetDatabase() { bool ChromeSigninClient::CanRevokeCredentials() { #if defined(OS_CHROMEOS) // UserManager may not exist in unit_tests. - if (chromeos::UserManager::IsInitialized() && - chromeos::UserManager::Get()->IsLoggedInAsSupervisedUser()) { + if (user_manager::UserManager::IsInitialized() && + user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) { // Don't allow revoking credentials for Chrome OS supervised users. // See http://crbug.com/332032 LOG(ERROR) << "Attempt to revoke supervised user refresh " diff --git a/chrome/browser/signin/easy_unlock_service.cc b/chrome/browser/signin/easy_unlock_service.cc index 81d9f0e..10dbf20 100644 --- a/chrome/browser/signin/easy_unlock_service.cc +++ b/chrome/browser/signin/easy_unlock_service.cc @@ -25,8 +25,8 @@ #include "grit/browser_resources.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "components/user_manager/user_manager.h" #endif namespace { @@ -91,7 +91,7 @@ void EasyUnlockService::LaunchSetup() { bool EasyUnlockService::IsAllowed() { #if defined(OS_CHROMEOS) - if (!chromeos::UserManager::Get()->IsLoggedInAsRegularUser()) + if (!user_manager::UserManager::Get()->IsLoggedInAsRegularUser()) return false; if (!chromeos::ProfileHelper::IsPrimaryProfile(profile_)) diff --git a/chrome/browser/signin/easy_unlock_service_browsertest_chromeos.cc b/chrome/browser/signin/easy_unlock_service_browsertest_chromeos.cc index 577120d..44aaf56 100644 --- a/chrome/browser/signin/easy_unlock_service_browsertest_chromeos.cc +++ b/chrome/browser/signin/easy_unlock_service_browsertest_chromeos.cc @@ -9,7 +9,6 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" @@ -21,6 +20,7 @@ #include "components/policy/core/common/mock_configuration_policy_provider.h" #include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_types.h" +#include "components/user_manager/user_manager.h" #include "content/public/common/content_switches.h" #include "extensions/browser/extension_system.h" #include "policy/policy_constants.h" @@ -30,7 +30,7 @@ using chromeos::ProfileHelper; using chromeos::LoginManagerTest; using chromeos::StartupUtils; using chromeos::UserAddingScreen; -using chromeos::UserManager; +using user_manager::UserManager; using testing::_; using testing::Return; @@ -49,7 +49,7 @@ bool HasEasyUnlockAppForProfile(Profile* profile) { } #endif -} //namespace +} // namespace class EasyUnlockServiceTest : public InProcessBrowserTest { public: @@ -190,9 +190,9 @@ IN_PROC_BROWSER_TEST_F(EasyUnlockServiceMultiProfileTest, base::RunLoop().RunUntilIdle(); AddUser(kTestUser2); const user_manager::User* primary_user = - UserManager::Get()->FindUser(kTestUser1); + user_manager::UserManager::Get()->FindUser(kTestUser1); const user_manager::User* secondary_user = - UserManager::Get()->FindUser(kTestUser2); + user_manager::UserManager::Get()->FindUser(kTestUser2); Profile* primary_profile = ProfileHelper::Get()->GetProfileByUserIdHash( primary_user->username_hash()); diff --git a/chrome/browser/signin/signin_error_notifier_ash.cc b/chrome/browser/signin/signin_error_notifier_ash.cc index aae8e7c..9713889 100644 --- a/chrome/browser/signin/signin_error_notifier_ash.cc +++ b/chrome/browser/signin/signin_error_notifier_ash.cc @@ -35,7 +35,8 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/user_flow.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" +#include "components/user_manager/user_manager.h" #endif namespace { @@ -168,9 +169,9 @@ void SigninErrorNotifier::OnErrorChanged() { } #if defined(OS_CHROMEOS) - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { chromeos::UserFlow* user_flow = - chromeos::UserManager::Get()->GetCurrentUserFlow(); + chromeos::ChromeUserManager::Get()->GetCurrentUserFlow(); // Check whether Chrome OS user flow allows launching browser. // Example: Supervised user creation flow which handles token invalidation diff --git a/chrome/browser/supervised_user/chromeos/manager_password_service.cc b/chrome/browser/supervised_user/chromeos/manager_password_service.cc index 2580d05..9c6f989 100644 --- a/chrome/browser/supervised_user/chromeos/manager_password_service.cc +++ b/chrome/browser/supervised_user/chromeos/manager_password_service.cc @@ -10,13 +10,14 @@ #include "base/values.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/supervised_user/supervised_user_constants.h" #include "chrome/browser/supervised_user/supervised_user_sync_service.h" #include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" namespace chromeos { @@ -38,12 +39,11 @@ void ManagerPasswordService::Init( authenticator_ = new ExtendedAuthenticator(this); - UserManager* user_manager = UserManager::Get(); - SupervisedUserManager* supervised_user_manager = - user_manager->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); - const user_manager::UserList& users = user_manager->GetUsers(); + const user_manager::UserList& users = + user_manager::UserManager::Get()->GetUsers(); for (user_manager::UserList::const_iterator it = users.begin(); it != users.end(); @@ -65,7 +65,7 @@ void ManagerPasswordService::OnSharedSettingsChange( return; SupervisedUserManager* supervised_user_manager = - UserManager::Get()->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); const user_manager::User* user = supervised_user_manager->FindBySyncId(su_id); // No user on device. if (user == NULL) @@ -198,7 +198,7 @@ void ManagerPasswordService::OnAddKeySuccess( SupervisedUserAuthentication::PASSWORD_CHANGE_RESULT_MAX_VALUE); SupervisedUserAuthentication* auth = - UserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); + ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); int old_schema = auth->GetPasswordSchema(user_id); auth->StorePasswordData(user_id, *password_data.get()); diff --git a/chrome/browser/supervised_user/chromeos/manager_password_service_factory.cc b/chrome/browser/supervised_user/chromeos/manager_password_service_factory.cc index 5f5df8c..3debf86 100644 --- a/chrome/browser/supervised_user/chromeos/manager_password_service_factory.cc +++ b/chrome/browser/supervised_user/chromeos/manager_password_service_factory.cc @@ -4,6 +4,7 @@ #include "chrome/browser/supervised_user/chromeos/manager_password_service_factory.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/incognito_helpers.h" @@ -43,10 +44,9 @@ ManagerPasswordServiceFactory:: KeyedService* ManagerPasswordServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { Profile* profile= static_cast<Profile*>(context); - user_manager::User* user = - chromeos::ProfileHelper::Get()->GetUserByProfile(profile); - if (chromeos::UserManager::Get()->GetSupervisedUserManager()-> - HasSupervisedUsers(user->email())) { + user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile); + if (ChromeUserManager::Get()->GetSupervisedUserManager()->HasSupervisedUsers( + user->email())) { ManagerPasswordService* result = new ManagerPasswordService(); result->Init( user->email(), diff --git a/chrome/browser/supervised_user/chromeos/supervised_user_password_service.cc b/chrome/browser/supervised_user/chromeos/supervised_user_password_service.cc index c3dc5d0..35ae5aa 100644 --- a/chrome/browser/supervised_user/chromeos/supervised_user_password_service.cc +++ b/chrome/browser/supervised_user/chromeos/supervised_user_password_service.cc @@ -7,8 +7,8 @@ #include "base/bind.h" #include "base/values.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/supervised_user/supervised_user_constants.h" #include "chrome/browser/supervised_user/supervised_user_sync_service.h" @@ -31,7 +31,7 @@ void SupervisedUserPasswordService::Init( // Force value check in case we have missed some notification. chromeos::SupervisedUserManager* supervised_user_manager = - chromeos::UserManager::Get()->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); OnSharedSettingsChange(supervised_user_manager->GetUserSyncId(user_id), supervised_users::kChromeOSPasswordData); @@ -43,7 +43,7 @@ void SupervisedUserPasswordService::OnSharedSettingsChange( if (key != supervised_users::kChromeOSPasswordData) return; chromeos::SupervisedUserManager* supervised_user_manager = - chromeos::UserManager::Get()->GetSupervisedUserManager(); + ChromeUserManager::Get()->GetSupervisedUserManager(); const user_manager::User* user = supervised_user_manager->FindBySyncId(su_id); if (user == NULL) { LOG(WARNING) << "Got notification for user not on device."; diff --git a/chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.cc b/chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.cc index b210a77..370827e 100644 --- a/chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.cc +++ b/chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.cc @@ -5,7 +5,6 @@ #include "chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/incognito_helpers.h" #include "chrome/browser/profiles/profile.h" diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc index 8b45a60..0f8cab2 100644 --- a/chrome/browser/supervised_user/supervised_user_service.cc +++ b/chrome/browser/supervised_user/supervised_user_service.cc @@ -47,8 +47,9 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif #if defined(ENABLE_EXTENSIONS) @@ -255,9 +256,10 @@ void SupervisedUserService::GetCategoryNames(CategoryList* list) { std::string SupervisedUserService::GetCustodianEmailAddress() const { #if defined(OS_CHROMEOS) - return chromeos::UserManager::Get()->GetSupervisedUserManager()-> - GetManagerDisplayEmail( - chromeos::UserManager::Get()->GetActiveUser()->email()); + return chromeos::ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->GetManagerDisplayEmail( + user_manager::UserManager::Get()->GetActiveUser()->email()); #else return profile_->GetPrefs()->GetString(prefs::kSupervisedUserCustodianEmail); #endif @@ -265,9 +267,11 @@ std::string SupervisedUserService::GetCustodianEmailAddress() const { std::string SupervisedUserService::GetCustodianName() const { #if defined(OS_CHROMEOS) - return base::UTF16ToUTF8(chromeos::UserManager::Get()-> - GetSupervisedUserManager()->GetManagerDisplayName( - chromeos::UserManager::Get()->GetActiveUser()->email())); + return base::UTF16ToUTF8( + chromeos::ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->GetManagerDisplayName( + user_manager::UserManager::Get()->GetActiveUser()->email())); #else std::string name = profile_->GetPrefs()->GetString( prefs::kSupervisedUserCustodianName); @@ -817,9 +821,9 @@ void SupervisedUserService::OnBrowserSetLastActive(Browser* browser) { std::string SupervisedUserService::GetSupervisedUserName() const { #if defined(OS_CHROMEOS) // The active user can be NULL in unit tests. - if (chromeos::UserManager::Get()->GetActiveUser()) { - return UTF16ToUTF8(chromeos::UserManager::Get()->GetUserDisplayName( - chromeos::UserManager::Get()->GetActiveUser()->GetUserID())); + if (user_manager::UserManager::Get()->GetActiveUser()) { + return UTF16ToUTF8(user_manager::UserManager::Get()->GetUserDisplayName( + user_manager::UserManager::Get()->GetActiveUser()->GetUserID())); } return std::string(); #else diff --git a/chrome/browser/sync/sync_error_notifier_ash.cc b/chrome/browser/sync/sync_error_notifier_ash.cc index 473738e..f203dce 100644 --- a/chrome/browser/sync/sync_error_notifier_ash.cc +++ b/chrome/browser/sync/sync_error_notifier_ash.cc @@ -29,7 +29,8 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/login/user_flow.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" +#include "components/user_manager/user_manager.h" #endif @@ -155,9 +156,9 @@ void SyncErrorNotifier::OnErrorChanged() { } #if defined(OS_CHROMEOS) - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { chromeos::UserFlow* user_flow = - chromeos::UserManager::Get()->GetCurrentUserFlow(); + chromeos::ChromeUserManager::Get()->GetCurrentUserFlow(); // Check whether Chrome OS user flow allows launching browser. // Example: Supervised user creation flow which handles token invalidation diff --git a/chrome/browser/sync/sync_ui_util.cc b/chrome/browser/sync/sync_ui_util.cc index 3a15e24..8143ca3 100644 --- a/chrome/browser/sync/sync_ui_util.cc +++ b/chrome/browser/sync/sync_ui_util.cc @@ -37,7 +37,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif // defined(OS_CHROMEOS) typedef GoogleServiceAuthError AuthError; @@ -55,11 +55,11 @@ base::string16 GetSyncedStateStatusLabel(ProfileSyncService* service, std::string user_display_name = signin.GetAuthenticatedUsername(); #if defined(OS_CHROMEOS) - if (chromeos::UserManager::IsInitialized()) { + if (user_manager::UserManager::IsInitialized()) { // On CrOS user email is sanitized and then passed to the signin manager. // Original email (containing dots) is stored as "display email". - user_display_name = chromeos::UserManager::Get()-> - GetUserDisplayEmail(user_display_name); + user_display_name = user_manager::UserManager::Get()->GetUserDisplayEmail( + user_display_name); } #endif // defined(OS_CHROMEOS) diff --git a/chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_service_fake_unittest.cc b/chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_service_fake_unittest.cc index 02cca9e..93b55e6 100644 --- a/chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_service_fake_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_service_fake_unittest.cc @@ -42,7 +42,7 @@ #include "webkit/common/fileapi/file_system_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/themes/theme_syncable_service_unittest.cc b/chrome/browser/themes/theme_syncable_service_unittest.cc index 9f37de4..c671452 100644 --- a/chrome/browser/themes/theme_syncable_service_unittest.cc +++ b/chrome/browser/themes/theme_syncable_service_unittest.cc @@ -34,7 +34,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/ui/ash/app_sync_ui_state.cc b/chrome/browser/ui/ash/app_sync_ui_state.cc index 78bb2b3..27d2d11 100644 --- a/chrome/browser/ui/ash/app_sync_ui_state.cc +++ b/chrome/browser/ui/ash/app_sync_ui_state.cc @@ -16,7 +16,7 @@ #include "extensions/browser/extension_system.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif namespace { @@ -34,7 +34,7 @@ AppSyncUIState* AppSyncUIState::Get(Profile* profile) { // static bool AppSyncUIState::ShouldObserveAppSyncForProfile(Profile* profile) { #if defined(OS_CHROMEOS) - if (chromeos::UserManager::Get()->IsLoggedInAsGuest()) + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) return false; if (!profile || profile->IsOffTheRecord()) diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.cc b/chrome/browser/ui/ash/chrome_shell_delegate.cc index d4daa66..9ac7946 100644 --- a/chrome/browser/ui/ash/chrome_shell_delegate.cc +++ b/chrome/browser/ui/ash/chrome_shell_delegate.cc @@ -29,7 +29,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" #include "chrome/browser/chromeos/display/display_configuration_observer.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif // static @@ -52,12 +52,13 @@ bool ChromeShellDelegate::IsMultiProfilesEnabled() const { #if defined(OS_CHROMEOS) // If there is a user manager, we need to see that we can at least have 2 // simultaneous users to allow this feature. - if (!chromeos::UserManager::IsInitialized()) + if (!user_manager::UserManager::IsInitialized()) return false; - size_t admitted_users_to_be_added = - chromeos::UserManager::Get()->GetUsersAdmittedForMultiProfile().size(); + size_t admitted_users_to_be_added = user_manager::UserManager::Get() + ->GetUsersAdmittedForMultiProfile() + .size(); size_t logged_in_users = - chromeos::UserManager::Get()->GetLoggedInUsers().size(); + user_manager::UserManager::Get()->GetLoggedInUsers().size(); if (!logged_in_users) { // The shelf gets created on the login screen and as such we have to create // all multi profile items of the the system tray menu before the user logs @@ -99,7 +100,7 @@ void ChromeShellDelegate::Exit() { content::BrowserContext* ChromeShellDelegate::GetActiveBrowserContext() { #if defined(OS_CHROMEOS) - DCHECK(chromeos::UserManager::Get()->GetLoggedInUsers().size()); + DCHECK(user_manager::UserManager::Get()->GetLoggedInUsers().size()); #endif return ProfileManager::GetActiveUserProfile(); } diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index 744fb2d..f6b4379 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc @@ -91,10 +91,10 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/ui/ash/chrome_shell_delegate.h" #include "chrome/browser/ui/ash/launcher/multi_profile_app_window_launcher_controller.h" #include "chrome/browser/ui/ash/launcher/multi_profile_browser_status_monitor.h" +#include "components/user_manager/user_manager.h" #endif using extensions::Extension; @@ -269,14 +269,14 @@ std::string GetSourceFromAppListSource(ash::LaunchSource source) { // A class to get events from ChromeOS when a user gets changed or added. class ChromeLauncherControllerUserSwitchObserverChromeOS : public ChromeLauncherControllerUserSwitchObserver, - public chromeos::UserManager::UserSessionStateObserver, + public user_manager::UserManager::UserSessionStateObserver, content::NotificationObserver { public: ChromeLauncherControllerUserSwitchObserverChromeOS( ChromeLauncherController* controller) : controller_(controller) { - DCHECK(chromeos::UserManager::IsInitialized()); - chromeos::UserManager::Get()->AddSessionStateObserver(this); + DCHECK(user_manager::UserManager::IsInitialized()); + user_manager::UserManager::Get()->AddSessionStateObserver(this); // A UserAddedToSession notification can be sent before a profile is loaded. // Since our observers require that we have already a profile, we might have // to postpone the notification until the ProfileManager lets us know that @@ -285,10 +285,10 @@ class ChromeLauncherControllerUserSwitchObserverChromeOS content::NotificationService::AllSources()); } virtual ~ChromeLauncherControllerUserSwitchObserverChromeOS() { - chromeos::UserManager::Get()->RemoveSessionStateObserver(this); + user_manager::UserManager::Get()->RemoveSessionStateObserver(this); } - // chromeos::UserManager::UserSessionStateObserver overrides: + // user_manager::UserManager::UserSessionStateObserver overrides: virtual void UserAddedToSession( const user_manager::User* added_user) OVERRIDE; diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc index 65946a3..b9ae930 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc @@ -53,6 +53,7 @@ #include "ash/test/test_session_state_delegate.h" #include "ash/test/test_shell_delegate.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/ui/apps/chrome_app_delegate.h" #include "chrome/browser/ui/ash/launcher/app_window_launcher_controller.h" #include "chrome/browser/ui/ash/launcher/browser_status_monitor.h" @@ -925,7 +926,7 @@ class MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerTest chromeos::FakeUserManager* GetFakeUserManager() { return static_cast<chromeos::FakeUserManager*>( - chromeos::UserManager::Get()); + user_manager::UserManager::Get()); } scoped_ptr<TestingProfileManager> profile_manager_; diff --git a/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos.cc b/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos.cc index d2a61b2..f9100aa 100644 --- a/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos.cc +++ b/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos.cc @@ -12,7 +12,6 @@ #include "base/prefs/pref_service.h" #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" @@ -20,6 +19,7 @@ #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" #include "chrome/common/pref_names.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "grit/generated_resources.h" #include "ui/aura/window.h" #include "ui/base/l10n/l10n_util.h" @@ -130,7 +130,7 @@ void ExecuteVisitDesktopCommand(int command_id, aura::Window* window) { // Don't show warning dialog if any logged in user in multi-profiles // session dismissed it. const user_manager::UserList logged_in_users = - chromeos::UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_in_users.begin(); it != logged_in_users.end(); ++it) { diff --git a/chrome/browser/ui/ash/multi_user/multi_user_util.cc b/chrome/browser/ui/ash/multi_user/multi_user_util.cc index 9aecd93..749e29b 100644 --- a/chrome/browser/ui/ash/multi_user/multi_user_util.cc +++ b/chrome/browser/ui/ash/multi_user/multi_user_util.cc @@ -13,8 +13,8 @@ #include "google_apis/gaia/gaia_auth_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" +#include "components/user_manager/user_manager.h" #endif namespace multi_user_util { @@ -63,7 +63,7 @@ Profile* GetProfileFromWindow(aura::Window* window) { bool IsProfileFromActiveUser(Profile* profile) { #if defined(OS_CHROMEOS) return GetUserIDFromProfile(profile) == - chromeos::UserManager::Get()->GetActiveUser()->email(); + user_manager::UserManager::Get()->GetActiveUser()->email(); #else // In non Chrome OS configurations this will be always true since this only // makes sense in separate desktop mode. @@ -73,7 +73,7 @@ bool IsProfileFromActiveUser(Profile* profile) { const std::string& GetCurrentUserId() { #if defined(OS_CHROMEOS) - return chromeos::UserManager::Get()->GetActiveUser()->email(); + return user_manager::UserManager::Get()->GetActiveUser()->email(); #else return base::EmptyString(); #endif diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc index 126a469..097559d 100644 --- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc +++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc @@ -22,7 +22,6 @@ #include "base/strings/string_util.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos.h" diff --git a/chrome/browser/ui/ash/screenshot_taker.cc b/chrome/browser/ui/ash/screenshot_taker.cc index 4cee448..d8fe27e 100644 --- a/chrome/browser/ui/ash/screenshot_taker.cc +++ b/chrome/browser/ui/ash/screenshot_taker.cc @@ -45,7 +45,6 @@ #include "chrome/browser/chromeos/drive/file_system_interface.h" #include "chrome/browser/chromeos/drive/file_system_util.h" #include "chrome/browser/chromeos/file_manager/open_util.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/desktop_notification_service_factory.h" #include "chromeos/login/login_state.h" diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc index ef9f807..2f7c840 100644 --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc @@ -12,7 +12,6 @@ #include "chrome/browser/chromeos/login/lock/screen_locker.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -23,11 +22,12 @@ #include "chromeos/dbus/session_manager_client.h" #include "chromeos/login/login_state.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "google_apis/gaia/gaia_auth_util.h" SessionStateDelegateChromeos::SessionStateDelegateChromeos() : session_state_(SESSION_STATE_LOGIN_PRIMARY) { - chromeos::UserManager::Get()->AddSessionStateObserver(this); + user_manager::UserManager::Get()->AddSessionStateObserver(this); chromeos::UserAddingScreen::Get()->AddObserver(this); // LoginState is not initialized in unit_tests. @@ -39,7 +39,7 @@ SessionStateDelegateChromeos::SessionStateDelegateChromeos() } SessionStateDelegateChromeos::~SessionStateDelegateChromeos() { - chromeos::UserManager::Get()->RemoveSessionStateObserver(this); + user_manager::UserManager::Get()->RemoveSessionStateObserver(this); chromeos::UserAddingScreen::Get()->RemoveObserver(this); // LoginState is not initialized in unit_tests. @@ -51,7 +51,7 @@ content::BrowserContext* SessionStateDelegateChromeos::GetBrowserContextByIndex( ash::MultiProfileIndex index) { DCHECK_LT(index, NumberOfLoggedInUsers()); user_manager::User* user = - chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]; + user_manager::UserManager::Get()->GetLRULoggedInUsers()[index]; DCHECK(user); return chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe(user); } @@ -62,7 +62,7 @@ SessionStateDelegateChromeos::GetBrowserContextForWindow( const std::string& user_id = chrome::MultiUserWindowManager::GetInstance()->GetWindowOwner(window); const user_manager::User* user = - chromeos::UserManager::Get()->FindUser(user_id); + user_manager::UserManager::Get()->FindUser(user_id); DCHECK(user); return chromeos::ProfileHelper::Get()->GetProfileByUserUnsafe(user); } @@ -77,16 +77,16 @@ int SessionStateDelegateChromeos::GetMaximumNumberOfLoggedInUsers() const { } int SessionStateDelegateChromeos::NumberOfLoggedInUsers() const { - return chromeos::UserManager::Get()->GetLoggedInUsers().size(); + return user_manager::UserManager::Get()->GetLoggedInUsers().size(); } bool SessionStateDelegateChromeos::IsActiveUserSessionStarted() const { - return chromeos::UserManager::Get()->IsSessionStarted(); + return user_manager::UserManager::Get()->IsSessionStarted(); } bool SessionStateDelegateChromeos::CanLockScreen() const { const user_manager::UserList unlock_users = - chromeos::UserManager::Get()->GetUnlockUsers(); + user_manager::UserManager::Get()->GetUnlockUsers(); return !unlock_users.empty(); } @@ -97,7 +97,7 @@ bool SessionStateDelegateChromeos::IsScreenLocked() const { bool SessionStateDelegateChromeos::ShouldLockScreenBeforeSuspending() const { const user_manager::UserList logged_in_users = - chromeos::UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_in_users.begin(); it != logged_in_users.end(); ++it) { @@ -140,7 +140,7 @@ SessionStateDelegateChromeos::GetSessionState() const { const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo( ash::MultiProfileIndex index) const { DCHECK_LT(index, NumberOfLoggedInUsers()); - return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]; + return user_manager::UserManager::Get()->GetLRULoggedInUsers()[index]; } const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo( @@ -162,9 +162,9 @@ void SessionStateDelegateChromeos::SwitchActiveUser( // Also check that we got a user id and not an email address. DCHECK_EQ(user_id, gaia::CanonicalizeEmail(gaia::SanitizeEmail(user_id))); - if (user_id == chromeos::UserManager::Get()->GetActiveUser()->email()) + if (user_id == user_manager::UserManager::Get()->GetActiveUser()->email()) return; - chromeos::UserManager::Get()->SwitchActiveUser(user_id); + user_manager::UserManager::Get()->SwitchActiveUser(user_id); } void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { @@ -173,9 +173,10 @@ void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { return; const user_manager::UserList& logged_in_users = - chromeos::UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); - std::string user_id = chromeos::UserManager::Get()->GetActiveUser()->email(); + std::string user_id = + user_manager::UserManager::Get()->GetActiveUser()->email(); // Get an iterator positioned at the active user. user_manager::UserList::const_iterator it; @@ -206,7 +207,7 @@ void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { } // Switch using the transformed |user_id|. - chromeos::UserManager::Get()->SwitchActiveUser(user_id); + user_manager::UserManager::Get()->SwitchActiveUser(user_id); } bool SessionStateDelegateChromeos::IsMultiProfileAllowedByPrimaryUserPolicy() diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.h b/chrome/browser/ui/ash/session_state_delegate_chromeos.h index 93f9b7da..3f9d2af 100644 --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.h +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.h @@ -10,8 +10,8 @@ #include "base/compiler_specific.h" #include "base/observer_list.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chromeos/login/login_state.h" +#include "components/user_manager/user_manager.h" namespace ash { class SessionStateObserver; @@ -20,7 +20,7 @@ class SessionStateObserver; class SessionStateDelegateChromeos : public ash::SessionStateDelegate, public chromeos::LoginState::Observer, - public chromeos::UserManager::UserSessionStateObserver, + public user_manager::UserManager::UserSessionStateObserver, public chromeos::UserAddingScreen::Observer { public: SessionStateDelegateChromeos(); @@ -57,7 +57,7 @@ class SessionStateDelegateChromeos // chromeos::LoginState::Observer overrides. virtual void LoggedInStateChanged() OVERRIDE; - // chromeos::UserManager::UserSessionStateObserver: + // user_manager::UserManager::UserSessionStateObserver: virtual void ActiveUserChanged( const user_manager::User* active_user) OVERRIDE; virtual void UserAddedToSession( diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc index 2bf05dd..ec1fff7 100644 --- a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc @@ -10,6 +10,7 @@ #include "base/run_loop.h" #include "chrome/browser/chromeos/login/users/fake_user_manager.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/chromeos/policy/policy_cert_service.h" #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" @@ -17,6 +18,7 @@ #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile_manager.h" +#include "components/user_manager/user_manager.h" #include "content/public/test/test_browser_thread_bundle.h" #include "net/cert/x509_certificate.h" #include "testing/gtest/include/gtest/gtest.h" @@ -35,7 +37,7 @@ KeyedService* CreateTestPolicyCertService(content::BrowserContext* context) { return policy::PolicyCertService::CreateForTesting( kUser, g_policy_cert_verifier_for_factory, - chromeos::UserManager::Get()).release(); + user_manager::UserManager::Get()).release(); } } // namespace @@ -85,7 +87,7 @@ class SessionStateDelegateChromeOSTest : public testing::Test { // Get the active user. const std::string& GetActiveUser() { - return chromeos::UserManager::Get()->GetActiveUser()->email(); + return user_manager::UserManager::Get()->GetActiveUser()->email(); } chromeos::FakeUserManager* user_manager() { return user_manager_; } diff --git a/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc b/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc index 3c260d5..4c98092 100644 --- a/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc @@ -56,8 +56,9 @@ #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" +#include "chrome/browser/chromeos/login/user_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/options/network_config_view.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" @@ -96,6 +97,7 @@ #include "components/google/core/browser/google_util.h" #include "components/policy/core/common/cloud/cloud_policy_store.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_service.h" @@ -375,16 +377,20 @@ const base::string16 SystemTrayDelegateChromeOS::GetEnterpriseMessage() const { const std::string SystemTrayDelegateChromeOS::GetSupervisedUserManager() const { if (GetUserLoginStatus() != ash::user::LOGGED_IN_SUPERVISED) return std::string(); - return UserManager::Get()->GetSupervisedUserManager()->GetManagerDisplayEmail( - chromeos::UserManager::Get()->GetActiveUser()->email()); + return ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->GetManagerDisplayEmail( + user_manager::UserManager::Get()->GetActiveUser()->email()); } const base::string16 SystemTrayDelegateChromeOS::GetSupervisedUserManagerName() const { if (GetUserLoginStatus() != ash::user::LOGGED_IN_SUPERVISED) return base::string16(); - return UserManager::Get()->GetSupervisedUserManager()->GetManagerDisplayName( - chromeos::UserManager::Get()->GetActiveUser()->email()); + return ChromeUserManager::Get() + ->GetSupervisedUserManager() + ->GetManagerDisplayName( + user_manager::UserManager::Get()->GetActiveUser()->email()); } const base::string16 SystemTrayDelegateChromeOS::GetSupervisedUserMessage() @@ -409,7 +415,7 @@ void SystemTrayDelegateChromeOS::ShowSettings() { } bool SystemTrayDelegateChromeOS::ShouldShowSettings() { - return UserManager::Get()->GetCurrentUserFlow()->ShouldShowSettings() && + return ChromeUserManager::Get()->GetCurrentUserFlow()->ShouldShowSettings() && !ash::Shell::GetInstance() ->session_state_delegate() ->IsInSecondaryLoginScreen(); @@ -538,22 +544,25 @@ void SystemTrayDelegateChromeOS::ShowUserLogin() { return; // Only regular users could add other users to current session. - if (UserManager::Get()->GetActiveUser()->GetType() != + if (user_manager::UserManager::Get()->GetActiveUser()->GetType() != user_manager::USER_TYPE_REGULAR) { return; } - if (static_cast<int>(UserManager::Get()->GetLoggedInUsers().size()) >= + if (static_cast<int>( + user_manager::UserManager::Get()->GetLoggedInUsers().size()) >= shell->session_state_delegate()->GetMaximumNumberOfLoggedInUsers()) return; // Launch sign in screen to add another user to current session. - if (UserManager::Get()->GetUsersAdmittedForMultiProfile().size()) { + if (user_manager::UserManager::Get() + ->GetUsersAdmittedForMultiProfile() + .size()) { // Don't show dialog if any logged in user in multi-profiles session // dismissed it. bool show_intro = true; const user_manager::UserList logged_in_users = - UserManager::Get()->GetLoggedInUsers(); + user_manager::UserManager::Get()->GetLoggedInUsers(); for (user_manager::UserList::const_iterator it = logged_in_users.begin(); it != logged_in_users.end(); ++it) { @@ -830,7 +839,8 @@ ash::tray::UserAccountsDelegate* SystemTrayDelegateChromeOS::GetUserAccountsDelegate( const std::string& user_id) { if (!accounts_delegates_.contains(user_id)) { - const user_manager::User* user = UserManager::Get()->FindUser(user_id); + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(user_id); Profile* user_profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); CHECK(user_profile); accounts_delegates_.set( @@ -949,7 +959,7 @@ void SystemTrayDelegateChromeOS::UpdateClockType() { GetSystemTrayNotifier()->NotifyDateFormatChanged(); // This also works for enterprise-managed devices because they never have // local owner. - if (chromeos::UserManager::Get()->IsCurrentUserOwner()) + if (user_manager::UserManager::Get()->IsCurrentUserOwner()) CrosSettings::Get()->SetBoolean(kSystemUse24HourClock, use_24_hour_clock); } @@ -1039,7 +1049,7 @@ void SystemTrayDelegateChromeOS::LoggedInStateChanged() { // method, as LoggedInStateChanged() is also called before the logged-in // user's profile has actually been loaded (http://crbug.com/317745). The // system tray's time format is updated at login via SetProfile(). - if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { + if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { CrosSettings::Get()->SetBoolean(kSystemUse24HourClock, ShouldUse24HourClock()); } diff --git a/chrome/browser/ui/ash/user_accounts_delegate_chromeos.cc b/chrome/browser/ui/ash/user_accounts_delegate_chromeos.cc index 13aa115..f71dc0e 100644 --- a/chrome/browser/ui/ash/user_accounts_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/user_accounts_delegate_chromeos.cc @@ -8,7 +8,6 @@ #include <iterator> #include "base/logging.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/ui/inline_login_dialog.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" @@ -16,6 +15,7 @@ #include "components/signin/core/browser/mutable_profile_oauth2_token_service.h" #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/user_manager/user.h" #include "google_apis/gaia/gaia_auth_util.h" namespace chromeos { diff --git a/chrome/browser/ui/browser_list.cc b/chrome/browser/ui/browser_list.cc index d0dc338..000c4c6 100644 --- a/chrome/browser/ui/browser_list.cc +++ b/chrome/browser/ui/browser_list.cc @@ -21,10 +21,6 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/user_metrics.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" -#endif - using base::UserMetricsAction; using content::WebContents; diff --git a/chrome/browser/ui/location_bar/origin_chip_info_unittest.cc b/chrome/browser/ui/location_bar/origin_chip_info_unittest.cc index 496da58..9257308 100644 --- a/chrome/browser/ui/location_bar/origin_chip_info_unittest.cc +++ b/chrome/browser/ui/location_bar/origin_chip_info_unittest.cc @@ -21,7 +21,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc index fd046f8..63de334 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.cc +++ b/chrome/browser/ui/startup/startup_browser_creator.cc @@ -73,10 +73,10 @@ #include "chrome/browser/chromeos/app_mode/app_launch_utils.h" #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chromeos/chromeos_switches.h" +#include "components/user_manager/user_manager.h" #endif #if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) @@ -359,7 +359,8 @@ SessionStartupPref StartupBrowserCreator::GetSessionStartupPref( // in a location shared by all users and the check is meaningless. Query the // UserManager instead to determine whether the user is new. #if defined(OS_CHROMEOS) - const bool is_first_run = chromeos::UserManager::Get()->IsCurrentUserNew(); + const bool is_first_run = + user_manager::UserManager::Get()->IsCurrentUserNew(); #else const bool is_first_run = first_run::IsChromeFirstRun(); #endif diff --git a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc index 2bed91c..68bc2e1 100644 --- a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc +++ b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc @@ -34,7 +34,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/chrome/browser/ui/webui/chromeos/first_run/first_run_ui.cc b/chrome/browser/ui/webui/chromeos/first_run/first_run_ui.cc index 0ac74e6..d2828dd 100644 --- a/chrome/browser/ui/webui/chromeos/first_run/first_run_ui.cc +++ b/chrome/browser/ui/webui/chromeos/first_run/first_run_ui.cc @@ -6,7 +6,6 @@ #include "ash/shell.h" #include "base/command_line.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h" #include "chrome/common/url_constants.h" diff --git a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc index e15ba2d..5a6a77a 100644 --- a/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc @@ -23,6 +23,7 @@ #include "chromeos/dbus/session_manager_client.h" #include "chromeos/network/portal_detector/network_portal_detector.h" #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" +#include "components/user_manager/user_manager.h" #include "extensions/browser/extension_system.h" #include "grit/browser_resources.h" #include "grit/chromium_strings.h" @@ -204,7 +205,7 @@ void ErrorScreenHandler::HandleDiagnoseButtonClicked() { NEW_WINDOW)); InitAppSession(profile, extension_id); - UserManager::Get()->SessionStarted(); + user_manager::UserManager::Get()->SessionStarted(); LoginDisplayHostImpl::default_host()->Finalize(); } diff --git a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc index b66ae6a..7e84e9d 100644 --- a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc @@ -12,7 +12,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_shutdown.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/consumer_management_service.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -21,6 +20,7 @@ #include "chrome/browser/ui/webui/signin/inline_login_ui.h" #include "chromeos/chromeos_switches.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "google_apis/gaia/gaia_auth_util.h" @@ -59,7 +59,7 @@ void UpdateAuthParams(base::DictionaryValue* params, // 3. New users are allowed by owner. // 4. Supervised users are allowed by owner. bool supervised_users_allowed = - UserManager::Get()->AreSupervisedUsersAllowed(); + user_manager::UserManager::Get()->AreSupervisedUsersAllowed(); bool supervised_users_can_create = true; int message_id = -1; if (!has_users) { @@ -306,7 +306,8 @@ void GaiaScreenHandler::HandleCompleteLogin(const std::string& typed_email, } // Consumer management enrollment is in progress. - const std::string owner_email = UserManager::Get()->GetOwnerEmail(); + const std::string owner_email = + user_manager::UserManager::Get()->GetOwnerEmail(); if (typed_email != owner_email) { // Show Gaia sign-in screen again, since we only allow the owner to sign // in. diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc index b88861d..138e06f 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc @@ -36,7 +36,6 @@ #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" #include "chrome/browser/chromeos/login/ui/webui_login_display.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" @@ -66,6 +65,7 @@ #include "chromeos/network/network_state_handler.h" #include "chromeos/network/portal_detector/network_portal_detector.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" @@ -974,7 +974,7 @@ bool SigninScreenHandler::ShouldLoadGaia() const { // Update keyboard layout to least recently used by the user. void SigninScreenHandler::SetUserInputMethod(const std::string& username) { - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); if (user_manager->IsUserLoggedIn()) { // We are on sign-in screen inside user session (adding new user to // the session or on lock screen), don't switch input methods in this case. @@ -1059,7 +1059,7 @@ void SigninScreenHandler::HandleLaunchIncognito() { } void SigninScreenHandler::HandleShowSupervisedUserCreationScreen() { - if (!UserManager::Get()->AreSupervisedUsersAllowed()) { + if (!user_manager::UserManager::Get()->AreSupervisedUsersAllowed()) { LOG(ERROR) << "Managed users not allowed."; return; } @@ -1284,7 +1284,7 @@ void SigninScreenHandler::HandleLoginUIStateChanged(const std::string& source, } void SigninScreenHandler::HandleUnlockOnLoginSuccess() { - DCHECK(UserManager::Get()->IsUserLoggedIn()); + DCHECK(user_manager::UserManager::Get()->IsUserLoggedIn()); if (ScreenLocker::default_screen_locker()) ScreenLocker::default_screen_locker()->UnlockOnLoginSuccess(); } @@ -1360,7 +1360,7 @@ bool SigninScreenHandler::AllWhitelistedUsersPresent() { cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); if (allow_new_user) return false; - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); const user_manager::UserList& users = user_manager->GetUsers(); if (!delegate_ || users.size() > kMaxUsers) { return false; diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h index 2d8ffab..86d4dda 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h @@ -20,7 +20,6 @@ #include "chrome/browser/chromeos/login/screens/error_screen_actor.h" #include "chrome/browser/chromeos/login/signin_specifics.h" #include "chrome/browser/chromeos/login/ui/login_display.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/signin/screenlock_bridge.h" #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" @@ -29,6 +28,7 @@ #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" #include "chromeos/ime/ime_keyboard.h" #include "chromeos/network/portal_detector/network_portal_detector.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/web_ui.h" diff --git a/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc b/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc index 0aa3dea..7264143 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc +++ b/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc @@ -7,6 +7,7 @@ #include "chrome/browser/chromeos/login/users/fake_user_manager.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" +#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" #include "chrome/browser/signin/screenlock_bridge.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile_manager.h" diff --git a/chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.cc index c448b7e..e9ef462 100644 --- a/chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.cc @@ -9,13 +9,14 @@ #include "base/values.h" #include "chrome/browser/chromeos/login/screens/user_selection_screen.h" #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_flow.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" #include "chrome/common/url_constants.h" #include "chromeos/audio/chromeos_sounds.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "google_apis/gaia/gaia_auth_util.h" #include "grit/browser_resources.h" @@ -209,7 +210,8 @@ void SupervisedUserCreationScreenHandler::PrepareToShow() {} void SupervisedUserCreationScreenHandler::Show() { scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); scoped_ptr<base::ListValue> users_list(new base::ListValue()); - const user_manager::UserList& users = UserManager::Get()->GetUsers(); + const user_manager::UserList& users = + user_manager::UserManager::Get()->GetUsers(); std::string owner; chromeos::CrosSettings::Get()->GetString(chromeos::kDeviceOwner, &owner); @@ -301,8 +303,9 @@ void SupervisedUserCreationScreenHandler::HandleImportUserSelected( void SupervisedUserCreationScreenHandler::HandleCheckSupervisedUserName( const base::string16& name) { std::string user_id; - if (NULL != UserManager::Get()->GetSupervisedUserManager()-> - FindByDisplayName(base::CollapseWhitespace(name, true))) { + if (NULL != + ChromeUserManager::Get()->GetSupervisedUserManager()->FindByDisplayName( + base::CollapseWhitespace(name, true))) { CallJS("supervisedUserNameError", name, l10n_util::GetStringUTF16( IDS_CREATE_SUPERVISED_USER_CREATE_USERNAME_ALREADY_EXISTS)); @@ -325,8 +328,9 @@ void SupervisedUserCreationScreenHandler::HandleCreateSupervisedUser( return; const base::string16 new_user_name = base::CollapseWhitespace(new_raw_user_name, true); - if (NULL != UserManager::Get()->GetSupervisedUserManager()-> - FindByDisplayName(new_user_name)) { + if (NULL != + ChromeUserManager::Get()->GetSupervisedUserManager()->FindByDisplayName( + new_user_name)) { CallJS("supervisedUserNameError", new_user_name, l10n_util::GetStringFUTF16( IDS_CREATE_SUPERVISED_USER_CREATE_USERNAME_ALREADY_EXISTS, @@ -384,7 +388,7 @@ void SupervisedUserCreationScreenHandler::HandleAuthenticateManager( gaia::SanitizeEmail(raw_manager_username); UserFlow* flow = new SupervisedUserCreationFlow(manager_username); - UserManager::Get()->SetUserFlow(manager_username, flow); + ChromeUserManager::Get()->SetUserFlow(manager_username, flow); delegate_->AuthenticateManager(manager_username, manager_password); } diff --git a/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc index 8bf0287..898827b 100644 --- a/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc @@ -15,13 +15,14 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/base/locale_util.h" #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" #include "chrome/common/pref_names.h" #include "chromeos/ime/input_method_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_ui.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -84,9 +85,11 @@ void TermsOfServiceScreenHandler::Show() { const std::string locale = ProfileHelper::Get() - ->GetProfileByUserUnsafe(UserManager::Get()->GetActiveUser()) + ->GetProfileByUserUnsafe( + user_manager::UserManager::Get()->GetActiveUser()) ->GetPrefs() ->GetString(prefs::kApplicationLocale); + if (locale.empty() || locale == g_browser_process->GetApplicationLocale()) { // If the user has not chosen a UI locale yet or the chosen locale matches // the current UI locale, show the screen immediately. @@ -151,7 +154,8 @@ void TermsOfServiceScreenHandler::DoShow() { std::vector<std::string> input_methods; base::SplitString( ProfileHelper::Get() - ->GetProfileByUserUnsafe(UserManager::Get()->GetActiveUser()) + ->GetProfileByUserUnsafe( + user_manager::UserManager::Get()->GetActiveUser()) ->GetPrefs() ->GetString(prefs::kLanguagePreloadEngines), ',', diff --git a/chrome/browser/ui/webui/chromeos/ui_account_tweaks.cc b/chrome/browser/ui/webui/chromeos/ui_account_tweaks.cc index 3257cb4..3e1727b 100644 --- a/chrome/browser/ui/webui/chromeos/ui_account_tweaks.cc +++ b/chrome/browser/ui/webui/chromeos/ui_account_tweaks.cc @@ -6,10 +6,10 @@ #include "base/strings/utf_string_conversions.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_ui_data_source.h" namespace chromeos { @@ -23,20 +23,22 @@ void AddAccountUITweaksLocalizedValues( CrosSettings::Get()->GetString(kDeviceOwner, &owner_email); // Translate owner's email to the display email. std::string display_email = - UserManager::Get()->GetUserDisplayEmail(owner_email); + user_manager::UserManager::Get()->GetUserDisplayEmail(owner_email); localized_strings->SetString("ownerUserId", display_email); localized_strings->SetBoolean("currentUserIsOwner", ProfileHelper::IsOwnerProfile(profile)); - localized_strings->SetBoolean("loggedInAsGuest", - UserManager::Get()->IsLoggedInAsGuest()); + localized_strings->SetBoolean( + "loggedInAsGuest", user_manager::UserManager::Get()->IsLoggedInAsGuest()); - localized_strings->SetBoolean("loggedInAsSupervisedUser", - UserManager::Get()->IsLoggedInAsSupervisedUser()); + localized_strings->SetBoolean( + "loggedInAsSupervisedUser", + user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()); - localized_strings->SetBoolean("loggedInAsPublicAccount", - UserManager::Get()->IsLoggedInAsPublicAccount()); + localized_strings->SetBoolean( + "loggedInAsPublicAccount", + user_manager::UserManager::Get()->IsLoggedInAsPublicAccount()); } void AddAccountUITweaksLocalizedValues( diff --git a/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc b/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc index ceacefd..2a611c1 100644 --- a/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc +++ b/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc @@ -15,11 +15,11 @@ #include "base/strings/string_util.h" #include "base/sys_info.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/common/extensions/extension_constants.h" #include "chromeos/chromeos_switches.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_data_source.h" #include "extensions/common/extension.h" @@ -199,9 +199,8 @@ void KioskAppsHandler::OnKioskExtensionDownloadFailed( void KioskAppsHandler::OnGetConsumerKioskAutoLaunchStatus( chromeos::KioskAppManager::ConsumerKioskAutoLaunchStatus status) { initialized_ = true; - is_kiosk_enabled_ = - chromeos::UserManager::Get()->IsCurrentUserOwner() || - !base::SysInfo::IsRunningOnChromeOS(); + is_kiosk_enabled_ = user_manager::UserManager::Get()->IsCurrentUserOwner() || + !base::SysInfo::IsRunningOnChromeOS(); is_auto_launch_enabled_ = status == KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_ENABLED || diff --git a/chrome/browser/ui/webui/flags_ui.cc b/chrome/browser/ui/webui/flags_ui.cc index 64fe3d9..5301a5b 100644 --- a/chrome/browser/ui/webui/flags_ui.cc +++ b/chrome/browser/ui/webui/flags_ui.cc @@ -34,7 +34,6 @@ #if defined(OS_CHROMEOS) #include "base/sys_info.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/ownership/owner_settings_service.h" #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -42,6 +41,7 @@ #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager_client.h" #include "components/pref_registry/pref_registry_syncable.h" +#include "components/user_manager/user_manager.h" #endif using content::WebContents; @@ -75,7 +75,7 @@ content::WebUIDataSource* CreateFlagsUIHTMLSource() { source->AddLocalizedString("enable", IDS_FLAGS_ENABLE); #if defined(OS_CHROMEOS) - if (!chromeos::UserManager::Get()->IsCurrentUserOwner() && + if (!user_manager::UserManager::Get()->IsCurrentUserOwner() && base::SysInfo::IsRunningOnChromeOS()) { // Set the strings to show which user can actually change the flags. std::string owner; @@ -231,9 +231,10 @@ void FlagsDOMHandler::HandleRestartBrowser(const base::ListValue* args) { // argv[0] is the program name |CommandLine::NO_PROGRAM|. flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end()); VLOG(1) << "Restarting to apply per-session flags..."; - chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> - SetFlagsForUser(chromeos::UserManager::Get()->GetActiveUser()->email(), - flags); + chromeos::DBusThreadManager::Get() + ->GetSessionManagerClient() + ->SetFlagsForUser( + user_manager::UserManager::Get()->GetActiveUser()->email(), flags); #endif chrome::AttemptRestart(); } diff --git a/chrome/browser/ui/webui/help/help_handler.cc b/chrome/browser/ui/webui/help/help_handler.cc index 9fca84e..5ec3aa5 100644 --- a/chrome/browser/ui/webui/help/help_handler.cc +++ b/chrome/browser/ui/webui/help/help_handler.cc @@ -44,7 +44,6 @@ #include "base/i18n/time_formatting.h" #include "base/prefs/pref_service.h" #include "base/sys_info.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/profiles/profile.h" @@ -52,6 +51,7 @@ #include "chromeos/chromeos_switches.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/power_manager_client.h" +#include "components/user_manager/user_manager.h" #endif using base::ListValue; @@ -92,14 +92,15 @@ bool CanChangeChannel() { return false; // Get the currently logged in user and strip the domain part only. std::string domain = ""; - std::string user = chromeos::UserManager::Get()->GetLoggedInUser()->email(); + std::string user = + user_manager::UserManager::Get()->GetLoggedInUser()->email(); size_t at_pos = user.find('@'); if (at_pos != std::string::npos && at_pos + 1 < user.length()) domain = user.substr(user.find('@') + 1); policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); return domain == connector->GetEnterpriseDomain(); - } else if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { + } else if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { // On non managed machines we have local owner who is the only one to change // anything. Ensure that ReleaseChannelDelegated is false. return !value; @@ -430,7 +431,7 @@ void HelpHandler::SetChannel(const base::ListValue* args) { version_updater_->SetChannel(base::UTF16ToUTF8(channel), is_powerwash_allowed); - if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { + if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { // Check for update after switching release channel. version_updater_->CheckForUpdate(base::Bind(&HelpHandler::SetUpdateStatus, base::Unretained(this))); diff --git a/chrome/browser/ui/webui/help/version_updater_chromeos.cc b/chrome/browser/ui/webui/help/version_updater_chromeos.cc index e6c2f2a..ac87357 100644 --- a/chrome/browser/ui/webui/help/version_updater_chromeos.cc +++ b/chrome/browser/ui/webui/help/version_updater_chromeos.cc @@ -10,7 +10,6 @@ #include "base/bind_helpers.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/startup_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" @@ -20,6 +19,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "third_party/cros_system_api/dbus/service_constants.h" @@ -28,7 +28,7 @@ using chromeos::CrosSettings; using chromeos::DBusThreadManager; using chromeos::UpdateEngineClient; -using chromeos::UserManager; +using user_manager::UserManager; using chromeos::WizardController; namespace { @@ -128,7 +128,7 @@ void VersionUpdaterCros::RelaunchBrowser() const { void VersionUpdaterCros::SetChannel(const std::string& channel, bool is_powerwash_allowed) { - if (UserManager::Get()->IsCurrentUserOwner()) { + if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { // For local owner set the field in the policy blob. CrosSettings::Get()->SetString(chromeos::kReleaseChannel, channel); } diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc index 84f0263..d33ad33 100644 --- a/chrome/browser/ui/webui/options/browser_options_handler.cc +++ b/chrome/browser/ui/webui/options/browser_options_handler.cc @@ -105,7 +105,6 @@ #include "ash/shell.h" #include "chrome/browser/chromeos/accessibility/accessibility_util.h" #include "chrome/browser/chromeos/chromeos_utils.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -122,6 +121,7 @@ #include "components/policy/core/common/policy_namespace.h" #include "components/policy/core/common/policy_service.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" #include "policy/policy_constants.h" #include "policy/proto/device_management_backend.pb.h" #include "ui/gfx/image/image_skia.h" @@ -942,8 +942,8 @@ void BrowserOptionsHandler::InitializePage() { policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); if (!connector->IsEnterpriseManaged() && - !chromeos::UserManager::Get()->IsLoggedInAsGuest() && - !chromeos::UserManager::Get()->IsLoggedInAsSupervisedUser()) { + !user_manager::UserManager::Get()->IsLoggedInAsGuest() && + !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) { web_ui()->CallJavascriptFunction( "BrowserOptions.enableFactoryResetSection"); } @@ -958,7 +958,7 @@ void BrowserOptionsHandler::InitializePage() { OnWallpaperManagedChanged( chromeos::WallpaperManager::Get()->IsPolicyControlled( - chromeos::UserManager::Get()->GetActiveUser()->email())); + user_manager::UserManager::Get()->GetActiveUser()->email())); #endif } @@ -1351,7 +1351,8 @@ void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) { #if defined(OS_CHROMEOS) void BrowserOptionsHandler::UpdateAccountPicture() { - std::string email = chromeos::UserManager::Get()->GetLoggedInUser()->email(); + std::string email = + user_manager::UserManager::Get()->GetLoggedInUser()->email(); if (!email.empty()) { web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture"); base::StringValue email_value(email); diff --git a/chrome/browser/ui/webui/options/chromeos/accounts_options_browsertest.cc b/chrome/browser/ui/webui/options/chromeos/accounts_options_browsertest.cc index f2b4880..db1d4fa 100644 --- a/chrome/browser/ui/webui/options/chromeos/accounts_options_browsertest.cc +++ b/chrome/browser/ui/webui/options/chromeos/accounts_options_browsertest.cc @@ -8,7 +8,6 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -18,6 +17,7 @@ #include "chrome/common/pref_names.h" #include "chrome/test/base/ui_test_utils.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_utils.h" @@ -136,7 +136,7 @@ IN_PROC_BROWSER_TEST_F(AccountsOptionsTest, MultiProfilesAccountsOptions) { content::RunAllPendingInMessageLoop(); AddUser(kTestUsers[1]); - UserManager* manager = UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); ASSERT_EQ(2u, manager->GetLoggedInUsers().size()); CheckAccountsUI(manager->FindUser(kTestUsers[0]), true /* is_owner */); diff --git a/chrome/browser/ui/webui/options/chromeos/accounts_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/accounts_options_handler.cc index 856945f..f3c2ebb 100644 --- a/chrome/browser/ui/webui/options/chromeos/accounts_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/accounts_options_handler.cc @@ -14,11 +14,12 @@ #include "base/strings/utf_string_conversions.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/settings/cros_settings.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chromeos/ui_account_tweaks.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_ui.h" #include "google_apis/gaia/gaia_auth_util.h" #include "grit/generated_resources.h" @@ -115,7 +116,7 @@ void AccountsOptionsHandler::HandleUnwhitelistUser( base::StringValue canonical_email(gaia::CanonicalizeEmail(email)); CrosSettings::Get()->RemoveFromList(kAccountsPrefUsers, &canonical_email); - UserManager::Get()->RemoveUser(email, NULL); + user_manager::UserManager::Get()->RemoveUser(email, NULL); } void AccountsOptionsHandler::HandleWhitelistExistingUsers( @@ -134,7 +135,8 @@ void AccountsOptionsHandler::HandleWhitelistExistingUsers( else new_list.reset(new base::ListValue); - const user_manager::UserList& users = UserManager::Get()->GetUsers(); + const user_manager::UserList& users = + user_manager::UserManager::Get()->GetUsers(); for (user_manager::UserList::const_iterator it = users.begin(); it < users.end(); ++it) diff --git a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc index bf64a89..4e95b8d 100644 --- a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc @@ -16,7 +16,7 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/camera_presence_notifier.h" #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_window.h" @@ -28,6 +28,7 @@ #include "components/user_manager/user.h" #include "components/user_manager/user_image/default_user_images.h" #include "components/user_manager/user_image/user_image.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/web_ui.h" @@ -312,7 +313,7 @@ void ChangePictureOptionsHandler::SendProfileImage(const gfx::ImageSkia& image, void ChangePictureOptionsHandler::UpdateProfileImage() { UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(GetUser()->email()); + ChromeUserManager::Get()->GetUserImageManager(GetUser()->email()); // If we have a downloaded profile image and haven't sent it in // |SendSelectedImage|, send it now (without selecting). if (previous_image_index_ != user_manager::User::USER_IMAGE_PROFILE && @@ -343,7 +344,7 @@ void ChangePictureOptionsHandler::HandleSelectImage( DCHECK(!image_type.empty()); UserImageManager* user_image_manager = - UserManager::Get()->GetUserImageManager(GetUser()->email()); + ChromeUserManager::Get()->GetUserImageManager(GetUser()->email()); int image_index = user_manager::User::USER_IMAGE_INVALID; bool waiting_for_camera_photo = false; @@ -403,9 +404,9 @@ void ChangePictureOptionsHandler::HandleSelectImage( void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path, int index, void* params) { - UserManager* user_manager = UserManager::Get(); - user_manager->GetUserImageManager(GetUser()->email())-> - SaveUserImageFromFile(path); + ChromeUserManager::Get() + ->GetUserImageManager(GetUser()->email()) + ->SaveUserImageFromFile(path); UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", user_manager::kHistogramImageFromFile, user_manager::kHistogramImagesCount); @@ -414,8 +415,8 @@ void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path, void ChangePictureOptionsHandler::SetImageFromCamera( const gfx::ImageSkia& photo) { - UserManager* user_manager = UserManager::Get(); - user_manager->GetUserImageManager(GetUser()->email()) + ChromeUserManager::Get() + ->GetUserImageManager(GetUser()->email()) ->SaveUserImage(user_manager::UserImage::CreateAndEncode(photo)); UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", user_manager::kHistogramImageFromCamera, @@ -475,7 +476,7 @@ user_manager::User* ChangePictureOptionsHandler::GetUser() const { Profile* profile = Profile::FromWebUI(web_ui()); user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile); if (!user) - return UserManager::Get()->GetActiveUser(); + return user_manager::UserManager::Get()->GetActiveUser(); return user; } diff --git a/chrome/browser/ui/webui/options/chromeos/consumer_management_handler.cc b/chrome/browser/ui/webui/options/chromeos/consumer_management_handler.cc index 8acec3a..d1d9044 100644 --- a/chrome/browser/ui/webui/options/chromeos/consumer_management_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/consumer_management_handler.cc @@ -8,10 +8,10 @@ #include "base/bind_helpers.h" #include "base/logging.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/consumer_management_service.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/power_manager_client.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_ui.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -77,7 +77,7 @@ void ConsumerManagementHandler::RegisterMessages() { void ConsumerManagementHandler::HandleEnrollConsumerManagement( const base::ListValue* args) { - if (!chromeos::UserManager::Get()->IsCurrentUserOwner()) { + if (!user_manager::UserManager::Get()->IsCurrentUserOwner()) { LOG(ERROR) << "Received enrollConsumerManagement, but the current user is " << "not the owner."; return; diff --git a/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc index c6bbe70..9795f4b 100644 --- a/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc @@ -16,7 +16,6 @@ #include "base/sys_info.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/proxy_cros_settings_parser.h" @@ -27,6 +26,7 @@ #include "chrome/browser/ui/webui/options/chromeos/accounts_options_handler.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_ui.h" @@ -59,7 +59,7 @@ base::DictionaryValue* CreateUserInfo(const std::string& username, user_dict->SetString("name", display_email); user_dict->SetString("email", display_name); - bool is_owner = UserManager::Get()->GetOwnerEmail() == username; + bool is_owner = user_manager::UserManager::Get()->GetOwnerEmail() == username; user_dict->SetBoolean("owner", is_owner); return user_dict; } @@ -70,7 +70,7 @@ base::Value* CreateUsersWhitelist(const base::Value *pref_value) { const base::ListValue* list_value = static_cast<const base::ListValue*>(pref_value); base::ListValue* user_list = new base::ListValue(); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); for (base::ListValue::const_iterator i = list_value->begin(); i != list_value->end(); ++i) { @@ -246,7 +246,7 @@ base::Value* CoreChromeOSOptionsHandler::CreateValueForPref( // The screen lock setting is shared if multiple users are logged in and at // least one has chosen to require passwords. if (pref_name == prefs::kEnableAutoScreenLock && - UserManager::Get()->GetLoggedInUsers().size() > 1 && + user_manager::UserManager::Get()->GetLoggedInUsers().size() > 1 && controlling_pref_name.empty()) { PrefService* user_prefs = Profile::FromWebUI(web_ui())->GetPrefs(); const PrefService::Preference* pref = @@ -283,7 +283,7 @@ void CoreChromeOSOptionsHandler::GetLocalizedValues( Profile* profile = Profile::FromWebUI(web_ui()); AddAccountUITweaksLocalizedValues(localized_strings, profile); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Check at load time whether this is a secondary user in a multi-profile // session. diff --git a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc index e31aa31..c4f599f 100644 --- a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc @@ -11,7 +11,6 @@ #include "base/values.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/chromeos/input_method/input_method_util.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/lifetime/application_lifetime.h" @@ -25,6 +24,7 @@ #include "chromeos/ime/component_extension_ime_manager.h" #include "chromeos/ime/extension_ime_util.h" #include "chromeos/ime/input_method_manager.h" +#include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/user_metrics.h" @@ -184,7 +184,7 @@ base::string16 CrosLanguageOptionsHandler::GetProductName() { void CrosLanguageOptionsHandler::SetApplicationLocale( const std::string& language_code) { Profile* profile = Profile::FromWebUI(web_ui()); - UserManager* user_manager = UserManager::Get(); + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); // Secondary users and public session users cannot change the locale. user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile); diff --git a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc index 88dd983..b7dc0ec 100644 --- a/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc +++ b/chrome/browser/ui/webui/options/chromeos/shared_options_browsertest.cc @@ -9,7 +9,6 @@ #include "chrome/browser/chromeos/login/login_manager_test.h" #include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -19,6 +18,7 @@ #include "chrome/common/pref_names.h" #include "chrome/test/base/ui_test_utils.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_utils.h" @@ -273,7 +273,7 @@ IN_PROC_BROWSER_TEST_F(SharedOptionsTest, SharedOptions) { content::RunAllPendingInMessageLoop(); AddUser(kTestNonOwner); - UserManager* manager = UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); ASSERT_EQ(2u, manager->GetLoggedInUsers().size()); { SCOPED_TRACE("Checking settings for owner, primary user."); @@ -304,7 +304,7 @@ IN_PROC_BROWSER_TEST_F(SharedOptionsTest, ScreenLockPreferencePrimary) { content::RunAllPendingInMessageLoop(); AddUser(kTestNonOwner); - UserManager* manager = UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); const user_manager::User* user1 = manager->FindUser(kTestOwner); const user_manager::User* user2 = manager->FindUser(kTestNonOwner); @@ -375,7 +375,7 @@ IN_PROC_BROWSER_TEST_F(SharedOptionsTest, ScreenLockPreferenceSecondary) { content::RunAllPendingInMessageLoop(); AddUser(kTestNonOwner); - UserManager* manager = UserManager::Get(); + user_manager::UserManager* manager = user_manager::UserManager::Get(); const user_manager::User* user1 = manager->FindUser(kTestOwner); const user_manager::User* user2 = manager->FindUser(kTestNonOwner); diff --git a/chrome/browser/ui/webui/options/chromeos/user_image_source.cc b/chrome/browser/ui/webui/options/chromeos/user_image_source.cc index 54b1b46c..4ace6c1 100644 --- a/chrome/browser/ui/webui/options/chromeos/user_image_source.cc +++ b/chrome/browser/ui/webui/options/chromeos/user_image_source.cc @@ -7,9 +7,9 @@ #include "base/memory/ref_counted_memory.h" #include "base/message_loop/message_loop.h" #include "base/strings/string_split.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/common/url_constants.h" #include "components/user_manager/user_image/default_user_images.h" +#include "components/user_manager/user_manager.h" #include "grit/theme_resources.h" #include "grit/ui_chromeos_resources.h" #include "net/base/escape.h" @@ -39,7 +39,7 @@ base::RefCountedMemory* UserImageSource::GetUserImage( const std::string& email, ui::ScaleFactor scale_factor) const { const user_manager::User* user = - chromeos::UserManager::Get()->FindUser(email); + user_manager::UserManager::Get()->FindUser(email); if (user) { if (user->has_raw_image()) { return new base::RefCountedBytes(user->raw_image()); diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc index 531952e..c3ad979 100644 --- a/chrome/browser/ui/webui/options/content_settings_handler.cc +++ b/chrome/browser/ui/webui/options/content_settings_handler.cc @@ -52,7 +52,7 @@ #include "ui/base/l10n/l10n_util.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "components/user_manager/user_manager.h" #endif using base::UserMetricsAction; @@ -1316,7 +1316,7 @@ void ContentSettingsHandler::SetContentFilter(const base::ListValue* args) { #if defined(OS_CHROMEOS) // ChromeOS special case : in Guest mode settings are opened in Incognito // mode, so we need original profile to actually modify settings. - if (chromeos::UserManager::Get()->IsLoggedInAsGuest()) + if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) profile = profile->GetOriginalProfile(); #endif diff --git a/chrome/browser/ui/webui/policy_ui.cc b/chrome/browser/ui/webui/policy_ui.cc index b70dfc7..49eecaa 100644 --- a/chrome/browser/ui/webui/policy_ui.cc +++ b/chrome/browser/ui/webui/policy_ui.cc @@ -55,12 +55,12 @@ #include "ui/base/l10n/time_format.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" +#include "components/user_manager/user_manager.h" #else #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" @@ -536,7 +536,8 @@ void PolicyUIHandler::RegisterMessages() { if (connector->IsEnterpriseManaged()) device_status_provider_.reset(new DevicePolicyStatusProvider(connector)); - const chromeos::UserManager* user_manager = chromeos::UserManager::Get(); + const user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); if (user_manager->IsLoggedInAsPublicAccount()) { policy::DeviceLocalAccountPolicyService* local_account_service = connector->GetDeviceLocalAccountPolicyService(); diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 07d3bbc..3c7ba76 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -3182,6 +3182,7 @@ ], 'dependencies': [ 'browser_chromeos', + '../components/components.gyp:user_manager', '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_resources', ], }, { # Non-ChromeOS. diff --git a/chrome/chrome_browser_chromeos.gypi b/chrome/chrome_browser_chromeos.gypi index 4381318..67ce748 100644 --- a/chrome/chrome_browser_chromeos.gypi +++ b/chrome/chrome_browser_chromeos.gypi @@ -726,17 +726,18 @@ 'browser/chromeos/login/users/avatar/user_image_sync_observer.h', 'browser/chromeos/login/users/chrome_user_manager.cc', 'browser/chromeos/login/users/chrome_user_manager.h', + 'browser/chromeos/login/users/chrome_user_manager_impl.cc', + 'browser/chromeos/login/users/chrome_user_manager_impl.h', 'browser/chromeos/login/users/multi_profile_user_controller.cc', 'browser/chromeos/login/users/multi_profile_user_controller.h', 'browser/chromeos/login/users/multi_profile_user_controller_delegate.h', - 'browser/chromeos/login/users/remove_user_delegate.h', + 'browser/chromeos/login/users/scoped_test_user_manager.cc', + 'browser/chromeos/login/users/scoped_test_user_manager.h', + 'browser/chromeos/login/users/scoped_user_manager_enabler.cc', + 'browser/chromeos/login/users/scoped_user_manager_enabler.h', 'browser/chromeos/login/users/supervised_user_manager.h', 'browser/chromeos/login/users/supervised_user_manager_impl.cc', 'browser/chromeos/login/users/supervised_user_manager_impl.h', - 'browser/chromeos/login/users/user_manager.cc', - 'browser/chromeos/login/users/user_manager.h', - 'browser/chromeos/login/users/user_manager_base.cc', - 'browser/chromeos/login/users/user_manager_base.h', 'browser/chromeos/login/users/wallpaper/wallpaper_manager.cc', 'browser/chromeos/login/users/wallpaper/wallpaper_manager.h', 'browser/chromeos/login/version_info_updater.cc', diff --git a/chrome/test/base/browser_with_test_window_test.h b/chrome/test/base/browser_with_test_window_test.h index cc5cde8..cb65ebc 100644 --- a/chrome/test/base/browser_with_test_window_test.h +++ b/chrome/test/base/browser_with_test_window_test.h @@ -16,7 +16,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/users/user_manager.h" +#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #endif diff --git a/components/user_manager.gypi b/components/user_manager.gypi index f65fb3a..8aa5e8c 100644 --- a/components/user_manager.gypi +++ b/components/user_manager.gypi @@ -16,12 +16,17 @@ ], # Chrome OS user_manager sources. 'user_manager_chromeos_sources': [ + 'user_manager/remove_user_delegate.h', 'user_manager/user_image/default_user_images.cc', 'user_manager/user_image/default_user_images.h', 'user_manager/user_image/user_image.cc', 'user_manager/user_image/user_image.h', 'user_manager/user.cc', 'user_manager/user.h', + 'user_manager/user_manager.cc', + 'user_manager/user_manager.h', + 'user_manager/user_manager_base.cc', + 'user_manager/user_manager_base.h', 'user_manager/user_type.h', ], }, @@ -45,6 +50,8 @@ 'conditions': [ ['chromeos == 1', { 'dependencies': [ + '<(DEPTH)/base/base.gyp:base_prefs', + '<(DEPTH)/components/components.gyp:session_manager_component', '<(DEPTH)/google_apis/google_apis.gyp:google_apis', '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos_resources', '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos_strings', diff --git a/components/user_manager/DEPS b/components/user_manager/DEPS index 2cbd1db..f3fe77c 100644 --- a/components/user_manager/DEPS +++ b/components/user_manager/DEPS @@ -1,5 +1,9 @@ include_rules = [ +"+chromeos/chromeos_switches.h", +"+chromeos/cryptohome/async_method_caller.h", +"+chromeos/login/login_state.h", "+chromeos/login/user_names.h", +"+components/session_manager/core/session_manager.h", "+google_apis/gaia/gaia_auth_util.h", "+grit/ui_chromeos_resources.h", "+grit/ui_chromeos_strings.h", diff --git a/chrome/browser/chromeos/login/users/remove_user_delegate.h b/components/user_manager/remove_user_delegate.h index efdb7ee..1077bda 100644 --- a/chrome/browser/chromeos/login/users/remove_user_delegate.h +++ b/components/user_manager/remove_user_delegate.h @@ -2,13 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_REMOVE_USER_DELEGATE_H_ -#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_REMOVE_USER_DELEGATE_H_ +#ifndef COMPONENTS_USER_MANAGER_REMOVE_USER_DELEGATE_H_ +#define COMPONENTS_USER_MANAGER_REMOVE_USER_DELEGATE_H_ -namespace chromeos { +#include "components/user_manager/user_manager_export.h" + +namespace user_manager { // Delegate to be used with |UserManager::RemoveUser|. -class RemoveUserDelegate { +class USER_MANAGER_EXPORT RemoveUserDelegate { public: // Called right before actual user removal process is initiated. virtual void OnBeforeUserRemoved(const std::string& username) = 0; @@ -17,6 +19,6 @@ class RemoveUserDelegate { virtual void OnUserRemoved(const std::string& username) = 0; }; -} // namespace chromeos +} // namespace user_manager -#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_REMOVE_USER_DELEGATE_H_ +#endif // COMPONENTS_USER_MANAGER_REMOVE_USER_DELEGATE_H_ diff --git a/components/user_manager/user.h b/components/user_manager/user.h index 23e8230..5ff8a10 100644 --- a/components/user_manager/user.h +++ b/components/user_manager/user.h @@ -18,19 +18,20 @@ #include "ui/gfx/image/image_skia.h" namespace chromeos { -class ChromeUserManager; +class ChromeUserManagerImpl; class FakeLoginUtils; class FakeUserManager; class MockUserManager; class SupervisedUserManagerImpl; class UserAddingScreenTest; class UserImageManagerImpl; -class UserManagerBase; class UserSessionManager; } namespace user_manager { +class UserManagerBase; + // A class representing information about a previously logged in user. // Each user has a canonical email (username), returned by |email()| and // may have a different displayed email (in the raw form as entered by user), @@ -148,10 +149,10 @@ class USER_MANAGER_EXPORT User : public UserInfo { bool is_profile_created() const { return profile_is_created_; } protected: - friend class chromeos::ChromeUserManager; + friend class UserManagerBase; + friend class chromeos::ChromeUserManagerImpl; friend class chromeos::SupervisedUserManagerImpl; friend class chromeos::UserImageManagerImpl; - friend class chromeos::UserManagerBase; friend class chromeos::UserSessionManager; // For testing: diff --git a/components/user_manager/user_manager.cc b/components/user_manager/user_manager.cc new file mode 100644 index 0000000..597407f --- /dev/null +++ b/components/user_manager/user_manager.cc @@ -0,0 +1,85 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/user_manager/user_manager.h" + +#include "base/logging.h" + +namespace user_manager { + +UserManager* UserManager::instance = NULL; + +UserManager::Observer::~Observer() { +} + +void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { +} + +void UserManager::UserSessionStateObserver::ActiveUserChanged( + const User* active_user) { +} + +void UserManager::UserSessionStateObserver::UserAddedToSession( + const User* active_user) { +} + +void UserManager::UserSessionStateObserver::ActiveUserHashChanged( + const std::string& hash) { +} + +UserManager::UserSessionStateObserver::~UserSessionStateObserver() { +} + +UserManager::UserAccountData::UserAccountData( + const base::string16& display_name, + const base::string16& given_name, + const std::string& locale) + : display_name_(display_name), given_name_(given_name), locale_(locale) { +} + +UserManager::UserAccountData::~UserAccountData() { +} + +void UserManager::Initialize() { + DCHECK(!UserManager::instance); + UserManager::SetInstance(this); +} + +// static +bool UserManager::IsInitialized() { + return UserManager::instance; +} + +void UserManager::Destroy() { + DCHECK(UserManager::instance == this); + UserManager::SetInstance(NULL); +} + +// static +UserManager* user_manager::UserManager::Get() { + CHECK(UserManager::instance); + return UserManager::instance; +} + +UserManager::~UserManager() { +} + +// static +void UserManager::SetInstance(UserManager* user_manager) { + UserManager::instance = user_manager; +} + +// static +UserManager* user_manager::UserManager::GetForTesting() { + return UserManager::instance; +} + +// static +UserManager* UserManager::SetForTesting(UserManager* user_manager) { + UserManager* previous_instance = UserManager::instance; + UserManager::instance = user_manager; + return previous_instance; +} + +} // namespace user_manager diff --git a/chrome/browser/chromeos/login/users/user_manager.h b/components/user_manager/user_manager.h index 8b2d961..e775279 100644 --- a/chrome/browser/chromeos/login/users/user_manager.h +++ b/components/user_manager/user_manager.h @@ -2,26 +2,28 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_ -#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_ +#ifndef COMPONENTS_USER_MANAGER_USER_MANAGER_H_ +#define COMPONENTS_USER_MANAGER_USER_MANAGER_H_ #include <string> -#include "chrome/browser/chromeos/login/user_flow.h" #include "components/user_manager/user.h" - -class PrefRegistrySimple; +#include "components/user_manager/user_manager_export.h" namespace chromeos { +class ScopedUserManagerEnabler; +} + +namespace user_manager { -class MultiProfileUserController; class RemoveUserDelegate; -class UserImageManager; -class SupervisedUserManager; -// Interface for UserManagerBase - provides a mechanism for discovering users -// who have logged into this Chrome OS device before and updating that list. -class UserManager { +// Interface for UserManagerBase - that provides base implementation for +// Chrome OS user management. Typical features: +// * Get list of all know users (who have logged into this Chrome OS device) +// * Keep track for logged in/LRU users, active user in multi-user session. +// * Find/modify users, store user meta-data such as display name/email. +class USER_MANAGER_EXPORT UserManager { public: // Interface that observers of UserManager must implement in order // to receive notification when local state preferences is changed @@ -40,10 +42,10 @@ class UserManager { class UserSessionStateObserver { public: // Called when active user has changed. - virtual void ActiveUserChanged(const user_manager::User* active_user); + virtual void ActiveUserChanged(const User* active_user); // Called when another user got added to the existing session. - virtual void UserAddedToSession(const user_manager::User* added_user); + virtual void UserAddedToSession(const User* added_user); // Called right before notifying on user change so that those who rely // on user_id hash would be accessing up-to-date value. @@ -72,12 +74,14 @@ class UserManager { DISALLOW_COPY_AND_ASSIGN(UserAccountData); }; - // Creates the singleton instance. This method is not thread-safe and must be - // called from the main UI thread. - static void Initialize(); + // Initializes UserManager instance to this. Normally should be called right + // after creation so that user_manager::UserManager::Get() doesn't fail. + // Tests could call this method if they are replacing existing UserManager + // instance with their own test instance. + void Initialize(); - // Checks whether the singleton instance has been created already. This method - // is not thread-safe and must be called from the main UI thread. + // Checks whether the UserManager instance has been created already. + // This method is not thread-safe and must be called from the main UI thread. static bool IsInitialized(); // Shuts down the UserManager. After this method has been called, the @@ -86,27 +90,20 @@ class UserManager { // thread-safe and must be called from the main UI thread. virtual void Shutdown() = 0; - // Destroys the singleton instance. Always call Shutdown() first. This method - // is not thread-safe and must be called from the main UI thread. - static void Destroy(); + // Sets UserManager instance to NULL. Always call Shutdown() first. + // This method is not thread-safe and must be called from the main UI thread. + void Destroy(); - // Returns the singleton instance or |NULL| if the singleton has either not - // been created yet or is already destroyed. This method is not thread-safe + // Returns UserManager instance or will crash if it is |NULL| (has either not + // been created yet or is already destroyed). This method is not thread-safe // and must be called from the main UI thread. static UserManager* Get(); - // Registers user manager preferences. - static void RegisterPrefs(PrefRegistrySimple* registry); - virtual ~UserManager(); - virtual MultiProfileUserController* GetMultiProfileUserController() = 0; - virtual UserImageManager* GetUserImageManager(const std::string& user_id) = 0; - virtual SupervisedUserManager* GetSupervisedUserManager() = 0; - // Returns a list of users who have logged into this device previously. This // is sorted by last login date with the most recent user at the beginning. - virtual const user_manager::UserList& GetUsers() const = 0; + virtual const UserList& GetUsers() const = 0; // Returns list of users admitted for logging in into multi-profile session. // Users that have a policy that prevents them from being added to the @@ -114,15 +111,15 @@ class UserManager { // are regular users (i.e. not a public session/supervised etc.). // Returns an empty list in case when primary user is not a regular one or // has a policy that prohibids it to be part of multi-profile session. - virtual user_manager::UserList GetUsersAdmittedForMultiProfile() const = 0; + virtual UserList GetUsersAdmittedForMultiProfile() const = 0; // Returns a list of users who are currently logged in. - virtual const user_manager::UserList& GetLoggedInUsers() const = 0; + virtual const UserList& GetLoggedInUsers() const = 0; // Returns a list of users who are currently logged in in the LRU order - // so the active user is the first one in the list. If there is no user logged // in, the current user will be returned. - virtual const user_manager::UserList& GetLRULoggedInUsers() const = 0; + virtual const UserList& GetLRULoggedInUsers() const = 0; // Returns a list of users who can unlock the device. // This list is based on policy and whether user is able to do unlock. @@ -130,7 +127,7 @@ class UserManager { // * If user has primary-only policy then it is the only user in unlock users. // * Otherwise all users with unrestricted policy are added to this list. // All users that are unable to perform unlock are excluded from this list. - virtual user_manager::UserList GetUnlockUsers() const = 0; + virtual UserList GetUnlockUsers() const = 0; // Returns the email of the owner user. Returns an empty string if there is // no owner for the device. @@ -173,34 +170,33 @@ class UserManager { // Returns the user with the given user id if found in the persistent // list or currently logged in as ephemeral. Returns |NULL| otherwise. - virtual const user_manager::User* FindUser( - const std::string& user_id) const = 0; + virtual const User* FindUser(const std::string& user_id) const = 0; // Returns the user with the given user id if found in the persistent // list or currently logged in as ephemeral. Returns |NULL| otherwise. // Same as FindUser but returns non-const pointer to User object. - virtual user_manager::User* FindUserAndModify(const std::string& user_id) = 0; + virtual User* FindUserAndModify(const std::string& user_id) = 0; // Returns the logged-in user. // TODO(nkostylev): Deprecate this call, move clients to GetActiveUser(). // http://crbug.com/230852 - virtual const user_manager::User* GetLoggedInUser() const = 0; - virtual user_manager::User* GetLoggedInUser() = 0; + virtual const User* GetLoggedInUser() const = 0; + virtual User* GetLoggedInUser() = 0; // Returns the logged-in user that is currently active within this session. // There could be multiple users logged in at the the same but for now // we support only one of them being active. - virtual const user_manager::User* GetActiveUser() const = 0; - virtual user_manager::User* GetActiveUser() = 0; + virtual const User* GetActiveUser() const = 0; + virtual User* GetActiveUser() = 0; // Returns the primary user of the current session. It is recorded for the // first signed-in user and does not change thereafter. - virtual const user_manager::User* GetPrimaryUser() const = 0; + virtual const User* GetPrimaryUser() const = 0; // Saves user's oauth token status in local state preferences. virtual void SaveUserOAuthStatus( const std::string& user_id, - user_manager::User::OAuthTokenStatus oauth_token_status) = 0; + User::OAuthTokenStatus oauth_token_status) = 0; // Saves a flag indicating whether online authentication against GAIA should // be enforced during the user's next sign-in. @@ -230,8 +226,7 @@ class UserManager { // Returns the display email for user |user_id| if it is known (was // previously set by a |SaveUserDisplayEmail| call). // Otherwise, returns |user_id| itself. - virtual std::string GetUserDisplayEmail( - const std::string& user_id) const = 0; + virtual std::string GetUserDisplayEmail(const std::string& user_id) const = 0; // Returns true if current user is an owner. virtual bool IsCurrentUserOwner() const = 0; @@ -283,25 +278,6 @@ class UserManager { virtual bool IsUserNonCryptohomeDataEphemeral( const std::string& user_id) const = 0; - // Method that allows to set |flow| for user identified by |user_id|. - // Flow should be set before login attempt. - // Takes ownership of the |flow|, |flow| will be deleted in case of login - // failure. - virtual void SetUserFlow(const std::string& user_id, UserFlow* flow) = 0; - - // Return user flow for current user. Returns instance of DefaultUserFlow if - // no flow was defined for current user, or user is not logged in. - // Returned value should not be cached. - virtual UserFlow* GetCurrentUserFlow() const = 0; - - // Return user flow for user identified by |user_id|. Returns instance of - // DefaultUserFlow if no flow was defined for user. - // Returned value should not be cached. - virtual UserFlow* GetUserFlow(const std::string& user_id) const = 0; - - // Resets user flow for user identified by |user_id|. - virtual void ResetUserFlow(const std::string& user_id) = 0; - virtual void AddObserver(Observer* obs) = 0; virtual void RemoveObserver(Observer* obs) = 0; @@ -313,41 +289,28 @@ class UserManager { // Returns true if supervised users allowed. virtual bool AreSupervisedUsersAllowed() const = 0; - private: - friend class ScopedUserManagerEnabler; + protected: + // Sets UserManager instance. + static void SetInstance(UserManager* user_manager); - // Sets the singleton to the given |user_manager|, taking ownership. Returns - // the previous value of the singleton, passing ownership. - static UserManager* SetForTesting(UserManager* user_manager); -}; - -// Helper class for unit tests. Initializes the UserManager singleton to the -// given |user_manager| and tears it down again on destruction. If the singleton -// had already been initialized, its previous value is restored after tearing -// down |user_manager|. -class ScopedUserManagerEnabler { - public: - // Takes ownership of |user_manager|. - explicit ScopedUserManagerEnabler(UserManager* user_manager); - ~ScopedUserManagerEnabler(); + // Pointer to the existing UserManager instance (if any). + // Usually is set by calling Initialize(), reset by calling Destroy(). + // Not owned since specific implementation of UserManager should decide on its + // own appropriate owner. For src/chrome implementation such place is + // g_browser_process->platform_part(). + static UserManager* instance; private: - UserManager* previous_user_manager_; + friend class chromeos::ScopedUserManagerEnabler; - DISALLOW_COPY_AND_ASSIGN(ScopedUserManagerEnabler); -}; - -// Helper class for unit tests. Initializes the UserManager singleton on -// construction and tears it down again on destruction. -class ScopedTestUserManager { - public: - ScopedTestUserManager(); - ~ScopedTestUserManager(); + // Same as Get() but doesn't won't crash is current instance is NULL. + static UserManager* GetForTesting(); - private: - DISALLOW_COPY_AND_ASSIGN(ScopedTestUserManager); + // Sets UserManager instance to the given |user_manager|. + // Returns the previous value of the instance. + static UserManager* SetForTesting(UserManager* user_manager); }; -} // namespace chromeos +} // namespace user_manager -#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_ +#endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_ diff --git a/chrome/browser/chromeos/login/users/user_manager_base.cc b/components/user_manager/user_manager_base.cc index d2d42e4..3914819 100644 --- a/chrome/browser/chromeos/login/users/user_manager_base.cc +++ b/components/user_manager/user_manager_base.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/user_manager_base.h" +#include "components/user_manager/user_manager_base.h" #include <cstddef> #include <set> @@ -12,7 +12,9 @@ #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/format_macros.h" +#include "base/location.h" #include "base/logging.h" +#include "base/macros.h" #include "base/metrics/histogram.h" #include "base/prefs/pref_registry_simple.h" #include "base/prefs/pref_service.h" @@ -20,21 +22,19 @@ #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/task_runner.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/users/remove_user_delegate.h" #include "chromeos/chromeos_switches.h" #include "chromeos/cryptohome/async_method_caller.h" #include "chromeos/login/login_state.h" #include "chromeos/login/user_names.h" #include "components/session_manager/core/session_manager.h" +#include "components/user_manager/remove_user_delegate.h" #include "components/user_manager/user_type.h" -#include "content/public/browser/browser_thread.h" #include "google_apis/gaia/gaia_auth_util.h" #include "ui/base/l10n/l10n_util.h" -using content::BrowserThread; - -namespace chromeos { +namespace user_manager { namespace { // A vector pref of the the regular users known on this device, arranged in LRU @@ -77,20 +77,6 @@ void OnRemoveUserComplete(const std::string& user_email, } } -// Runs on SequencedWorkerPool thread. Passes resolved locale to -// |on_resolve_callback| on UI thread. -void ResolveLocale( - const std::string& raw_locale, - base::Callback<void(const std::string&)> on_resolve_callback) { - DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI)); - std::string resolved_locale; - // Ignore result - l10n_util::CheckAndResolveLocale(raw_locale, &resolved_locale); - BrowserThread::PostTask(BrowserThread::UI, - FROM_HERE, - base::Bind(on_resolve_callback, resolved_locale)); -} - } // namespace // static @@ -104,7 +90,9 @@ void UserManagerBase::RegisterPrefs(PrefRegistrySimple* registry) { registry->RegisterDictionaryPref(kUserForceOnlineSignin); } -UserManagerBase::UserManagerBase() +UserManagerBase::UserManagerBase( + scoped_refptr<base::TaskRunner> task_runner, + scoped_refptr<base::TaskRunner> blocking_task_runner) : active_user_(NULL), primary_user_(NULL), user_loading_stage_(STAGE_NOT_LOADED), @@ -114,15 +102,15 @@ UserManagerBase::UserManagerBase() is_current_user_ephemeral_regular_user_(false), ephemeral_users_enabled_(false), manager_creation_time_(base::TimeTicks::Now()), + task_runner_(task_runner), + blocking_task_runner_(blocking_task_runner), weak_factory_(this) { - // UserManager instance should be used only on UI thread. - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); UpdateLoginState(); } UserManagerBase::~UserManagerBase() { // Can't use STLDeleteElements because of the private destructor of User. - for (user_manager::UserList::iterator it = users_.begin(); it != users_.end(); + for (UserList::iterator it = users_.begin(); it != users_.end(); it = users_.erase(it)) { DeleteUser(*it); } @@ -134,19 +122,19 @@ UserManagerBase::~UserManagerBase() { } void UserManagerBase::Shutdown() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); } -const user_manager::UserList& UserManagerBase::GetUsers() const { +const UserList& UserManagerBase::GetUsers() const { const_cast<UserManagerBase*>(this)->EnsureUsersLoaded(); return users_; } -const user_manager::UserList& UserManagerBase::GetLoggedInUsers() const { +const UserList& UserManagerBase::GetLoggedInUsers() const { return logged_in_users_; } -const user_manager::UserList& UserManagerBase::GetLRULoggedInUsers() const { +const UserList& UserManagerBase::GetLRULoggedInUsers() const { return lru_logged_in_users_; } @@ -157,9 +145,9 @@ const std::string& UserManagerBase::GetOwnerEmail() const { void UserManagerBase::UserLoggedIn(const std::string& user_id, const std::string& username_hash, bool browser_restart) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); - user_manager::User* user = FindUserInListAndModify(user_id); + User* user = FindUserInListAndModify(user_id); if (active_user_ && user) { user->set_is_logged_in(true); user->set_username_hash(username_hash); @@ -184,17 +172,15 @@ void UserManagerBase::UserLoggedIn(const std::string& user_id, } else { EnsureUsersLoaded(); - if (user && user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) { + if (user && user->GetType() == USER_TYPE_PUBLIC_ACCOUNT) { PublicAccountUserLoggedIn(user); - } else if ((user && - user->GetType() == user_manager::USER_TYPE_SUPERVISED) || + } else if ((user && user->GetType() == USER_TYPE_SUPERVISED) || (!user && gaia::ExtractDomainName(user_id) == chromeos::login::kSupervisedUserDomain)) { SupervisedUserLoggedIn(user_id); } else if (browser_restart && IsPublicAccountMarkedForRemoval(user_id)) { - PublicAccountUserLoggedIn( - user_manager::User::CreatePublicAccountUser(user_id)); + PublicAccountUserLoggedIn(User::CreatePublicAccountUser(user_id)); } else if (user_id != GetOwnerEmail() && !user && (AreEphemeralUsersEnabled() || browser_restart)) { RegularUserLoggedInAsEphemeral(user_id); @@ -214,25 +200,23 @@ void UserManagerBase::UserLoggedIn(const std::string& user_id, if (!primary_user_) { primary_user_ = active_user_; - if (primary_user_->GetType() == user_manager::USER_TYPE_REGULAR) + if (primary_user_->GetType() == USER_TYPE_REGULAR) SendRegularUserLoginMetrics(user_id); } - UMA_HISTOGRAM_ENUMERATION("UserManager.LoginUserType", - active_user_->GetType(), - user_manager::NUM_USER_TYPES); + UMA_HISTOGRAM_ENUMERATION( + "UserManager.LoginUserType", active_user_->GetType(), NUM_USER_TYPES); GetLocalState()->SetString( kLastLoggedInRegularUser, - (active_user_->GetType() == user_manager::USER_TYPE_REGULAR) ? user_id - : ""); + (active_user_->GetType() == USER_TYPE_REGULAR) ? user_id : ""); NotifyOnLogin(); PerformPostUserLoggedInActions(browser_restart); } void UserManagerBase::SwitchActiveUser(const std::string& user_id) { - user_manager::User* user = FindUserAndModify(user_id); + User* user = FindUserAndModify(user_id); if (!user) { NOTREACHED() << "Switching to a non-existing user"; return; @@ -245,7 +229,7 @@ void UserManagerBase::SwitchActiveUser(const std::string& user_id) { NOTREACHED() << "Switching to a user that is not logged in"; return; } - if (user->GetType() != user_manager::USER_TYPE_REGULAR) { + if (user->GetType() != USER_TYPE_REGULAR) { NOTREACHED() << "Switching to a non-regular user"; return; } @@ -267,7 +251,7 @@ void UserManagerBase::SwitchActiveUser(const std::string& user_id) { } void UserManagerBase::SessionStarted() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); session_started_ = true; UpdateLoginState(); @@ -282,7 +266,7 @@ void UserManagerBase::SessionStarted() { void UserManagerBase::RemoveUser(const std::string& user_id, RemoveUserDelegate* delegate) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); if (!CanUserBeRemoved(FindUser(user_id))) return; @@ -308,7 +292,7 @@ void UserManagerBase::RemoveNonOwnerUserInternal(const std::string& user_email, } void UserManagerBase::RemoveUserFromList(const std::string& user_id) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); RemoveNonCryptohomeData(user_id); if (user_loading_stage_ == STAGE_LOADED) { DeleteUser(RemoveRegularOrSupervisedUserFromList(user_id)); @@ -332,54 +316,52 @@ bool UserManagerBase::IsKnownUser(const std::string& user_id) const { return FindUser(user_id) != NULL; } -const user_manager::User* UserManagerBase::FindUser( - const std::string& user_id) const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +const User* UserManagerBase::FindUser(const std::string& user_id) const { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); if (active_user_ && active_user_->email() == user_id) return active_user_; return FindUserInList(user_id); } -user_manager::User* UserManagerBase::FindUserAndModify( - const std::string& user_id) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +User* UserManagerBase::FindUserAndModify(const std::string& user_id) { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); if (active_user_ && active_user_->email() == user_id) return active_user_; return FindUserInListAndModify(user_id); } -const user_manager::User* UserManagerBase::GetLoggedInUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +const User* UserManagerBase::GetLoggedInUser() const { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return active_user_; } -user_manager::User* UserManagerBase::GetLoggedInUser() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +User* UserManagerBase::GetLoggedInUser() { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return active_user_; } -const user_manager::User* UserManagerBase::GetActiveUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +const User* UserManagerBase::GetActiveUser() const { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return active_user_; } -user_manager::User* UserManagerBase::GetActiveUser() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +User* UserManagerBase::GetActiveUser() { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return active_user_; } -const user_manager::User* UserManagerBase::GetPrimaryUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +const User* UserManagerBase::GetPrimaryUser() const { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return primary_user_; } void UserManagerBase::SaveUserOAuthStatus( const std::string& user_id, - user_manager::User::OAuthTokenStatus oauth_token_status) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + User::OAuthTokenStatus oauth_token_status) { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); DVLOG(1) << "Saving user OAuth token status in Local State"; - user_manager::User* user = FindUserAndModify(user_id); + User* user = FindUserAndModify(user_id); if (user) user->set_oauth_token_status(oauth_token_status); @@ -397,7 +379,7 @@ void UserManagerBase::SaveUserOAuthStatus( void UserManagerBase::SaveForceOnlineSignin(const std::string& user_id, bool force_online_signin) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); // Do not update local state if data stored or cached outside the user's // cryptohome is to be treated as ephemeral. @@ -412,9 +394,9 @@ void UserManagerBase::SaveForceOnlineSignin(const std::string& user_id, void UserManagerBase::SaveUserDisplayName(const std::string& user_id, const base::string16& display_name) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); - if (user_manager::User* user = FindUserAndModify(user_id)) { + if (User* user = FindUserAndModify(user_id)) { user->set_display_name(display_name); // Do not update local state if data stored or cached outside the user's @@ -430,15 +412,15 @@ void UserManagerBase::SaveUserDisplayName(const std::string& user_id, base::string16 UserManagerBase::GetUserDisplayName( const std::string& user_id) const { - const user_manager::User* user = FindUser(user_id); + const User* user = FindUser(user_id); return user ? user->display_name() : base::string16(); } void UserManagerBase::SaveUserDisplayEmail(const std::string& user_id, const std::string& display_email) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); - user_manager::User* user = FindUserAndModify(user_id); + User* user = FindUserAndModify(user_id); if (!user) return; // Ignore if there is no such user. @@ -456,18 +438,18 @@ void UserManagerBase::SaveUserDisplayEmail(const std::string& user_id, std::string UserManagerBase::GetUserDisplayEmail( const std::string& user_id) const { - const user_manager::User* user = FindUser(user_id); + const User* user = FindUser(user_id); return user ? user->display_email() : user_id; } void UserManagerBase::UpdateUserAccountData( const std::string& user_id, const UserAccountData& account_data) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); SaveUserDisplayName(user_id, account_data.display_name()); - if (user_manager::User* user = FindUserAndModify(user_id)) { + if (User* user = FindUserAndModify(user_id)) { base::string16 given_name = account_data.given_name(); user->set_given_name(given_name); if (!IsUserNonCryptohomeDataEphemeral(user_id)) { @@ -503,13 +485,13 @@ void UserManagerBase::ParseUserList(const base::ListValue& users_list, } bool UserManagerBase::IsCurrentUserOwner() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); base::AutoLock lk(is_current_user_owner_lock_); return is_current_user_owner_; } void UserManagerBase::SetCurrentUserIsOwner(bool is_current_user_owner) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); { base::AutoLock lk(is_current_user_owner_lock_); is_current_user_owner_ = is_current_user_owner; @@ -518,69 +500,65 @@ void UserManagerBase::SetCurrentUserIsOwner(bool is_current_user_owner) { } bool UserManagerBase::IsCurrentUserNew() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return is_current_user_new_; } bool UserManagerBase::IsCurrentUserNonCryptohomeDataEphemeral() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return IsUserLoggedIn() && IsUserNonCryptohomeDataEphemeral(GetLoggedInUser()->email()); } bool UserManagerBase::CanCurrentUserLock() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return IsUserLoggedIn() && active_user_->can_lock(); } bool UserManagerBase::IsUserLoggedIn() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return active_user_; } bool UserManagerBase::IsLoggedInAsRegularUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_REGULAR; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && active_user_->GetType() == USER_TYPE_REGULAR; } bool UserManagerBase::IsLoggedInAsDemoUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_RETAIL_MODE; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && active_user_->GetType() == USER_TYPE_RETAIL_MODE; } bool UserManagerBase::IsLoggedInAsPublicAccount() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT; + active_user_->GetType() == USER_TYPE_PUBLIC_ACCOUNT; } bool UserManagerBase::IsLoggedInAsGuest() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_GUEST; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && active_user_->GetType() == USER_TYPE_GUEST; } bool UserManagerBase::IsLoggedInAsSupervisedUser() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_SUPERVISED; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && active_user_->GetType() == USER_TYPE_SUPERVISED; } bool UserManagerBase::IsLoggedInAsKioskApp() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && - active_user_->GetType() == user_manager::USER_TYPE_KIOSK_APP; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && active_user_->GetType() == USER_TYPE_KIOSK_APP; } bool UserManagerBase::IsLoggedInAsStub() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return IsUserLoggedIn() && active_user_->email() == login::kStubUser; + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + return IsUserLoggedIn() && + active_user_->email() == chromeos::login::kStubUser; } bool UserManagerBase::IsSessionStarted() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); return session_started_; } @@ -588,8 +566,9 @@ bool UserManagerBase::IsUserNonCryptohomeDataEphemeral( const std::string& user_id) const { // Data belonging to the guest, retail mode and stub users is always // ephemeral. - if (user_id == login::kGuestUserName || - user_id == login::kRetailModeUserName || user_id == login::kStubUser) { + if (user_id == chromeos::login::kGuestUserName || + user_id == chromeos::login::kRetailModeUserName || + user_id == chromeos::login::kStubUser) { return true; } @@ -620,37 +599,37 @@ bool UserManagerBase::IsUserNonCryptohomeDataEphemeral( } void UserManagerBase::AddObserver(UserManager::Observer* obs) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); observer_list_.AddObserver(obs); } void UserManagerBase::RemoveObserver(UserManager::Observer* obs) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); observer_list_.RemoveObserver(obs); } void UserManagerBase::AddSessionStateObserver( UserManager::UserSessionStateObserver* obs) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); session_state_observer_list_.AddObserver(obs); } void UserManagerBase::RemoveSessionStateObserver( UserManager::UserSessionStateObserver* obs) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); session_state_observer_list_.RemoveObserver(obs); } void UserManagerBase::NotifyLocalStateChanged() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); FOR_EACH_OBSERVER( UserManager::Observer, observer_list_, LocalStateChanged(this)); } -bool UserManagerBase::CanUserBeRemoved(const user_manager::User* user) const { +bool UserManagerBase::CanUserBeRemoved(const User* user) const { // Only regular and supervised users are allowed to be manually removed. - if (!user || (user->GetType() != user_manager::USER_TYPE_REGULAR && - user->GetType() != user_manager::USER_TYPE_SUPERVISED)) { + if (!user || (user->GetType() != USER_TYPE_REGULAR && + user->GetType() != USER_TYPE_SUPERVISED)) { return false; } @@ -664,7 +643,7 @@ bool UserManagerBase::CanUserBeRemoved(const user_manager::User* user) const { return false; // Sanity check: do not allow any of the the logged in users to be removed. - for (user_manager::UserList::const_iterator it = logged_in_users_.begin(); + for (UserList::const_iterator it = logged_in_users_.begin(); it != logged_in_users_.end(); ++it) { if ((*it)->email() == user->email()) @@ -699,7 +678,7 @@ void UserManagerBase::SetPendingUserSwitchID(std::string user_id) { } void UserManagerBase::EnsureUsersLoaded() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); if (!GetLocalState()) return; @@ -734,12 +713,12 @@ void UserManagerBase::EnsureUsersLoaded() { for (std::vector<std::string>::const_iterator it = regular_users.begin(); it != regular_users.end(); ++it) { - user_manager::User* user = NULL; + User* user = NULL; const std::string domain = gaia::ExtractDomainName(*it); if (domain == chromeos::login::kSupervisedUserDomain) - user = user_manager::User::CreateSupervisedUser(*it); + user = User::CreateSupervisedUser(*it); else - user = user_manager::User::CreateRegularUser(*it); + user = User::CreateRegularUser(*it); user->set_oauth_token_status(LoadUserOAuthStatus(*it)); user->set_force_online_signin(LoadForceOnlineSignin(*it)); users_.push_back(user); @@ -767,17 +746,14 @@ void UserManagerBase::EnsureUsersLoaded() { PerformPostUserListLoadingActions(); } -user_manager::UserList& UserManagerBase::GetUsersAndModify() { +UserList& UserManagerBase::GetUsersAndModify() { EnsureUsersLoaded(); return users_; } -const user_manager::User* UserManagerBase::FindUserInList( - const std::string& user_id) const { - const user_manager::UserList& users = GetUsers(); - for (user_manager::UserList::const_iterator it = users.begin(); - it != users.end(); - ++it) { +const User* UserManagerBase::FindUserInList(const std::string& user_id) const { + const UserList& users = GetUsers(); + for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) { if ((*it)->email() == user_id) return *it; } @@ -794,11 +770,9 @@ const bool UserManagerBase::UserExistsInList(const std::string& user_id) const { return false; } -user_manager::User* UserManagerBase::FindUserInListAndModify( - const std::string& user_id) { - user_manager::UserList& users = GetUsersAndModify(); - for (user_manager::UserList::iterator it = users.begin(); it != users.end(); - ++it) { +User* UserManagerBase::FindUserInListAndModify(const std::string& user_id) { + UserList& users = GetUsersAndModify(); + for (UserList::iterator it = users.begin(); it != users.end(); ++it) { if ((*it)->email() == user_id) return *it; } @@ -806,11 +780,11 @@ user_manager::User* UserManagerBase::FindUserInListAndModify( } void UserManagerBase::GuestUserLoggedIn() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - active_user_ = user_manager::User::CreateGuestUser(); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + active_user_ = User::CreateGuestUser(); } -void UserManagerBase::AddUserRecord(user_manager::User* user) { +void UserManagerBase::AddUserRecord(User* user) { // Add the user to the front of the user list. ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); prefs_users_update->Insert(0, new base::StringValue(user->email())); @@ -824,7 +798,7 @@ void UserManagerBase::RegularUserLoggedIn(const std::string& user_id) { // If the user was not found on the user list, create a new user. SetIsCurrentUserNew(!active_user_); if (IsCurrentUserNew()) { - active_user_ = user_manager::User::CreateRegularUser(user_id); + active_user_ = User::CreateRegularUser(user_id); active_user_->set_oauth_token_status(LoadUserOAuthStatus(user_id)); SaveUserDisplayName(active_user_->email(), base::UTF8ToUTF16(active_user_->GetAccountName(true))); @@ -838,41 +812,41 @@ void UserManagerBase::RegularUserLoggedIn(const std::string& user_id) { void UserManagerBase::RegularUserLoggedInAsEphemeral( const std::string& user_id) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); SetIsCurrentUserNew(true); is_current_user_ephemeral_regular_user_ = true; - active_user_ = user_manager::User::CreateRegularUser(user_id); + active_user_ = User::CreateRegularUser(user_id); } void UserManagerBase::NotifyOnLogin() { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); NotifyActiveUserHashChanged(active_user_->username_hash()); NotifyActiveUserChanged(active_user_); UpdateLoginState(); } -user_manager::User::OAuthTokenStatus UserManagerBase::LoadUserOAuthStatus( +User::OAuthTokenStatus UserManagerBase::LoadUserOAuthStatus( const std::string& user_id) const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); const base::DictionaryValue* prefs_oauth_status = GetLocalState()->GetDictionary(kUserOAuthTokenStatus); - int oauth_token_status = user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN; + int oauth_token_status = User::OAUTH_TOKEN_STATUS_UNKNOWN; if (prefs_oauth_status && prefs_oauth_status->GetIntegerWithoutPathExpansion(user_id, &oauth_token_status)) { - user_manager::User::OAuthTokenStatus result = - static_cast<user_manager::User::OAuthTokenStatus>(oauth_token_status); - if (result == user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) - GetUserFlow(user_id)->HandleOAuthTokenStatusChange(result); - return result; + User::OAuthTokenStatus status = + static_cast<User::OAuthTokenStatus>(oauth_token_status); + HandleUserOAuthTokenStatusChange(user_id, status); + + return status; } - return user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN; + return User::OAUTH_TOKEN_STATUS_UNKNOWN; } bool UserManagerBase::LoadForceOnlineSignin(const std::string& user_id) const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); const base::DictionaryValue* prefs_force_online = GetLocalState()->GetDictionary(kUserForceOnlineSignin); @@ -902,20 +876,19 @@ void UserManagerBase::RemoveNonCryptohomeData(const std::string& user_id) { prefs_force_online_update->RemoveWithoutPathExpansion(user_id, NULL); } -user_manager::User* UserManagerBase::RemoveRegularOrSupervisedUserFromList( +User* UserManagerBase::RemoveRegularOrSupervisedUserFromList( const std::string& user_id) { ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers); prefs_users_update->Clear(); - user_manager::User* user = NULL; - for (user_manager::UserList::iterator it = users_.begin(); - it != users_.end();) { + User* user = NULL; + for (UserList::iterator it = users_.begin(); it != users_.end();) { const std::string user_email = (*it)->email(); if (user_email == user_id) { user = *it; it = users_.erase(it); } else { - if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR || - (*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) { + if ((*it)->GetType() == USER_TYPE_REGULAR || + (*it)->GetType() == USER_TYPE_SUPERVISED) { prefs_users_update->Append(new base::StringValue(user_email)); } ++it; @@ -924,66 +897,65 @@ user_manager::User* UserManagerBase::RemoveRegularOrSupervisedUserFromList( return user; } -void UserManagerBase::NotifyActiveUserChanged( - const user_manager::User* active_user) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +void UserManagerBase::NotifyActiveUserChanged(const User* active_user) { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, session_state_observer_list_, ActiveUserChanged(active_user)); } -void UserManagerBase::NotifyUserAddedToSession( - const user_manager::User* added_user, - bool user_switch_pending) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); +void UserManagerBase::NotifyUserAddedToSession(const User* added_user, + bool user_switch_pending) { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, session_state_observer_list_, UserAddedToSession(added_user)); } void UserManagerBase::NotifyActiveUserHashChanged(const std::string& hash) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(task_runner_->RunsTasksOnCurrentThread()); FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver, session_state_observer_list_, ActiveUserHashChanged(hash)); } void UserManagerBase::UpdateLoginState() { - if (!LoginState::IsInitialized()) + if (!chromeos::LoginState::IsInitialized()) return; // LoginState may not be intialized in tests. - LoginState::LoggedInState logged_in_state; - logged_in_state = - active_user_ ? LoginState::LOGGED_IN_ACTIVE : LoginState::LOGGED_IN_NONE; + chromeos::LoginState::LoggedInState logged_in_state; + logged_in_state = active_user_ ? chromeos::LoginState::LOGGED_IN_ACTIVE + : chromeos::LoginState::LOGGED_IN_NONE; - LoginState::LoggedInUserType login_user_type; - if (logged_in_state == LoginState::LOGGED_IN_NONE) - login_user_type = LoginState::LOGGED_IN_USER_NONE; + chromeos::LoginState::LoggedInUserType login_user_type; + if (logged_in_state == chromeos::LoginState::LOGGED_IN_NONE) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_NONE; else if (is_current_user_owner_) - login_user_type = LoginState::LOGGED_IN_USER_OWNER; - else if (active_user_->GetType() == user_manager::USER_TYPE_GUEST) - login_user_type = LoginState::LOGGED_IN_USER_GUEST; - else if (active_user_->GetType() == user_manager::USER_TYPE_RETAIL_MODE) - login_user_type = LoginState::LOGGED_IN_USER_RETAIL_MODE; - else if (active_user_->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) - login_user_type = LoginState::LOGGED_IN_USER_PUBLIC_ACCOUNT; - else if (active_user_->GetType() == user_manager::USER_TYPE_SUPERVISED) - login_user_type = LoginState::LOGGED_IN_USER_SUPERVISED; - else if (active_user_->GetType() == user_manager::USER_TYPE_KIOSK_APP) - login_user_type = LoginState::LOGGED_IN_USER_KIOSK_APP; + login_user_type = chromeos::LoginState::LOGGED_IN_USER_OWNER; + else if (active_user_->GetType() == USER_TYPE_GUEST) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_GUEST; + else if (active_user_->GetType() == USER_TYPE_RETAIL_MODE) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_RETAIL_MODE; + else if (active_user_->GetType() == USER_TYPE_PUBLIC_ACCOUNT) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_PUBLIC_ACCOUNT; + else if (active_user_->GetType() == USER_TYPE_SUPERVISED) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_SUPERVISED; + else if (active_user_->GetType() == USER_TYPE_KIOSK_APP) + login_user_type = chromeos::LoginState::LOGGED_IN_USER_KIOSK_APP; else - login_user_type = LoginState::LOGGED_IN_USER_REGULAR; + login_user_type = chromeos::LoginState::LOGGED_IN_USER_REGULAR; if (primary_user_) { - LoginState::Get()->SetLoggedInStateAndPrimaryUser( + chromeos::LoginState::Get()->SetLoggedInStateAndPrimaryUser( logged_in_state, login_user_type, primary_user_->username_hash()); } else { - LoginState::Get()->SetLoggedInState(logged_in_state, login_user_type); + chromeos::LoginState::Get()->SetLoggedInState(logged_in_state, + login_user_type); } } -void UserManagerBase::SetLRUUser(user_manager::User* user) { - user_manager::UserList::iterator it = +void UserManagerBase::SetLRUUser(User* user) { + UserList::iterator it = std::find(lru_logged_in_users_.begin(), lru_logged_in_users_.end(), user); if (it != lru_logged_in_users_.end()) lru_logged_in_users_.erase(it); @@ -994,7 +966,7 @@ void UserManagerBase::SendRegularUserLoginMetrics(const std::string& user_id) { // If this isn't the first time Chrome was run after the system booted, // assume that Chrome was restarted because a previous session ended. if (!CommandLine::ForCurrentProcess()->HasSwitch( - switches::kFirstExecAfterBoot)) { + chromeos::switches::kFirstExecAfterBoot)) { const std::string last_email = GetLocalState()->GetString(kLastLoggedInRegularUser); const base::TimeDelta time_to_login = @@ -1017,27 +989,38 @@ void UserManagerBase::UpdateUserAccountLocale(const std::string& user_id, base::Bind(&UserManagerBase::DoUpdateAccountLocale, weak_factory_.GetWeakPtr(), user_id); - BrowserThread::PostBlockingPoolTask(FROM_HERE, - base::Bind(ResolveLocale, - locale, - on_resolve_callback)); + blocking_task_runner_->PostTask(FROM_HERE, + base::Bind(&UserManagerBase::ResolveLocale, + weak_factory_.GetWeakPtr(), + locale, + on_resolve_callback)); } else { DoUpdateAccountLocale(user_id, locale); } } +void UserManagerBase::ResolveLocale( + const std::string& raw_locale, + base::Callback<void(const std::string&)> on_resolve_callback) { + DCHECK(task_runner_->RunsTasksOnCurrentThread()); + std::string resolved_locale; + ignore_result(l10n_util::CheckAndResolveLocale(raw_locale, &resolved_locale)); + task_runner_->PostTask(FROM_HERE, + base::Bind(on_resolve_callback, resolved_locale)); +} + void UserManagerBase::DoUpdateAccountLocale( const std::string& user_id, const std::string& resolved_locale) { - if (user_manager::User* user = FindUserAndModify(user_id)) + if (User* user = FindUserAndModify(user_id)) user->SetAccountLocale(resolved_locale); } -void UserManagerBase::DeleteUser(user_manager::User* user) { +void UserManagerBase::DeleteUser(User* user) { const bool is_active_user = (user == active_user_); delete user; if (is_active_user) active_user_ = NULL; } -} // namespace chromeos +} // namespace user_manager diff --git a/chrome/browser/chromeos/login/users/user_manager_base.h b/components/user_manager/user_manager_base.h index 5fcea54..e7651cb 100644 --- a/chrome/browser/chromeos/login/users/user_manager_base.h +++ b/components/user_manager/user_manager_base.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_ -#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_ +#ifndef COMPONENTS_USER_MANAGER_USER_MANAGER_BASE_H_ +#define COMPONENTS_USER_MANAGER_USER_MANAGER_BASE_H_ #include <set> #include <string> @@ -14,19 +14,27 @@ #include "base/observer_list.h" #include "base/synchronization/lock.h" #include "base/time/time.h" -#include "chrome/browser/chromeos/login/users/user_manager.h" #include "components/user_manager/user.h" +#include "components/user_manager/user_manager.h" +#include "components/user_manager/user_manager_export.h" class PrefService; class PrefRegistrySimple; -namespace chromeos { +namespace base { +class ListValue; +class TaskRunner; +} + +namespace user_manager { class RemoveUserDelegate; // Base implementation of the UserManager interface. -class UserManagerBase : public UserManager { +class USER_MANAGER_EXPORT UserManagerBase : public UserManager { public: + UserManagerBase(scoped_refptr<base::TaskRunner> task_runner, + scoped_refptr<base::TaskRunner> blocking_task_runner); virtual ~UserManagerBase(); // Registers UserManagerBase preferences. @@ -34,9 +42,9 @@ class UserManagerBase : public UserManager { // UserManager implementation: virtual void Shutdown() OVERRIDE; - virtual const user_manager::UserList& GetUsers() const OVERRIDE; - virtual const user_manager::UserList& GetLoggedInUsers() const OVERRIDE; - virtual const user_manager::UserList& GetLRULoggedInUsers() const OVERRIDE; + virtual const UserList& GetUsers() const OVERRIDE; + virtual const UserList& GetLoggedInUsers() const OVERRIDE; + virtual const UserList& GetLRULoggedInUsers() const OVERRIDE; virtual const std::string& GetOwnerEmail() const OVERRIDE; virtual void UserLoggedIn(const std::string& user_id, const std::string& user_id_hash, @@ -47,18 +55,16 @@ class UserManagerBase : public UserManager { RemoveUserDelegate* delegate) OVERRIDE; virtual void RemoveUserFromList(const std::string& user_id) OVERRIDE; virtual bool IsKnownUser(const std::string& user_id) const OVERRIDE; - virtual const user_manager::User* FindUser( - const std::string& user_id) const OVERRIDE; - virtual user_manager::User* FindUserAndModify( - const std::string& user_id) OVERRIDE; - virtual const user_manager::User* GetLoggedInUser() const OVERRIDE; - virtual user_manager::User* GetLoggedInUser() OVERRIDE; - virtual const user_manager::User* GetActiveUser() const OVERRIDE; - virtual user_manager::User* GetActiveUser() OVERRIDE; - virtual const user_manager::User* GetPrimaryUser() const OVERRIDE; + virtual const User* FindUser(const std::string& user_id) const OVERRIDE; + virtual User* FindUserAndModify(const std::string& user_id) OVERRIDE; + virtual const User* GetLoggedInUser() const OVERRIDE; + virtual User* GetLoggedInUser() OVERRIDE; + virtual const User* GetActiveUser() const OVERRIDE; + virtual User* GetActiveUser() OVERRIDE; + virtual const User* GetPrimaryUser() const OVERRIDE; virtual void SaveUserOAuthStatus( const std::string& user_id, - user_manager::User::OAuthTokenStatus oauth_token_status) OVERRIDE; + User::OAuthTokenStatus oauth_token_status) OVERRIDE; virtual void SaveForceOnlineSignin(const std::string& user_id, bool force_online_signin) OVERRIDE; virtual void SaveUserDisplayName(const std::string& user_id, @@ -108,18 +114,18 @@ class UserManagerBase : public UserManager { // Adds |user| to users list, and adds it to front of LRU list. It is assumed // that there is no user with same id. - virtual void AddUserRecord(user_manager::User* user); + virtual void AddUserRecord(User* user); // Returns true if trusted device policies have successfully been retrieved // and ephemeral users are enabled. virtual bool AreEphemeralUsersEnabled() const = 0; // Returns true if user may be removed. - virtual bool CanUserBeRemoved(const user_manager::User* user) const; + virtual bool CanUserBeRemoved(const User* user) const; // A wrapper around C++ delete operator. Deletes |user|, and when |user| // equals to active_user_, active_user_ is reset to NULL. - virtual void DeleteUser(user_manager::User* user); + virtual void DeleteUser(User* user); // Returns the locale used by the application. virtual const std::string& GetApplicationLocale() const = 0; @@ -131,6 +137,11 @@ class UserManagerBase : public UserManager { // Subsequent calls have no effect. Must be called on the UI thread. void EnsureUsersLoaded(); + // Handle OAuth token |status| change for |user_id|. + virtual void HandleUserOAuthTokenStatusChange( + const std::string& user_id, + User::OAuthTokenStatus status) const = 0; + // Returns true if device is enterprise managed. virtual bool IsEnterpriseManaged() const = 0; @@ -148,7 +159,7 @@ class UserManagerBase : public UserManager { // Notifies observers that another user was added to the session. // If |user_switch_pending| is true this means that user has not been fully // initialized yet like waiting for profile to be loaded. - virtual void NotifyUserAddedToSession(const user_manager::User* added_user, + virtual void NotifyUserAddedToSession(const User* added_user, bool user_switch_pending); // Performs any additional actions before user list is loaded. @@ -171,8 +182,7 @@ class UserManagerBase : public UserManager { // Removes a regular or supervised user from the user list. // Returns the user if found or NULL otherwise. // Also removes the user from the persistent user list. - user_manager::User* RemoveRegularOrSupervisedUserFromList( - const std::string& user_id); + User* RemoveRegularOrSupervisedUserFromList(const std::string& user_id); // Implementation for RemoveUser method. This is an asynchronous part of the // method, that verifies that owner will not get deleted, and calls @@ -209,7 +219,7 @@ class UserManagerBase : public UserManager { virtual void KioskAppLoggedIn(const std::string& app_id) = 0; // Indicates that a user just logged into a public session. - virtual void PublicAccountUserLoggedIn(user_manager::User* user) = 0; + virtual void PublicAccountUserLoggedIn(User* user) = 0; // Indicates that a regular user just logged in. virtual void RegularUserLoggedIn(const std::string& user_id); @@ -241,16 +251,16 @@ class UserManagerBase : public UserManager { // NULL until a user has logged in, then points to one // of the User instances in |users_|, the |guest_user_| instance or an // ephemeral user instance. - user_manager::User* active_user_; + User* active_user_; // The primary user of the current session. It is recorded for the first // signed-in user and does not change thereafter. - user_manager::User* primary_user_; + User* primary_user_; // List of all known users. User instances are owned by |this|. Regular users // are removed by |RemoveUserFromList|, public accounts by // |UpdateAndCleanUpPublicAccounts|. - user_manager::UserList users_; + UserList users_; private: // Stages of loading user list from preferences. Some methods can have @@ -259,22 +269,21 @@ class UserManagerBase : public UserManager { // Returns a list of users who have logged into this device previously. // Same as GetUsers but used if you need to modify User from that list. - user_manager::UserList& GetUsersAndModify(); + UserList& GetUsersAndModify(); // Returns the user with the given email address if found in the persistent // list. Returns |NULL| otherwise. - const user_manager::User* FindUserInList(const std::string& user_id) const; + const User* FindUserInList(const std::string& user_id) const; // Returns |true| if user with the given id is found in the persistent list. // Returns |false| otherwise. Does not trigger user loading. const bool UserExistsInList(const std::string& user_id) const; // Same as FindUserInList but returns non-const pointer to User object. - user_manager::User* FindUserInListAndModify(const std::string& user_id); + User* FindUserInListAndModify(const std::string& user_id); // Reads user's oauth token status from local state preferences. - user_manager::User::OAuthTokenStatus LoadUserOAuthStatus( - const std::string& user_id) const; + User::OAuthTokenStatus LoadUserOAuthStatus(const std::string& user_id) const; // Read a flag indicating whether online authentication against GAIA should // be enforced during the user's next sign-in from local state preferences. @@ -284,7 +293,7 @@ class UserManagerBase : public UserManager { void NotifyMergeSessionStateChanged(); // Notifies observers that active user has changed. - void NotifyActiveUserChanged(const user_manager::User* active_user); + void NotifyActiveUserChanged(const User* active_user); // Notifies observers that active user_id hash has changed. void NotifyActiveUserHashChanged(const std::string& hash); @@ -293,7 +302,7 @@ class UserManagerBase : public UserManager { void UpdateLoginState(); // Insert |user| at the front of the LRU user list. - void SetLRUUser(user_manager::User* user); + void SetLRUUser(User* user); // Sends metrics in response to a regular user logging in. void SendRegularUserLoginMetrics(const std::string& user_id); @@ -302,6 +311,12 @@ class UserManagerBase : public UserManager { virtual void UpdateUserAccountLocale(const std::string& user_id, const std::string& locale); + // Runs on SequencedWorkerPool thread. Passes resolved locale to + // |on_resolve_callback| on UI thread. + void ResolveLocale( + const std::string& raw_locale, + base::Callback<void(const std::string&)> on_resolve_callback); + // Updates user account after locale was resolved. void DoUpdateAccountLocale(const std::string& user_id, const std::string& resolved_locale); @@ -311,12 +326,12 @@ class UserManagerBase : public UserManager { // List of all users that are logged in current session. These point to User // instances in |users_|. Only one of them could be marked as active. - user_manager::UserList logged_in_users_; + UserList logged_in_users_; // A list of all users that are logged in the current session. In contrast to // |logged_in_users|, the order of this list is least recently used so that // the active user should always be the first one in the list. - user_manager::UserList lru_logged_in_users_; + UserList lru_logged_in_users_; // True if SessionStarted() has been called. bool session_started_; @@ -359,11 +374,14 @@ class UserManagerBase : public UserManager { // as soon as user's profile is loaded. std::string pending_user_switch_; + scoped_refptr<base::TaskRunner> task_runner_; + scoped_refptr<base::TaskRunner> blocking_task_runner_; + base::WeakPtrFactory<UserManagerBase> weak_factory_; DISALLOW_COPY_AND_ASSIGN(UserManagerBase); }; -} // namespace chromeos +} // namespace user_manager -#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_ +#endif // COMPONENTS_USER_MANAGER_USER_MANAGER_BASE_H_ diff --git a/extensions/shell/browser/shell_browser_main_parts.cc b/extensions/shell/browser/shell_browser_main_parts.cc index 3a33566..4ab9360 100644 --- a/extensions/shell/browser/shell_browser_main_parts.cc +++ b/extensions/shell/browser/shell_browser_main_parts.cc @@ -92,7 +92,7 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { desktop_controller_->CreateRootWindow(); // NOTE: Much of this is culled from chrome/test/base/chrome_test_suite.cc - // TODO(jamescook): Initialize chromeos::UserManager. + // TODO(jamescook): Initialize user_manager::UserManager. net_log_.reset(new content::ShellNetLog("app_shell")); extensions_client_.reset(new ShellExtensionsClient()); |