diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-10 01:40:16 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-10 01:40:16 +0000 |
commit | 51625050bee35c77d3aca6dd3fefe48764809be3 (patch) | |
tree | 9236ba6fa847ddaad33b61ba642ce269a5a5df94 /ash | |
parent | 8d351f1b326d0bdf9fe1aa300522f6d39a2fe528 (diff) | |
download | chromium_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')
-rw-r--r-- | ash/ash.gyp | 4 | ||||
-rw-r--r-- | ash/shell.cc | 4 | ||||
-rw-r--r-- | ash/shell.h | 4 | ||||
-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 |
5 files changed, 51 insertions, 41 deletions
diff --git a/ash/ash.gyp b/ash/ash.gyp index eff5d20..22b49ca 100644 --- a/ash/ash.gyp +++ b/ash/ash.gyp @@ -258,12 +258,12 @@ 'system/chromeos/network/tray_sms.h', 'system/chromeos/network/tray_vpn.cc', 'system/chromeos/network/tray_vpn.h', + 'system/chromeos/power/power_event_observer.cc', + 'system/chromeos/power/power_event_observer.h', 'system/chromeos/power/power_status.cc', 'system/chromeos/power/power_status.h', 'system/chromeos/power/power_status_view.cc', 'system/chromeos/power/power_status_view.h', - 'system/chromeos/power/suspend_observer.cc', - 'system/chromeos/power/suspend_observer.h', 'system/chromeos/power/tray_power.cc', 'system/chromeos/power/tray_power.h', 'system/chromeos/power/user_activity_notifier.cc', diff --git a/ash/shell.cc b/ash/shell.cc index 0fdb0b7..92a81d5 100644 --- a/ash/shell.cc +++ b/ash/shell.cc @@ -121,8 +121,8 @@ #include "gpu/config/gpu_feature_type.h" #endif // defined(USE_X11) #include "ash/system/chromeos/brightness/brightness_controller_chromeos.h" +#include "ash/system/chromeos/power/power_event_observer.h" #include "ash/system/chromeos/power/power_status.h" -#include "ash/system/chromeos/power/suspend_observer.h" #include "ash/system/chromeos/power/user_activity_notifier.h" #include "ash/system/chromeos/power/video_activity_notifier.h" #endif // defined(OS_CHROMEOS) @@ -884,7 +884,7 @@ void Shell::Init() { scoped_ptr<ash::BrightnessControlDelegate>( new ash::system::BrightnessControllerChromeos).Pass()); - suspend_observer_.reset(new internal::SuspendObserver()); + power_event_observer_.reset(new internal::PowerEventObserver()); user_activity_notifier_.reset( new internal::UserActivityNotifier(user_activity_detector_.get())); video_activity_notifier_.reset( diff --git a/ash/shell.h b/ash/shell.h index f04c511..a72826c 100644 --- a/ash/shell.h +++ b/ash/shell.h @@ -122,6 +122,7 @@ class LocaleNotificationController; class MouseCursorEventFilter; class OutputConfiguratorAnimation; class OverlayEventFilter; +class PowerEventObserver; class ResizeShadowController; class ResolutionNotificationController; class RootWindowController; @@ -129,7 +130,6 @@ class ScopedTargetRootWindow; class ScreenPositionController; class SlowAnimationEventFilter; class StatusAreaWidget; -class SuspendObserver; class SystemGestureEventFilter; class SystemModalContainerEventFilter; class TouchObserverHUD; @@ -626,7 +626,7 @@ class ASH_EXPORT Shell locale_notification_controller_; #if defined(OS_CHROMEOS) - scoped_ptr<internal::SuspendObserver> suspend_observer_; + scoped_ptr<internal::PowerEventObserver> power_event_observer_; scoped_ptr<internal::UserActivityNotifier> user_activity_notifier_; scoped_ptr<internal::VideoActivityNotifier> video_activity_notifier_; #if defined(USE_X11) 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_ |