diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-31 06:46:51 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-31 06:46:51 +0000 |
commit | 3f42d9c0aa0191c89e89a03c66337b6b20b761be (patch) | |
tree | 3daf5ac08f5158a841ec2964b12235e78bc9ce58 /chrome/browser/chromeos | |
parent | 33bbb00a7be2dd2f273474de64a87d5ab9dffda4 (diff) | |
download | chromium_src-3f42d9c0aa0191c89e89a03c66337b6b20b761be.zip chromium_src-3f42d9c0aa0191c89e89a03c66337b6b20b761be.tar.gz chromium_src-3f42d9c0aa0191c89e89a03c66337b6b20b761be.tar.bz2 |
Replace SystemEventObserver with ScreenLockObserver and ResumeObserver
chromeos/power looks more suitable place for the code than chromeos/system
BUG=None
TEST=Turn on spoken feedback and ensure audio feedbacks are made when resuming from suspend or unlocking screen.
Review URL: http://codereview.chromium.org/9234060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119867 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
8 files changed, 121 insertions, 108 deletions
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc index 5dee70d..6ab7b05 100644 --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc @@ -34,10 +34,11 @@ #include "chrome/browser/chromeos/net/cros_network_change_notifier_factory.h" #include "chrome/browser/chromeos/net/network_change_notifier_chromeos.h" #include "chrome/browser/chromeos/power/brightness_observer.h" +#include "chrome/browser/chromeos/power/resume_observer.h" +#include "chrome/browser/chromeos/power/screen_lock_observer.h" #include "chrome/browser/chromeos/status/status_area_view_chromeos.h" #include "chrome/browser/chromeos/system/runtime_environment.h" #include "chrome/browser/chromeos/system/statistics_provider.h" -#include "chrome/browser/chromeos/system/system_event_observer.h" #include "chrome/browser/chromeos/system_key_event_listener.h" #include "chrome/browser/chromeos/upgrade_detector_chromeos.h" #include "chrome/browser/chromeos/web_socket_proxy_controller.h" @@ -276,6 +277,8 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() { brightness_observer_.reset(new chromeos::BrightnessObserver()); chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver( brightness_observer_.get()); + resume_observer_.reset(new chromeos::ResumeObserver()); + screen_lock_observer_.reset(new chromeos::ScreenLockObserver()); // 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); @@ -288,9 +291,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() { // Initialize the burn manager. chromeos::imageburner::BurnManager::Initialize(); - // Initialize the system event observer. - chromeos::system::SystemEventObserver::Initialize(); - // Initialize the network change notifier for Chrome OS. The network // change notifier starts to monitor changes from the power manager and // the network manager. @@ -500,6 +500,8 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> RemoveObserver(session_manager_observer_.get()); } + screen_lock_observer_.reset(); + resume_observer_.reset(); if (brightness_observer_.get()) { chromeos::DBusThreadManager::Get()->GetPowerManagerClient() ->RemoveObserver(brightness_observer_.get()); @@ -508,7 +510,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { // Shut these down here instead of in the destructor in case we exited before // running BrowserMainLoop::RunMainMessageLoopParts() and never initialized // these. - chromeos::system::SystemEventObserver::Shutdown(); chromeos::BluetoothManager::Shutdown(); // The XInput2 event listener needs to be shut down earlier than when diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.h b/chrome/browser/chromeos/chrome_browser_main_chromeos.h index 7e165f8..156dc58 100644 --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.h +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.h @@ -10,6 +10,8 @@ namespace chromeos { class BrightnessObserver; +class ResumeObserver; +class ScreenLockObserver; class SessionManagerObserver; #if defined(USE_AURA) @@ -41,6 +43,8 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux { private: scoped_ptr<chromeos::BrightnessObserver> brightness_observer_; + scoped_ptr<chromeos::ResumeObserver> resume_observer_; + scoped_ptr<chromeos::ScreenLockObserver> screen_lock_observer_; scoped_ptr<chromeos::SessionManagerObserver> session_manager_observer_; #if defined(USE_AURA) diff --git a/chrome/browser/chromeos/power/resume_observer.cc b/chrome/browser/chromeos/power/resume_observer.cc new file mode 100644 index 0000000..3b6783e --- /dev/null +++ b/chrome/browser/chromeos/power/resume_observer.cc @@ -0,0 +1,24 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/power/resume_observer.h" + +#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" +#include "chrome/browser/extensions/system/system_api.h" + +namespace chromeos { + +ResumeObserver::ResumeObserver() { + DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); +} + +ResumeObserver::~ResumeObserver() { + DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); +} + +void ResumeObserver::SystemResumed() { + extensions::DispatchWokeUpEvent(); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/power/resume_observer.h b/chrome/browser/chromeos/power/resume_observer.h new file mode 100644 index 0000000..03c65d1 --- /dev/null +++ b/chrome/browser/chromeos/power/resume_observer.h @@ -0,0 +1,32 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_POWER_RESUME_OBSERVER_H_ +#define CHROME_BROWSER_CHROMEOS_POWER_RESUME_OBSERVER_H_ +#pragma once + +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "chrome/browser/chromeos/dbus/power_manager_client.h" + +namespace chromeos { + +// A class to observe system resume events and dispatch onWokeUp extension API +// events. +class ResumeObserver : public PowerManagerClient::Observer { + public: + // This class registers/unregisters itself as an observer in ctor/dtor. + ResumeObserver(); + virtual ~ResumeObserver(); + + // PowerManagerClient::Observer overrides. + virtual void SystemResumed() OVERRIDE; + + private: + DISALLOW_COPY_AND_ASSIGN(ResumeObserver); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_POWER_RESUME_OBSERVER_H_ diff --git a/chrome/browser/chromeos/power/screen_lock_observer.cc b/chrome/browser/chromeos/power/screen_lock_observer.cc new file mode 100644 index 0000000..c234e36 --- /dev/null +++ b/chrome/browser/chromeos/power/screen_lock_observer.cc @@ -0,0 +1,24 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/power/screen_lock_observer.h" + +#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" +#include "chrome/browser/extensions/system/system_api.h" + +namespace chromeos { + +ScreenLockObserver::ScreenLockObserver() { + DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); +} + +ScreenLockObserver::~ScreenLockObserver() { + DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); +} + +void ScreenLockObserver::UnlockScreen() { + extensions::DispatchScreenUnlockedEvent(); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/power/screen_lock_observer.h b/chrome/browser/chromeos/power/screen_lock_observer.h new file mode 100644 index 0000000..2f04cf3 --- /dev/null +++ b/chrome/browser/chromeos/power/screen_lock_observer.h @@ -0,0 +1,31 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_POWER_SCREEN_LOCK_OBSERVER_H_ +#define CHROME_BROWSER_CHROMEOS_POWER_SCREEN_LOCK_OBSERVER_H_ +#pragma once + +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "chrome/browser/chromeos/dbus/power_manager_client.h" + +namespace chromeos { + +// A class to observe screen lock events and dispatch onScreenUnlocked extension +// API events. +class ScreenLockObserver : public PowerManagerClient::Observer { + public: + // This class registers/unregisters itself as an observer in ctor/dtor. + ScreenLockObserver(); + virtual ~ScreenLockObserver(); + + // PowerManagerClient::Observer override. + virtual void UnlockScreen() OVERRIDE; + private: + DISALLOW_COPY_AND_ASSIGN(ScreenLockObserver); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_POWER_SCREEN_LOCK_OBSERVER_H_ diff --git a/chrome/browser/chromeos/system/system_event_observer.cc b/chrome/browser/chromeos/system/system_event_observer.cc deleted file mode 100644 index e57cc62..0000000 --- a/chrome/browser/chromeos/system/system_event_observer.cc +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/chromeos/system/system_event_observer.h" - -#include "base/logging.h" -#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" -#include "chrome/browser/extensions/system/system_api.h" - -namespace chromeos { -namespace system { - -namespace { - -SystemEventObserver* g_system_event_observer = NULL; - -} - -SystemEventObserver::SystemEventObserver() { -} - -SystemEventObserver::~SystemEventObserver() { -} - -void SystemEventObserver::SystemResumed() { - extensions::DispatchWokeUpEvent(); -} - -void SystemEventObserver::UnlockScreen() { - extensions::DispatchScreenUnlockedEvent(); -} - -// static -void SystemEventObserver::Initialize() { - DCHECK(!g_system_event_observer); - g_system_event_observer = new SystemEventObserver(); - VLOG(1) << "SystemEventObserver initialized"; - DBusThreadManager::Get()->GetPowerManagerClient()-> - AddObserver(g_system_event_observer); -} - -// static -SystemEventObserver* SystemEventObserver::GetInstance() { - return g_system_event_observer; -} - -// static -void SystemEventObserver::Shutdown() { - DCHECK(g_system_event_observer); - DBusThreadManager::Get()->GetPowerManagerClient()-> - RemoveObserver(g_system_event_observer); - delete g_system_event_observer; - g_system_event_observer = NULL; - VLOG(1) << "SystemEventObserver Shutdown completed"; -} - -} // namespace system -} // namespace chromeos diff --git a/chrome/browser/chromeos/system/system_event_observer.h b/chrome/browser/chromeos/system/system_event_observer.h deleted file mode 100644 index e3ec3f5..0000000 --- a/chrome/browser/chromeos/system/system_event_observer.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_SYSTEM_EVENT_OBSERVER_H_ -#define CHROME_BROWSER_CHROMEOS_SYSTEM_SYSTEM_EVENT_OBSERVER_H_ -#pragma once - -#include "chrome/browser/chromeos/dbus/power_manager_client.h" - -namespace chromeos { -namespace system { - -// A singleton class to observe system events like wake up from sleep and -// screen unlock. -class SystemEventObserver : public PowerManagerClient::Observer { - public: - virtual ~SystemEventObserver(); - - // PowerManagerClient::Observer overrides. - virtual void SystemResumed() OVERRIDE; - - virtual void UnlockScreen() OVERRIDE; - - // Creates the global SystemEventObserver instance. - static void Initialize(); - - // Returns a pointer to the global SystemEventObserver instance. - // Initialize() should already have been called. - static SystemEventObserver* GetInstance(); - - // Destroys the global SystemEventObserver Instance. - static void Shutdown(); - - private: - SystemEventObserver(); - - DISALLOW_COPY_AND_ASSIGN(SystemEventObserver); -}; - -} // namespace system -} // namespace chromeos - -#endif // CHROME_BROWSER_CHROMEOS_SYSTEM_SYSTEM_EVENT_OBSERVER_H_ |