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

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

Issue 15718003: Add SessionStateObserver with ActiveUserChanged() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: close button when switching users, notify observers with ActiveUserChanged() when new user logs in 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 c9bb73e8c67ec9560ebd93a0779b9b8e9c3740f5..8918dd4244daa8bcd9d6ed02e80a3ec532240de0 100644
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
@@ -6,11 +6,13 @@
#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() {
@@ -86,3 +88,20 @@ void SessionStateDelegate::GetLoggedInUsers(
void SessionStateDelegate::SwitchActiveUser(const std::string& email) {
chromeos::UserManager::Get()->SwitchActiveUser(email);
}
+
+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_,
bartfab (slow) 2013/06/03 09:00:06 Nit: Indent one space less.
Nikita (slow) 2013/06/03 09:21:28 Done.
+ ActiveUserChanged(active_user->email()));
+}

Powered by Google App Engine
This is Rietveld 408576698