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 c9bb73e8c67ec9560ebd93a0779b9b8e9c3740f5..95068d625de3b72572ae9da63a681ae62f0c3167 100644 |
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
@@ -4,13 +4,16 @@ |
#include "chrome/browser/ui/ash/session_state_delegate.h" |
+#include "ash/session_state_observer.h" |
#include "base/logging.h" |
#include "chrome/browser/chromeos/login/screen_locker.h" |
+#include "chrome/browser/chromeos/login/user.h" |
#include "chrome/browser/chromeos/login/user_manager.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/session_manager_client.h" |
SessionStateDelegate::SessionStateDelegate() { |
+ chromeos::UserManager::Get()->AddSessionStateObserver(this); |
} |
SessionStateDelegate::~SessionStateDelegate() { |
@@ -72,8 +75,7 @@ const gfx::ImageSkia& SessionStateDelegate::GetUserImage( |
return chromeos::UserManager::Get()->GetLRULoggedInUsers()[index]->image(); |
} |
-void SessionStateDelegate::GetLoggedInUsers( |
- ash::UserEmailList* users) { |
+void SessionStateDelegate::GetLoggedInUsers(ash::UserIdList* users) { |
const chromeos::UserList& logged_in_users = |
chromeos::UserManager::Get()->GetLoggedInUsers(); |
for (chromeos::UserList::const_iterator it = logged_in_users.begin(); |
@@ -83,6 +85,23 @@ void SessionStateDelegate::GetLoggedInUsers( |
} |
} |
-void SessionStateDelegate::SwitchActiveUser(const std::string& email) { |
- chromeos::UserManager::Get()->SwitchActiveUser(email); |
+void SessionStateDelegate::SwitchActiveUser(const std::string& user_id) { |
+ chromeos::UserManager::Get()->SwitchActiveUser(user_id); |
+} |
+ |
+void SessionStateDelegate::AddSessionStateObserver( |
+ ash::SessionStateObserver* observer) { |
+ session_state_observer_list_.AddObserver(observer); |
+} |
+ |
+void SessionStateDelegate::RemoveSessionStateObserver( |
+ ash::SessionStateObserver* observer) { |
+ session_state_observer_list_.RemoveObserver(observer); |
+} |
+ |
+void SessionStateDelegate::ActiveUserChanged( |
+ const chromeos::User* active_user) { |
+ FOR_EACH_OBSERVER(ash::SessionStateObserver, |
+ session_state_observer_list_, |
+ ActiveUserChanged(active_user->email())); |
} |