summaryrefslogtreecommitdiffstats
path: root/ash/system
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-10 01:40:16 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-10 01:40:16 +0000
commit51625050bee35c77d3aca6dd3fefe48764809be3 (patch)
tree9236ba6fa847ddaad33b61ba642ce269a5a5df94 /ash/system
parent8d351f1b326d0bdf9fe1aa300522f6d39a2fe528 (diff)
downloadchromium_src-51625050bee35c77d3aca6dd3fefe48764809be3.zip
chromium_src-51625050bee35c77d3aca6dd3fefe48764809be3.tar.gz
chromium_src-51625050bee35c77d3aca6dd3fefe48764809be3.tar.bz2
chromeos: More power-related cleanup.
This consolidates SuspendObserver and ResumeObserver in a PowerEventObserver class within ash/system/chromeos/power and moves extension-related code into an ExtensionSystemEventObserver class. BUG=none Review URL: https://codereview.chromium.org/26692002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227855 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/system')
-rw-r--r--ash/system/chromeos/power/power_event_observer.cc (renamed from ash/system/chromeos/power/suspend_observer.cc)51
-rw-r--r--ash/system/chromeos/power/power_event_observer.h (renamed from ash/system/chromeos/power/suspend_observer.h)29
2 files changed, 45 insertions, 35 deletions
diff --git a/ash/system/chromeos/power/suspend_observer.cc b/ash/system/chromeos/power/power_event_observer.cc
index 7e9119c..2dc4a84 100644
--- a/ash/system/chromeos/power/suspend_observer.cc
+++ b/ash/system/chromeos/power/power_event_observer.cc
@@ -2,10 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/system/chromeos/power/suspend_observer.h"
+#include "ash/system/chromeos/power/power_event_observer.h"
#include "ash/session_state_delegate.h"
#include "ash/shell.h"
+#include "ash/system/tray/system_tray_notifier.h"
+#include "ash/wm/power_button_controller.h"
#include "ash/wm/user_activity_detector.h"
#include "base/prefs/pref_service.h"
#include "chromeos/dbus/dbus_thread_manager.h"
@@ -14,24 +16,26 @@
namespace ash {
namespace internal {
-SuspendObserver::SuspendObserver()
- : power_client_(
- chromeos::DBusThreadManager::Get()->GetPowerManagerClient()),
- session_client_(
- chromeos::DBusThreadManager::Get()->GetSessionManagerClient()),
- screen_locked_(false) {
- power_client_->AddObserver(this);
- session_client_->AddObserver(this);
+PowerEventObserver::PowerEventObserver() {
+ chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
+ AddObserver(this);
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ AddObserver(this);
}
-SuspendObserver::~SuspendObserver() {
- session_client_->RemoveObserver(this);
- session_client_ = NULL;
- power_client_->RemoveObserver(this);
- power_client_ = NULL;
+PowerEventObserver::~PowerEventObserver() {
+ chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
+ RemoveObserver(this);
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ RemoveObserver(this);
}
-void SuspendObserver::SuspendImminent() {
+void PowerEventObserver::BrightnessChanged(int level, bool user_initiated) {
+ Shell::GetInstance()->power_button_controller()->OnScreenBrightnessChanged(
+ static_cast<double>(level));
+}
+
+void PowerEventObserver::SuspendImminent() {
Shell* shell = Shell::GetInstance();
SessionStateDelegate* delegate = shell->session_state_delegate();
@@ -39,16 +43,23 @@ void SuspendObserver::SuspendImminent() {
// suspend and ask the session manager to lock the screen.
if (!screen_locked_ && delegate->ShouldLockScreenBeforeSuspending() &&
delegate->CanLockScreen()) {
- screen_lock_callback_ = power_client_->GetSuspendReadinessCallback();
- VLOG(1) << "Requesting screen lock from SuspendObserver";
- session_client_->RequestLockScreen();
+ screen_lock_callback_ = chromeos::DBusThreadManager::Get()->
+ GetPowerManagerClient()->GetSuspendReadinessCallback();
+ VLOG(1) << "Requesting screen lock from PowerEventObserver";
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ RequestLockScreen();
}
shell->user_activity_detector()->OnDisplayPowerChanging();
shell->output_configurator()->SuspendDisplays();
}
-void SuspendObserver::ScreenIsLocked() {
+void PowerEventObserver::SystemResumed(const base::TimeDelta& sleep_duration) {
+ Shell::GetInstance()->output_configurator()->ResumeDisplays();
+ Shell::GetInstance()->system_tray_notifier()->NotifyRefreshClock();
+}
+
+void PowerEventObserver::ScreenIsLocked() {
screen_locked_ = true;
// Stop blocking suspend after the screen is locked.
@@ -64,7 +75,7 @@ void SuspendObserver::ScreenIsLocked() {
}
}
-void SuspendObserver::ScreenIsUnlocked() {
+void PowerEventObserver::ScreenIsUnlocked() {
screen_locked_ = false;
}
diff --git a/ash/system/chromeos/power/suspend_observer.h b/ash/system/chromeos/power/power_event_observer.h
index 17cc931..aeb89b9 100644
--- a/ash/system/chromeos/power/suspend_observer.h
+++ b/ash/system/chromeos/power/power_event_observer.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef ASH_SYSTEM_CHROMEOS_POWER_SUSPEND_OBSERVER_H_
-#define ASH_SYSTEM_CHROMEOS_POWER_SUSPEND_OBSERVER_H_
+#ifndef ASH_SYSTEM_CHROMEOS_POWER_POWER_EVENT_OBSERVER_H_
+#define ASH_SYSTEM_CHROMEOS_POWER_POWER_EVENT_OBSERVER_H_
#include "base/basictypes.h"
#include "base/callback.h"
@@ -14,25 +14,23 @@
namespace ash {
namespace internal {
-// A class to observe suspend events.
-class SuspendObserver : public chromeos::PowerManagerClient::Observer,
- public chromeos::SessionManagerClient::Observer {
+// A class that observes power-management-related events.
+class PowerEventObserver : public chromeos::PowerManagerClient::Observer,
+ public chromeos::SessionManagerClient::Observer {
public:
// This class registers/unregisters itself as an observer in ctor/dtor.
- SuspendObserver();
- virtual ~SuspendObserver();
+ PowerEventObserver();
+ virtual ~PowerEventObserver();
- // chromeos::PowerManagerClient::Observer override.
+ // chromeos::PowerManagerClient::Observer overrides:
+ virtual void BrightnessChanged(int level, bool user_initiated) OVERRIDE;
virtual void SuspendImminent() OVERRIDE;
+ virtual void SystemResumed(const base::TimeDelta& sleep_duration) OVERRIDE;
// chromeos::SessionManagerClient::Observer overrides.
virtual void ScreenIsLocked() OVERRIDE;
virtual void ScreenIsUnlocked() OVERRIDE;
- private:
- chromeos::PowerManagerClient* power_client_; // not owned
- chromeos::SessionManagerClient* session_client_; // not owned
-
// Is the screen currently locked?
bool screen_locked_;
@@ -40,10 +38,11 @@ class SuspendObserver : public chromeos::PowerManagerClient::Observer,
// system is ready to be suspended.
base::Closure screen_lock_callback_;
- DISALLOW_COPY_AND_ASSIGN(SuspendObserver);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PowerEventObserver);
};
} // namespace internal
-} // namespace ash
+} // namespace chromeos
-#endif // ASH_SYSTEM_CHROMEOS_POWER_SUSPEND_OBSERVER_H_
+#endif // ASH_SYSTEM_CHROMEOS_POWER_POWER_EVENT_OBSERVER_H_