Index: chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
index ae77fccc9316471cf60e2798ed2d0b5dd0984fb1..b77c18f7eeb6ad083cfad0edae6e830171e4a850 100644 |
--- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
+++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
@@ -66,6 +66,7 @@ |
#include "chrome/common/url_constants.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/power_manager_client.h" |
+#include "chromeos/dbus/session_manager_client.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_service.h" |
@@ -152,6 +153,7 @@ void BluetoothDeviceConnectError() { |
class SystemTrayDelegate : public ash::SystemTrayDelegate, |
public AudioHandler::VolumeObserver, |
public PowerManagerClient::Observer, |
+ public SessionManagerClient::Observer, |
public NetworkMenuIcon::Delegate, |
public NetworkMenu::Delegate, |
public NetworkLibrary::NetworkManagerObserver, |
@@ -184,6 +186,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
DBusThreadManager::Get()->GetPowerManagerClient()->RequestStatusUpdate( |
PowerManagerClient::UPDATE_INITIAL); |
+ DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this); |
NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); |
crosnet->AddNetworkManagerObserver(this); |
@@ -226,6 +229,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
AudioHandler* audiohandler = AudioHandler::GetInstance(); |
if (audiohandler) |
audiohandler->RemoveVolumeObserver(this); |
+ DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); |
DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); |
if (crosnet) { |
@@ -380,8 +384,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
} |
virtual void RequestLockScreen() OVERRIDE { |
- DBusThreadManager::Get()->GetPowerManagerClient()-> |
- NotifyScreenLockRequested(); |
+ DBusThreadManager::Get()->GetSessionManagerClient()->RequestLockScreen(); |
} |
virtual void RequestRestart() OVERRIDE { |
@@ -951,6 +954,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
NotifyRefreshClock(); |
} |
+ // Overridden from SessionManagerClient::Observer. |
virtual void LockScreen() OVERRIDE { |
screen_locked_ = true; |
ash::Shell::GetInstance()->status_area_widget()-> |