summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-31 06:46:51 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-31 06:46:51 +0000
commit3f42d9c0aa0191c89e89a03c66337b6b20b761be (patch)
tree3daf5ac08f5158a841ec2964b12235e78bc9ce58 /chrome/browser/chromeos
parent33bbb00a7be2dd2f273474de64a87d5ab9dffda4 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/chromeos/chrome_browser_main_chromeos.cc11
-rw-r--r--chrome/browser/chromeos/chrome_browser_main_chromeos.h4
-rw-r--r--chrome/browser/chromeos/power/resume_observer.cc24
-rw-r--r--chrome/browser/chromeos/power/resume_observer.h32
-rw-r--r--chrome/browser/chromeos/power/screen_lock_observer.cc24
-rw-r--r--chrome/browser/chromeos/power/screen_lock_observer.h31
-rw-r--r--chrome/browser/chromeos/system/system_event_observer.cc59
-rw-r--r--chrome/browser/chromeos/system/system_event_observer.h44
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_