Index: chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
index 761c6bd79e43aaf983a79c9c02708c9cc48f585f..6ac134048e5c31c26ada9edd9a81b48b2e98e931 100644 |
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
@@ -13,6 +13,8 @@ |
#include "chrome/browser/chromeos/brightness_observer.h" |
#include "chrome/browser/chromeos/cros/cros_library.h" |
#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" |
+#include "chrome/browser/chromeos/dbus/session_manager_client.h" |
+#include "chrome/browser/chromeos/login/session_manager_observer.h" |
#include "chrome/browser/chromeos/net/cros_network_change_notifier_factory.h" |
#include "chrome/browser/chromeos/system/statistics_provider.h" |
#include "chrome/browser/defaults.h" |
@@ -75,6 +77,10 @@ ChromeBrowserMainPartsChromeos::ChromeBrowserMainPartsChromeos( |
ChromeBrowserMainPartsChromeos::~ChromeBrowserMainPartsChromeos() { |
// We should remove observers attached to D-Bus clients before |
// DBusThreadManager is shut down. |
+ if (session_manager_observer_.get()) { |
+ chromeos::DBusThreadManager::Get()->session_manager_client()-> |
+ RemoveObserver(session_manager_observer_.get()); |
+ } |
if (brightness_observer_.get()) { |
chromeos::DBusThreadManager::Get()->power_manager_client()->RemoveObserver( |
brightness_observer_.get()); |
@@ -139,4 +145,9 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() { |
brightness_observer_.reset(new chromeos::BrightnessObserver()); |
chromeos::DBusThreadManager::Get()->power_manager_client()->AddObserver( |
brightness_observer_.get()); |
+ // Initialize the session manager observer so that we'll take actions |
+ // per signals sent from the session manager. |
+ session_manager_observer_.reset(new chromeos::SessionManagerObserver); |
+ chromeos::DBusThreadManager::Get()->session_manager_client()-> |
+ AddObserver(session_manager_observer_.get()); |
} |