summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-14 23:48:30 +0000
committernkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-14 23:48:30 +0000
commitd66eac44cda6b48f70bf6ef06adc72c8638b39bf (patch)
treef0f59465b920eb98baf01219d4d36df47822644a
parentdae74c14f2a4543d900e0e5e37632ed111a08ffe (diff)
downloadchromium_src-d66eac44cda6b48f70bf6ef06adc72c8638b39bf.zip
chromium_src-d66eac44cda6b48f70bf6ef06adc72c8638b39bf.tar.gz
chromium_src-d66eac44cda6b48f70bf6ef06adc72c8638b39bf.tar.bz2
Move UserInfo to user_manager.
Since user_manager::UserInfo is used on non-chromeos ash implementation, defined part of user_manager component that is included on cross-platform ash. BUG=387614 Review URL: https://codereview.chromium.org/379803004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283087 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/DEPS1
-rw-r--r--ash/ash.gyp7
-rw-r--r--ash/frame/frame_util.cc2
-rw-r--r--ash/session/session_state_delegate.h10
-rw-r--r--ash/shell/shell_delegate_impl.cc37
-rw-r--r--ash/system/user/accounts_detailed_view.cc5
-rw-r--r--ash/system/user/tray_user.cc2
-rw-r--r--ash/system/user/tray_user_unittest.cc6
-rw-r--r--ash/system/user/user_card_view.cc2
-rw-r--r--ash/system/user/user_view.cc2
-rw-r--r--ash/test/test_session_state_delegate.cc11
-rw-r--r--ash/test/test_session_state_delegate.h6
-rw-r--r--chrome/browser/chromeos/login/users/user.h6
-rw-r--r--chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos.cc3
-rw-r--r--chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos_unittest.cc2
-rw-r--r--chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc2
-rw-r--r--chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc2
-rw-r--r--chrome/browser/ui/ash/session_state_delegate_chromeos.cc4
-rw-r--r--chrome/browser/ui/ash/session_state_delegate_chromeos.h4
-rw-r--r--chrome/browser/ui/ash/session_state_delegate_views.cc48
-rw-r--r--chrome/browser/ui/ash/session_state_delegate_views.h4
-rw-r--r--chrome/browser/ui/views/DEPS3
-rw-r--r--chrome/browser/ui/views/frame/system_menu_model_builder.cc4
-rw-r--r--chrome/chrome_browser_ui.gypi2
-rw-r--r--components/components.gyp2
-rw-r--r--components/user_manager.gypi28
-rw-r--r--components/user_manager/DEPS3
-rw-r--r--components/user_manager/empty_user_info.cc44
-rw-r--r--components/user_manager/empty_user_info.h39
-rw-r--r--components/user_manager/user_info.cc15
-rw-r--r--components/user_manager/user_info.h (renamed from ash/session/user_info.h)17
-rw-r--r--components/user_manager/user_info_impl.cc38
-rw-r--r--components/user_manager/user_info_impl.h38
33 files changed, 272 insertions, 127 deletions
diff --git a/ash/DEPS b/ash/DEPS
index a92f2d1..6b1fa86 100644
--- a/ash/DEPS
+++ b/ash/DEPS
@@ -2,6 +2,7 @@ include_rules = [
"+device/bluetooth",
"+cc/debug",
"+chromeos",
+ "+components/user_manager",
"+gpu/config",
"+grit/ash_resources.h",
"+grit/ash_strings.h",
diff --git a/ash/ash.gyp b/ash/ash.gyp
index d5f413d..593c47e 100644
--- a/ash/ash.gyp
+++ b/ash/ash.gyp
@@ -16,6 +16,7 @@
'../base/base.gyp:base_i18n',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../cc/cc.gyp:cc',
+ '../components/components.gyp:user_manager',
'../content/content.gyp:content_browser',
'../media/media.gyp:media',
'../net/net.gyp:net',
@@ -229,7 +230,6 @@
'session/session_state_delegate.h',
'session/session_state_observer.cc',
'session/session_state_observer.h',
- 'session/user_info.h',
'shelf/app_list_button.cc',
'shelf/app_list_button.h',
'shelf/app_list_shelf_item_delegate.cc',
@@ -879,6 +879,7 @@
'../base/base.gyp:base',
'../base/base.gyp:test_support_base',
'../chrome/chrome_resources.gyp:packed_resources',
+ '../components/components.gyp:user_manager',
'../content/content.gyp:content_browser',
'../content/content_shell_and_tests.gyp:test_support_content',
'../skia/skia.gyp:skia',
@@ -1178,6 +1179,7 @@
'type': 'executable',
'dependencies': [
'ash_shell_lib',
+ '../components/components.gyp:user_manager',
],
'sources': [
'shell/shell_main.cc',
@@ -1195,7 +1197,7 @@
}],
['chromeos==1', {
'dependencies': [
- '../device/bluetooth/bluetooth.gyp:device_bluetooth',
+ '../device/bluetooth/bluetooth.gyp:device_bluetooth',
],
}],
],
@@ -1205,6 +1207,7 @@
'type': 'executable',
'dependencies': [
'../base/base.gyp:test_support_base',
+ '../components/components.gyp:user_manager',
'../content/content_shell_and_tests.gyp:test_support_content',
'../skia/skia.gyp:skia',
'../testing/gtest.gyp:gtest',
diff --git a/ash/frame/frame_util.cc b/ash/frame/frame_util.cc
index fd26783..c4b1be9 100644
--- a/ash/frame/frame_util.cc
+++ b/ash/frame/frame_util.cc
@@ -5,8 +5,8 @@
#include "ash/frame/frame_util.h"
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
+#include "components/user_manager/user_info.h"
#include "grit/ash_resources.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/image/image_skia.h"
diff --git a/ash/session/session_state_delegate.h b/ash/session/session_state_delegate.h
index 78777a0..89c1ff8 100644
--- a/ash/session/session_state_delegate.h
+++ b/ash/session/session_state_delegate.h
@@ -23,10 +23,13 @@ namespace gfx {
class ImageSkia;
} // namespace gfx
+namespace user_manager {
+class UserInfo;
+} // namespace user_manager
+
namespace ash {
class SessionStateObserver;
-class UserInfo;
// The index for the multi-profile item to use. The list is always LRU sorted
// So that the index #0 is the currently active user.
@@ -113,10 +116,11 @@ class ASH_EXPORT SessionStateDelegate {
// Gets the user info for the user with the given |index|.
// Note that |index| can at maximum be |NumberOfLoggedInUsers() - 1|.
- virtual const UserInfo* GetUserInfo(MultiProfileIndex index) const = 0;
+ virtual const user_manager::UserInfo* GetUserInfo(
+ MultiProfileIndex index) const = 0;
// Gets the avatar image for the user associated with the |context|.
- virtual const UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
content::BrowserContext* context) const = 0;
// Whether or not the window's title should show the avatar.
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index 289d769..6261e1e 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -11,7 +11,6 @@
#include "ash/media_delegate.h"
#include "ash/new_window_delegate.h"
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell/context_menu.h"
#include "ash/shell/example_factory.h"
#include "ash/shell/keyboard_controller_proxy_stub.h"
@@ -22,6 +21,7 @@
#include "ash/wm/window_state.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/user_manager/user_info_impl.h"
#include "ui/aura/window.h"
#include "ui/wm/core/input_method_event_filter.h"
@@ -71,36 +71,10 @@ class MediaDelegateImpl : public MediaDelegate {
DISALLOW_COPY_AND_ASSIGN(MediaDelegateImpl);
};
-class UserInfoImpl : public UserInfo {
- public:
- UserInfoImpl() {}
- virtual ~UserInfoImpl() {}
-
- // UserInfo:
- virtual base::string16 GetDisplayName() const OVERRIDE {
- return base::UTF8ToUTF16("stub-user");
- }
- virtual base::string16 GetGivenName() const OVERRIDE {
- return base::UTF8ToUTF16("Stub");
- }
- virtual std::string GetEmail() const OVERRIDE {
- return "stub-user@domain.com";
- }
- virtual std::string GetUserID() const OVERRIDE { return GetEmail(); }
- virtual const gfx::ImageSkia& GetImage() const OVERRIDE {
- return user_image_;
- }
-
- private:
- gfx::ImageSkia user_image_;
-
- DISALLOW_COPY_AND_ASSIGN(UserInfoImpl);
-};
-
class SessionStateDelegateImpl : public SessionStateDelegate {
public:
SessionStateDelegateImpl()
- : screen_locked_(false), user_info_(new UserInfoImpl()) {}
+ : screen_locked_(false), user_info_(new user_manager::UserInfoImpl()) {}
virtual ~SessionStateDelegateImpl() {}
@@ -141,10 +115,11 @@ class SessionStateDelegateImpl : public SessionStateDelegate {
return IsActiveUserSessionStarted() ? SESSION_STATE_ACTIVE
: SESSION_STATE_LOGIN_PRIMARY;
}
- virtual const UserInfo* GetUserInfo(MultiProfileIndex index) const OVERRIDE {
+ virtual const user_manager::UserInfo* GetUserInfo(
+ MultiProfileIndex index) const OVERRIDE {
return user_info_.get();
}
- virtual const UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
content::BrowserContext* context) const OVERRIDE {
return user_info_.get();
}
@@ -162,7 +137,7 @@ class SessionStateDelegateImpl : public SessionStateDelegate {
bool screen_locked_;
// A pseudo user info.
- scoped_ptr<UserInfo> user_info_;
+ scoped_ptr<user_manager::UserInfo> user_info_;
DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateImpl);
};
diff --git a/ash/system/user/accounts_detailed_view.cc b/ash/system/user/accounts_detailed_view.cc
index 5b78a76..393f8d5 100644
--- a/ash/system/user/accounts_detailed_view.cc
+++ b/ash/system/user/accounts_detailed_view.cc
@@ -7,7 +7,6 @@
#include <vector>
#include "ash/multi_profile_uma.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/system/tray/fixed_sized_scroll_view.h"
#include "ash/system/tray/hover_highlight_view.h"
@@ -18,6 +17,7 @@
#include "ash/system/user/config.h"
#include "ash/system/user/tray_user.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/user_manager/user_info.h"
#include "grit/ash_resources.h"
#include "grit/ui_resources.h"
#include "ui/base/resource/resource_bundle.h"
@@ -120,7 +120,8 @@ void AccountsDetailedView::AddAddAccountButton() {
SessionStateDelegate* session_state_delegate =
Shell::GetInstance()->session_state_delegate();
HoverHighlightView* add_account_button = new HoverHighlightView(this);
- const UserInfo* user_info = session_state_delegate->GetUserInfo(0);
+ const user_manager::UserInfo* user_info =
+ session_state_delegate->GetUserInfo(0);
base::string16 user_name = user_info->GetGivenName();
if (user_name.empty())
user_name = user_info->GetDisplayName();
diff --git a/ash/system/user/tray_user.cc b/ash/system/user/tray_user.cc
index cb5676c..91dce33 100644
--- a/ash/system/user/tray_user.cc
+++ b/ash/system/user/tray_user.cc
@@ -7,7 +7,6 @@
#include "ash/ash_switches.h"
#include "ash/root_window_controller.h"
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shelf/shelf_layout_manager.h"
#include "ash/shell_delegate.h"
#include "ash/system/tray/system_tray.h"
@@ -20,6 +19,7 @@
#include "ash/system/user/user_view.h"
#include "base/logging.h"
#include "base/strings/string16.h"
+#include "components/user_manager/user_info.h"
#include "grit/ash_strings.h"
#include "ui/aura/window.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/ash/system/user/tray_user_unittest.cc b/ash/system/user/tray_user_unittest.cc
index 0135054..25eae95 100644
--- a/ash/system/user/tray_user_unittest.cc
+++ b/ash/system/user/tray_user_unittest.cc
@@ -5,7 +5,6 @@
#include <vector>
#include "ash/root_window_controller.h"
-#include "ash/session/user_info.h"
#include "ash/shelf/shelf_layout_manager.h"
#include "ash/shell.h"
#include "ash/shell_delegate.h"
@@ -16,6 +15,7 @@
#include "ash/test/ash_test_base.h"
#include "ash/test/test_session_state_delegate.h"
#include "ash/test/test_shell_delegate.h"
+#include "components/user_manager/user_info.h"
#include "ui/aura/test/event_generator.h"
#include "ui/gfx/animation/animation_container_element.h"
#include "ui/views/view.h"
@@ -237,8 +237,8 @@ TEST_F(TrayUserTest, MutiUserModeButtonClicks) {
// Switch to a new user - which has a capitalized name.
ClickUserItem(&generator, 1);
- const UserInfo* active_user = delegate()->GetActiveUserInfo();
- const UserInfo* second_user = delegate()->GetUserInfo(1);
+ const user_manager::UserInfo* active_user = delegate()->GetActiveUserInfo();
+ const user_manager::UserInfo* second_user = delegate()->GetUserInfo(1);
EXPECT_EQ(active_user->GetUserID(), second_user->GetUserID());
// Since the name is capitalized, the email should be different then the
// user_id.
diff --git a/ash/system/user/user_card_view.cc b/ash/system/user/user_card_view.cc
index 11cff83..84d52b6 100644
--- a/ash/system/user/user_card_view.cc
+++ b/ash/system/user/user_card_view.cc
@@ -8,7 +8,6 @@
#include <vector>
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/tray/system_tray_notifier.h"
@@ -20,6 +19,7 @@
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/user_manager/user_info.h"
#include "grit/ash_resources.h"
#include "grit/ash_strings.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/ash/system/user/user_view.cc b/ash/system/user/user_view.cc
index 18e8ee8..0d66217 100644
--- a/ash/system/user/user_view.cc
+++ b/ash/system/user/user_view.cc
@@ -9,7 +9,6 @@
#include "ash/multi_profile_uma.h"
#include "ash/popup_message.h"
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/shell_delegate.h"
#include "ash/system/tray/system_tray.h"
@@ -20,6 +19,7 @@
#include "ash/system/user/config.h"
#include "ash/system/user/rounded_image_view.h"
#include "ash/system/user/user_card_view.h"
+#include "components/user_manager/user_info.h"
#include "grit/ash_resources.h"
#include "grit/ash_strings.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/ash/test/test_session_state_delegate.cc b/ash/test/test_session_state_delegate.cc
index 8831b58..4c76143 100644
--- a/ash/test/test_session_state_delegate.cc
+++ b/ash/test/test_session_state_delegate.cc
@@ -7,12 +7,12 @@
#include <algorithm>
#include <string>
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/system/user/login_status.h"
#include "base/stl_util.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/user_manager/user_info.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace ash {
@@ -29,7 +29,7 @@ std::string GetUserIDFromEmail(const std::string& email) {
} // namespace
-class MockUserInfo : public UserInfo {
+class MockUserInfo : public user_manager::UserInfo {
public:
explicit MockUserInfo(const std::string& id) : email_(id) {}
virtual ~MockUserInfo() {}
@@ -89,7 +89,8 @@ void TestSessionStateDelegate::AddUser(const std::string user_id) {
user_list_.push_back(new MockUserInfo(user_id));
}
-const UserInfo* TestSessionStateDelegate::GetActiveUserInfo() const {
+const user_manager::UserInfo* TestSessionStateDelegate::GetActiveUserInfo()
+ const {
return user_list_[active_user_index_];
}
@@ -192,13 +193,13 @@ void TestSessionStateDelegate::SetUserImage(
user_list_[active_user_index_]->SetUserImage(user_image);
}
-const UserInfo* TestSessionStateDelegate::GetUserInfo(
+const user_manager::UserInfo* TestSessionStateDelegate::GetUserInfo(
MultiProfileIndex index) const {
int max = static_cast<int>(user_list_.size());
return user_list_[index < max ? index : max - 1];
}
-const UserInfo* TestSessionStateDelegate::GetUserInfo(
+const user_manager::UserInfo* TestSessionStateDelegate::GetUserInfo(
content::BrowserContext* context) const {
return user_list_[active_user_index_];
}
diff --git a/ash/test/test_session_state_delegate.h b/ash/test/test_session_state_delegate.h
index 5616eec..478c340 100644
--- a/ash/test/test_session_state_delegate.h
+++ b/ash/test/test_session_state_delegate.h
@@ -24,7 +24,7 @@ class TestSessionStateDelegate : public SessionStateDelegate {
void set_logged_in_users(int users) { logged_in_users_ = users; }
void AddUser(const std::string user_id);
- const UserInfo* GetActiveUserInfo() const;
+ const user_manager::UserInfo* GetActiveUserInfo() const;
// SessionStateDelegate:
virtual content::BrowserContext* GetBrowserContextByIndex(
@@ -41,9 +41,9 @@ class TestSessionStateDelegate : public SessionStateDelegate {
virtual void UnlockScreen() OVERRIDE;
virtual bool IsUserSessionBlocked() const OVERRIDE;
virtual SessionState GetSessionState() const OVERRIDE;
- virtual const UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
ash::MultiProfileIndex index) const OVERRIDE;
- virtual const UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
content::BrowserContext* context) const OVERRIDE;
virtual bool ShouldShowAvatar(aura::Window* window) const OVERRIDE;
virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
diff --git a/chrome/browser/chromeos/login/users/user.h b/chrome/browser/chromeos/login/users/user.h
index 58b0cd3..5289962 100644
--- a/chrome/browser/chromeos/login/users/user.h
+++ b/chrome/browser/chromeos/login/users/user.h
@@ -8,10 +8,10 @@
#include <string>
#include <vector>
-#include "ash/session/user_info.h"
#include "base/basictypes.h"
#include "base/strings/string16.h"
#include "components/user_manager/user_image/user_image.h"
+#include "components/user_manager/user_info.h"
#include "components/user_manager/user_type.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/image/image_skia.h"
@@ -26,7 +26,7 @@ extern const int kDefaultImagesCount;
// returned by |displayed_email()|.
// Displayed emails are for use in UI only, anywhere else users must be referred
// to by |email()|.
-class User : public ash::UserInfo {
+class User : public user_manager::UserInfo {
public:
// User OAuth token status according to the last check.
// Please note that enum values 1 and 2 were used for OAuth1 status and are
@@ -63,7 +63,7 @@ class User : public ash::UserInfo {
// The displayed user name.
base::string16 display_name() const { return display_name_; }
- // ash::UserInfo
+ // user_manager::UserInfo
virtual std::string GetEmail() const OVERRIDE;
virtual base::string16 GetDisplayName() const OVERRIDE;
virtual base::string16 GetGivenName() const OVERRIDE;
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 09a52f2..a10e61b 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
@@ -87,7 +87,8 @@ scoped_ptr<ui::MenuModel> CreateMultiUserContextMenu(aura::Window* window) {
new chromeos::MultiUserContextMenuChromeos(window);
model.reset(menu);
for (int user_index = 1; user_index < logged_in_users; ++user_index) {
- const ash::UserInfo* user_info = delegate->GetUserInfo(user_index);
+ const user_manager::UserInfo* user_info =
+ delegate->GetUserInfo(user_index);
menu->AddItem(user_index == 1 ? IDC_VISIT_DESKTOP_OF_LRU_USER_2
: IDC_VISIT_DESKTOP_OF_LRU_USER_3,
l10n_util::GetStringFUTF16(
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos_unittest.cc b/chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos_unittest.cc
index 88bf046..79800ef 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos_unittest.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_notification_blocker_chromeos_unittest.cc
@@ -3,7 +3,6 @@
// found in the LICENSE file.
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/system/system_notifier.h"
#include "ash/test/ash_test_base.h"
@@ -13,6 +12,7 @@
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile_manager.h"
+#include "components/user_manager/user_info.h"
#include "ui/message_center/message_center.h"
#include "ui/message_center/notification.h"
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc
index 93b2af1..a1e3362 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager.cc
@@ -11,10 +11,10 @@
#include "ash/ash_switches.h"
#include "ash/multi_profile_uma.h"
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/shell_delegate.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
+#include "components/user_manager/user_info.h"
#endif
namespace {
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
index f425e0bb..29da872 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "ash/shell_window_ids.h"
#include "ash/test/ash_test_base.h"
@@ -19,6 +18,7 @@
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
#include "chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/user_manager/user_info.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window_event_dispatcher.h"
#include "ui/base/ui_base_types.h"
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
index ad073e6..27e57f4 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
@@ -133,13 +133,13 @@ SessionStateDelegateChromeos::GetSessionState() const {
return session_state_;
}
-const ash::UserInfo* SessionStateDelegateChromeos::GetUserInfo(
+const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo(
ash::MultiProfileIndex index) const {
DCHECK_LT(index, NumberOfLoggedInUsers());
return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index];
}
-const ash::UserInfo* SessionStateDelegateChromeos::GetUserInfo(
+const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo(
content::BrowserContext* context) const {
DCHECK(context);
return chromeos::ProfileHelper::Get()->GetUserByProfile(
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.h b/chrome/browser/ui/ash/session_state_delegate_chromeos.h
index 104afe8..af0b055 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.h
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.h
@@ -41,9 +41,9 @@ class SessionStateDelegateChromeos
virtual void UnlockScreen() OVERRIDE;
virtual bool IsUserSessionBlocked() const OVERRIDE;
virtual SessionState GetSessionState() const OVERRIDE;
- virtual const ash::UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
ash::MultiProfileIndex index) const OVERRIDE;
- virtual const ash::UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
content::BrowserContext* context) const OVERRIDE;
virtual bool ShouldShowAvatar(aura::Window* window) const OVERRIDE;
virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
diff --git a/chrome/browser/ui/ash/session_state_delegate_views.cc b/chrome/browser/ui/ash/session_state_delegate_views.cc
index 675a9bf..9622319 100644
--- a/chrome/browser/ui/ash/session_state_delegate_views.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_views.cc
@@ -4,51 +4,12 @@
#include "chrome/browser/ui/ash/session_state_delegate_views.h"
-#include "ash/session/user_info.h"
#include "base/logging.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
+#include "components/user_manager/empty_user_info.h"
#include "ui/gfx/image/image_skia.h"
-namespace {
-
-class EmptyUserInfo : public ash::UserInfo {
- public:
- EmptyUserInfo() {}
- virtual ~EmptyUserInfo() {}
-
- // ash::UserInfo:
- virtual base::string16 GetDisplayName() const OVERRIDE {
- NOTIMPLEMENTED();
- return base::UTF8ToUTF16(std::string());
- }
- virtual base::string16 GetGivenName() const OVERRIDE {
- NOTIMPLEMENTED();
- return base::UTF8ToUTF16(std::string());
- }
- virtual std::string GetEmail() const OVERRIDE {
- NOTIMPLEMENTED();
- return std::string();
- }
- virtual std::string GetUserID() const OVERRIDE {
- NOTIMPLEMENTED();
- return std::string();
- }
-
- virtual const gfx::ImageSkia& GetImage() const OVERRIDE {
- NOTIMPLEMENTED();
- // To make the compiler happy.
- return null_image_;
- }
-
- private:
- const gfx::ImageSkia null_image_;
-
- DISALLOW_COPY_AND_ASSIGN(EmptyUserInfo);
-};
-
-} // namespace
-
SessionStateDelegate::SessionStateDelegate() {
}
@@ -106,14 +67,15 @@ ash::SessionStateDelegate::SessionState SessionStateDelegate::GetSessionState()
return SESSION_STATE_ACTIVE;
}
-const ash::UserInfo* SessionStateDelegate::GetUserInfo(
+const user_manager::UserInfo* SessionStateDelegate::GetUserInfo(
ash::MultiProfileIndex index) const {
return GetUserInfo(static_cast<content::BrowserContext*>(NULL));
}
-const ash::UserInfo* SessionStateDelegate::GetUserInfo(
+const user_manager::UserInfo* SessionStateDelegate::GetUserInfo(
content::BrowserContext* context) const {
- static const ash::UserInfo* kUserInfo = new EmptyUserInfo();
+ static const user_manager::UserInfo* kUserInfo =
+ new user_manager::EmptyUserInfo();
return kUserInfo;
}
diff --git a/chrome/browser/ui/ash/session_state_delegate_views.h b/chrome/browser/ui/ash/session_state_delegate_views.h
index 3b32b29..14e005e 100644
--- a/chrome/browser/ui/ash/session_state_delegate_views.h
+++ b/chrome/browser/ui/ash/session_state_delegate_views.h
@@ -35,9 +35,9 @@ class SessionStateDelegate : public ash::SessionStateDelegate {
virtual void UnlockScreen() OVERRIDE;
virtual bool IsUserSessionBlocked() const OVERRIDE;
virtual SessionState GetSessionState() const OVERRIDE;
- virtual const ash::UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
ash::MultiProfileIndex index) const OVERRIDE;
- virtual const ash::UserInfo* GetUserInfo(
+ virtual const user_manager::UserInfo* GetUserInfo(
content::BrowserContext* context) const OVERRIDE;
virtual bool ShouldShowAvatar(aura::Window* window) const OVERRIDE;
virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
diff --git a/chrome/browser/ui/views/DEPS b/chrome/browser/ui/views/DEPS
index 92c7377..8b91a12 100644
--- a/chrome/browser/ui/views/DEPS
+++ b/chrome/browser/ui/views/DEPS
@@ -1,4 +1,5 @@
include_rules = [
"-chrome/browser/ui/libgtk2ui",
- "+chrome/browser/ui/views"
+ "+chrome/browser/ui/views",
+ "+components/user_manager"
]
diff --git a/chrome/browser/ui/views/frame/system_menu_model_builder.cc b/chrome/browser/ui/views/frame/system_menu_model_builder.cc
index 44dacd8..9848722 100644
--- a/chrome/browser/ui/views/frame/system_menu_model_builder.cc
+++ b/chrome/browser/ui/views/frame/system_menu_model_builder.cc
@@ -17,11 +17,11 @@
#if defined(OS_CHROMEOS)
#include "ash/session/session_state_delegate.h"
-#include "ash/session/user_info.h"
#include "ash/shell.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
#include "chrome/browser/ui/browser_window.h"
+#include "components/user_manager/user_info.h"
#include "ui/base/l10n/l10n_util.h"
#endif
@@ -152,7 +152,7 @@ void SystemMenuModelBuilder::AppendTeleportMenu(ui::SimpleMenuModel* model) {
model->AddSeparator(ui::NORMAL_SEPARATOR);
DCHECK(logged_in_users <= 3);
for (int user_index = 1; user_index < logged_in_users; ++user_index) {
- const ash::UserInfo* user_info = delegate->GetUserInfo(user_index);
+ const user_manager::UserInfo* user_info = delegate->GetUserInfo(user_index);
model->AddItem(
user_index == 1 ? IDC_VISIT_DESKTOP_OF_LRU_USER_2
: IDC_VISIT_DESKTOP_OF_LRU_USER_3,
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index a74d660..a14308e 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -2680,6 +2680,7 @@
'sources': [ '<@(chrome_browser_ui_chromeos_sources)' ],
'dependencies': [
'browser_chromeos',
+ '../components/components.gyp:user_manager',
'../ui/chromeos/ui_chromeos.gyp:ui_chromeos',
'../ui/chromeos/ui_chromeos.gyp:ui_chromeos_resources',
],
@@ -2697,6 +2698,7 @@
'../ash/ash.gyp:ash',
'../ash/ash.gyp:ash_with_content',
'../ash/ash_strings.gyp:ash_strings',
+ '../components/components.gyp:user_manager',
],
'conditions': [
['chromeos == 0', {
diff --git a/components/components.gyp b/components/components.gyp
index 49254a2..e6e6b4c 100644
--- a/components/components.gyp
+++ b/components/components.gyp
@@ -82,7 +82,7 @@
'wifi.gypi',
],
}],
- ['chromeos==1', {
+ ['use_ash==1', {
'includes': [
'user_manager.gypi',
],
diff --git a/components/user_manager.gypi b/components/user_manager.gypi
index f10edf2..7b22938 100644
--- a/components/user_manager.gypi
+++ b/components/user_manager.gypi
@@ -3,6 +3,24 @@
# found in the LICENSE file.
{
+ 'variables': {
+ # Cross-platform user_manager sources.
+ 'user_manager_shared_sources': [
+ 'user_manager/empty_user_info.cc',
+ 'user_manager/empty_user_info.h',
+ 'user_manager/user_info.h',
+ 'user_manager/user_info.cc',
+ 'user_manager/user_info_impl.cc',
+ 'user_manager/user_info_impl.h',
+ 'user_manager/user_manager_export.h',
+ ],
+ # Chrome OS user_manager sources.
+ 'user_manager_chromeos_sources': [
+ 'user_manager/user_image/user_image.cc',
+ 'user_manager/user_image/user_image.h',
+ 'user_manager/user_type.h',
+ ],
+ },
'targets': [{
'target_name': 'user_manager',
'type': '<(component)',
@@ -18,11 +36,11 @@
'include_dirs': [
'..',
],
- 'sources': [
- 'user_manager/user_image/user_image.cc',
- 'user_manager/user_image/user_image.h',
- 'user_manager/user_type.h',
- 'user_manager/user_manager_export.h',
+ 'sources': [ '<@(user_manager_shared_sources)' ],
+ 'conditions': [
+ ['chromeos == 1', {
+ 'sources': [ '<@(user_manager_chromeos_sources)' ],
+ }],
],
}],
}
diff --git a/components/user_manager/DEPS b/components/user_manager/DEPS
index b8a9ee9..ee3957b 100644
--- a/components/user_manager/DEPS
+++ b/components/user_manager/DEPS
@@ -1,5 +1,6 @@
include_rules = [
"+third_party/skia/include",
-"+ui/gfx",
+"+ui/gfx/codec",
+"+ui/gfx/image",
"+url",
]
diff --git a/components/user_manager/empty_user_info.cc b/components/user_manager/empty_user_info.cc
new file mode 100644
index 0000000..f4f3fca
--- /dev/null
+++ b/components/user_manager/empty_user_info.cc
@@ -0,0 +1,44 @@
+// 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/empty_user_info.h"
+
+#include "base/logging.h"
+#include "base/strings/utf_string_conversions.h"
+
+namespace user_manager {
+
+EmptyUserInfo::EmptyUserInfo() {
+}
+
+EmptyUserInfo::~EmptyUserInfo() {
+}
+
+base::string16 EmptyUserInfo::GetDisplayName() const {
+ NOTIMPLEMENTED();
+ return base::UTF8ToUTF16(std::string());
+}
+
+base::string16 EmptyUserInfo::GetGivenName() const {
+ NOTIMPLEMENTED();
+ return base::UTF8ToUTF16(std::string());
+}
+
+std::string EmptyUserInfo::GetEmail() const {
+ NOTIMPLEMENTED();
+ return std::string();
+}
+
+std::string EmptyUserInfo::GetUserID() const {
+ NOTIMPLEMENTED();
+ return std::string();
+}
+
+const gfx::ImageSkia& EmptyUserInfo::GetImage() const {
+ NOTIMPLEMENTED();
+ // To make the compiler happy.
+ return null_image_;
+}
+
+} // namespace user_manager
diff --git a/components/user_manager/empty_user_info.h b/components/user_manager/empty_user_info.h
new file mode 100644
index 0000000..4d22f45
--- /dev/null
+++ b/components/user_manager/empty_user_info.h
@@ -0,0 +1,39 @@
+// 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 COMPONENTS_USER_MANAGER_EMPTY_USER_INFO_H_
+#define COMPONENTS_USER_MANAGER_EMPTY_USER_INFO_H_
+
+#include <string>
+
+#include "base/strings/string16.h"
+#include "components/user_manager/user_info.h"
+#include "components/user_manager/user_manager_export.h"
+#include "ui/gfx/image/image_skia.h"
+
+namespace user_manager {
+
+// Trivial implementation of UserInfo interface which triggers
+// NOTIMPLEMENTED() for each method.
+class USER_MANAGER_EXPORT EmptyUserInfo : public UserInfo {
+ public:
+ EmptyUserInfo();
+ virtual ~EmptyUserInfo();
+
+ // UserInfo:
+ virtual base::string16 GetDisplayName() const OVERRIDE;
+ virtual base::string16 GetGivenName() const OVERRIDE;
+ virtual std::string GetEmail() const OVERRIDE;
+ virtual std::string GetUserID() const OVERRIDE;
+ virtual const gfx::ImageSkia& GetImage() const OVERRIDE;
+
+ private:
+ const gfx::ImageSkia null_image_;
+
+ DISALLOW_COPY_AND_ASSIGN(EmptyUserInfo);
+};
+
+} // namespace user_manager
+
+#endif // COMPONENTS_USER_MANAGER_EMPTY_USER_INFO_H_
diff --git a/components/user_manager/user_info.cc b/components/user_manager/user_info.cc
new file mode 100644
index 0000000..adfeb72
--- /dev/null
+++ b/components/user_manager/user_info.cc
@@ -0,0 +1,15 @@
+// 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_info.h"
+
+namespace user_manager {
+
+UserInfo::UserInfo() {
+}
+
+UserInfo::~UserInfo() {
+}
+
+} // namespace user_manager
diff --git a/ash/session/user_info.h b/components/user_manager/user_info.h
index 59a4cf4..9540946 100644
--- a/ash/session/user_info.h
+++ b/components/user_manager/user_info.h
@@ -2,24 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef ASH_SESSION_USER_INFO_H_
-#define ASH_SESSION_USER_INFO_H_
+#ifndef COMPONENTS_USER_MANAGER_USER_INFO_H_
+#define COMPONENTS_USER_MANAGER_USER_INFO_H_
#include <string>
-#include "ash/ash_export.h"
#include "base/strings/string16.h"
+#include "components/user_manager/user_manager_export.h"
namespace gfx {
class ImageSkia;
}
-namespace ash {
+namespace user_manager {
// A class that represents user related info.
-class ASH_EXPORT UserInfo {
+class USER_MANAGER_EXPORT UserInfo {
public:
- virtual ~UserInfo() {}
+ UserInfo();
+ virtual ~UserInfo();
// Gets the display name for the user.
virtual base::string16 GetDisplayName() const = 0;
@@ -40,6 +41,6 @@ class ASH_EXPORT UserInfo {
virtual const gfx::ImageSkia& GetImage() const = 0;
};
-} // namespace ash
+} // namespace user_manager
-#endif // ASH_SESSION_USER_INFO_H_
+#endif // COMPONENTS_USER_MANAGER_USER_INFO_H_
diff --git a/components/user_manager/user_info_impl.cc b/components/user_manager/user_info_impl.cc
new file mode 100644
index 0000000..6aa21a8
--- /dev/null
+++ b/components/user_manager/user_info_impl.cc
@@ -0,0 +1,38 @@
+// 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_info_impl.h"
+
+#include "base/logging.h"
+#include "base/strings/utf_string_conversions.h"
+
+namespace user_manager {
+
+UserInfoImpl::UserInfoImpl() {
+}
+
+UserInfoImpl::~UserInfoImpl() {
+}
+
+base::string16 UserInfoImpl::GetDisplayName() const {
+ return base::UTF8ToUTF16("stub-user");
+}
+
+base::string16 UserInfoImpl::GetGivenName() const {
+ return base::UTF8ToUTF16("Stub");
+}
+
+std::string UserInfoImpl::GetEmail() const {
+ return "stub-user@domain.com";
+}
+
+std::string UserInfoImpl::GetUserID() const {
+ return GetEmail();
+}
+
+const gfx::ImageSkia& UserInfoImpl::GetImage() const {
+ return user_image_;
+}
+
+} // namespace user_manager
diff --git a/components/user_manager/user_info_impl.h b/components/user_manager/user_info_impl.h
new file mode 100644
index 0000000..f024910
--- /dev/null
+++ b/components/user_manager/user_info_impl.h
@@ -0,0 +1,38 @@
+// 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 COMPONENTS_USER_MANAGER_USER_INFO_IMPL_H_
+#define COMPONENTS_USER_MANAGER_USER_INFO_IMPL_H_
+
+#include <string>
+
+#include "base/strings/string16.h"
+#include "components/user_manager/user_info.h"
+#include "components/user_manager/user_manager_export.h"
+#include "ui/gfx/image/image_skia.h"
+
+namespace user_manager {
+
+// Stub implementation of UserInfo interface. Used in tests.
+class USER_MANAGER_EXPORT UserInfoImpl : public UserInfo {
+ public:
+ UserInfoImpl();
+ virtual ~UserInfoImpl();
+
+ // UserInfo:
+ virtual base::string16 GetDisplayName() const OVERRIDE;
+ virtual base::string16 GetGivenName() const OVERRIDE;
+ virtual std::string GetEmail() const OVERRIDE;
+ virtual std::string GetUserID() const OVERRIDE;
+ virtual const gfx::ImageSkia& GetImage() const OVERRIDE;
+
+ private:
+ gfx::ImageSkia user_image_;
+
+ DISALLOW_COPY_AND_ASSIGN(UserInfoImpl);
+};
+
+} // namespace user_manager
+
+#endif // COMPONENTS_USER_MANAGER_USER_INFO_IMPL_H_