Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: chrome/browser/ui/ash/session_state_delegate_chromeos.cc

Issue 14756019: Adding new user menu section to the SystemTrayMenu & refactoring of user access (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/session_state_delegate_chromeos.cc
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
index 24936e92002d982118004c262589a074eb8fdfd3..552935d03a40c105fab4edd9e08f14711f209444 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
@@ -10,14 +10,23 @@
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/session_manager_client.h"
+// TODO(skuhne): To be able to test this I had to hardcode the number of known
+// users. Get rid of it once it works.
+#define ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT 0
Nikita (slow) 2013/05/17 17:00:32 Why is this needed?
Mr4D (OOO till 08-26) 2013/05/17 18:45:09 As stated - only for testing all the different men
+
SessionStateDelegate::SessionStateDelegate() {
}
SessionStateDelegate::~SessionStateDelegate() {
}
-bool SessionStateDelegate::HasActiveUser() const {
- return chromeos::UserManager::Get()->IsUserLoggedIn();
+int SessionStateDelegate::GetMaximumNumberOfLoggedInUsers() const {
+ return 3;
+}
+
+int SessionStateDelegate::NumberOfLoggedInUsers() const {
+ return chromeos::UserManager::Get()->GetLoggedInUsers().size() +
+ ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT;
}
bool SessionStateDelegate::IsActiveUserSessionStarted() const {
@@ -47,3 +56,50 @@ void SessionStateDelegate::UnlockScreen() {
// This is used only for testing thus far.
NOTIMPLEMENTED();
}
+
+const base::string16 SessionStateDelegate::GetUserDisplayName(
+ ash::MultiProfileIndex index) const {
+ if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT &&
+ static_cast<size_t>(index) >=
+ chromeos::UserManager::Get()->GetLoggedInUsers().size())
+ index = 0;
Nikita (slow) 2013/05/17 17:00:32 nit: Add {}
Mr4D (OOO till 08-26) 2013/05/17 18:45:09 Done.
+ DCHECK_LT(index, NumberOfLoggedInUsers());
+ return chromeos::UserManager::Get()->GetLRULoggedInUsers()[
Nikita (slow) 2013/05/17 17:00:32 nit: Makes sense to move method name to next line:
Mr4D (OOO till 08-26) 2013/05/17 18:45:09 Done.
+ index]->display_name();
+}
+
+const std::string SessionStateDelegate::GetUserEmail(
+ ash::MultiProfileIndex index) const {
+ if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT &&
+ static_cast<size_t>(index) >=
+ chromeos::UserManager::Get()->GetLoggedInUsers().size())
+ index = 0;
+ DCHECK_LT(index, NumberOfLoggedInUsers());
+ return chromeos::UserManager::Get()->GetLRULoggedInUsers()[
Nikita (slow) 2013/05/17 17:00:32 nit: Same here.
Mr4D (OOO till 08-26) 2013/05/17 18:45:09 Done.
+ index]->display_email();
+}
+
+const gfx::ImageSkia& SessionStateDelegate::GetUserImage(
+ ash::MultiProfileIndex index) const {
+ if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT &&
Nikita (slow) 2013/05/17 17:00:32 Makes sense to extract code that returns user by i
Mr4D (OOO till 08-26) 2013/05/17 18:45:09 This is only for the lifetime of this CL. My next
+ static_cast<size_t>(index) >=
+ chromeos::UserManager::Get()->GetLoggedInUsers().size())
+ index = 0;
+ DCHECK_LT(index, NumberOfLoggedInUsers());
+ return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]->image();
+}
+
+void SessionStateDelegate::GetLoggedInUsers(
+ ash::UserEmailList* users) {
+ const chromeos::UserList& logged_in_users =
+ chromeos::UserManager::Get()->GetLoggedInUsers();
+ for (chromeos::UserList::const_iterator it = logged_in_users.begin();
+ it != logged_in_users.end(); ++it) {
+ const chromeos::User* user = (*it);
+ users->push_back(user->email());
+ }
+}
+
+void SessionStateDelegate::SwitchActiveUser(const std::string& email) {
+ chromeos::UserManager::Get()->SwitchActiveUser(email);
+}

Powered by Google App Engine
This is Rietveld 408576698