Chromium Code Reviews| 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); |