| 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..afb3c441f1d6bdc37409556527e0f10643d92902 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
|
| +
|
| 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,53 @@ 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;
|
| + }
|
| + 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 &&
|
| + static_cast<size_t>(index) >=
|
| + 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 &&
|
| + 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);
|
| +}
|
|
|