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

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: 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..131b2e545be924354c44d4e67127cbc85ba78539 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
@@ -10,14 +10,19 @@
#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 1
Mr4D (OOO till 08-26) 2013/05/17 04:08:33 As mentioned in my CL comment, this define is only
James Cook 2013/05/17 14:03:25 That's fine.
+
SessionStateDelegate::SessionStateDelegate() {
}
SessionStateDelegate::~SessionStateDelegate() {
}
-bool SessionStateDelegate::HasActiveUser() const {
- return chromeos::UserManager::Get()->IsUserLoggedIn();
+int SessionStateDelegate::NumberOfLoggedInUsers() const {
+ return chromeos::UserManager::Get()->GetLoggedInUsers().size() +
James Cook 2013/05/17 14:03:25 Does this mean that all canary build users will se
Mr4D (OOO till 08-26) 2013/05/17 16:26:40 Just with the flag turned on. But again - before s
+ ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT;
}
bool SessionStateDelegate::IsActiveUserSessionStarted() const {
@@ -47,3 +52,47 @@ 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 &&
+ index >= (int)chromeos::UserManager::Get()->GetLoggedInUsers().size())
James Cook 2013/05/17 14:03:25 (int) -> static_cast<int>() It hurts, but casting
Mr4D (OOO till 08-26) 2013/05/17 16:26:40 Done.
+ index = 0;
+ DCHECK_LT(index, NumberOfLoggedInUsers());
+ return chromeos::UserManager::Get()->GetLRULoggedInUsers()[
+ index]->display_name();
+}
+
+const std::string SessionStateDelegate::GetUserEmail(
+ ash::MultiProfileIndex index) const {
+ if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT &&
+ index >= (int)chromeos::UserManager::Get()->GetLoggedInUsers().size())
+ index = 0;
+ DCHECK_LT(index, NumberOfLoggedInUsers());
+ return chromeos::UserManager::Get()->GetLRULoggedInUsers()[
+ index]->display_email();
+}
+
+const gfx::ImageSkia& SessionStateDelegate::GetUserImage(
+ ash::MultiProfileIndex index) const {
+ if (ADD_TEST_USER_ACCOUNTS_FOR_MULTI_USER_TEST_ENVIRONMENT &&
+ index >= (int)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