Index: chrome/browser/chromeos/cros/screen_lock_library.cc |
diff --git a/chrome/browser/chromeos/cros/screen_lock_library.cc b/chrome/browser/chromeos/cros/screen_lock_library.cc |
index a63f11a9e93a22035034fb29ebed7b0c20564c85..ae3c2de6cb1174ffbcb88e50bf5e0c5e70ebbc83 100644 |
--- a/chrome/browser/chromeos/cros/screen_lock_library.cc |
+++ b/chrome/browser/chromeos/cros/screen_lock_library.cc |
@@ -1,29 +1,29 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 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/cros/screen_lock_library.h" |
+#include "base/basictypes.h" |
+#include "base/logging.h" |
#include "base/message_loop.h" |
-#include "base/string_util.h" |
+#include "base/observer_list.h" |
#include "chrome/browser/chromeos/cros/cros_library.h" |
#include "content/browser/browser_thread.h" |
+#include "third_party/cros/chromeos_screen_lock.h" |
namespace chromeos { |
-// This class handles the interaction with the ChromeOS screen lock APIs. |
class ScreenLockLibraryImpl : public ScreenLockLibrary { |
public: |
ScreenLockLibraryImpl() { |
- if (CrosLibrary::Get()->EnsureLoaded()) { |
+ if (CrosLibrary::Get()->EnsureLoaded()) |
stevenjb
2011/07/28 01:23:30
Init() should not get called in the constructor, i
tfarina
2011/07/28 01:37:28
By this, you mean:
ScreeLockLibrary* ScreenLockLib
|
Init(); |
- } |
} |
~ScreenLockLibraryImpl() { |
- if (screen_lock_connection_) { |
+ if (screen_lock_connection_) |
chromeos::DisconnectScreenLock(screen_lock_connection_); |
- } |
} |
void AddObserver(Observer* observer) { |
@@ -51,9 +51,27 @@ class ScreenLockLibraryImpl : public ScreenLockLibrary { |
} |
private: |
+ static void ScreenLockedHandler(void* object, ScreenLockEvent event) { |
+ ScreenLockLibraryImpl* self = static_cast<ScreenLockLibraryImpl*>(object); |
+ switch (event) { |
+ case chromeos::LockScreen: |
+ self->LockScreen(); |
+ break; |
+ case chromeos::UnlockScreen: |
+ self->UnlockScreen(); |
+ break; |
+ case chromeos::UnlockScreenFailed: |
+ self->UnlockScreenFailed(); |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
+ } |
+ } |
+ |
void Init() { |
- screen_lock_connection_ = chromeos::MonitorScreenLock( |
- &ScreenLockedHandler, this); |
+ screen_lock_connection_ = |
+ chromeos::MonitorScreenLock(&ScreenLockedHandler, this); |
} |
void LockScreen() { |
@@ -89,26 +107,9 @@ class ScreenLockLibraryImpl : public ScreenLockLibrary { |
FOR_EACH_OBSERVER(Observer, observers_, UnlockScreenFailed(this)); |
} |
- static void ScreenLockedHandler(void* object, ScreenLockEvent event) { |
- ScreenLockLibraryImpl* self = static_cast<ScreenLockLibraryImpl*>(object); |
- switch (event) { |
- case chromeos::LockScreen: |
- self->LockScreen(); |
- break; |
- case chromeos::UnlockScreen: |
- self->UnlockScreen(); |
- break; |
- case chromeos::UnlockScreenFailed: |
- self->UnlockScreenFailed(); |
- break; |
- default: |
- NOTREACHED(); |
- } |
- } |
- |
ObserverList<Observer> observers_; |
- // A reference to the screen lock api |
+ // A reference to the screen lock API. |
chromeos::ScreenLockConnection screen_lock_connection_; |
DISALLOW_COPY_AND_ASSIGN(ScreenLockLibraryImpl); |