Index: chrome/browser/chromeos/login/lock/views_screen_locker.h |
diff --git a/chrome/browser/chromeos/login/lock/views_screen_locker.h b/chrome/browser/chromeos/login/lock/views_screen_locker.h |
index 35dc235dcae1970e60b4f30b499657504577abd2..a7f692a151bd729f568614ad7f694dfcf8452251 100644 |
--- a/chrome/browser/chromeos/login/lock/views_screen_locker.h |
+++ b/chrome/browser/chromeos/login/lock/views_screen_locker.h |
@@ -7,7 +7,9 @@ |
#include "base/memory/weak_ptr.h" |
#include "chrome/browser/chromeos/login/lock/screen_locker.h" |
+#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/ui/ash/lock_screen_client.h" |
+#include "chromeos/dbus/power_manager_client.h" |
namespace chromeos { |
@@ -19,11 +21,15 @@ class UserSelectionScreenProxy; |
// It is also a ScreenLocker::Delegate which handles calls from chrome into |
// ash (views-based lockscreen). |
class ViewsScreenLocker : public LockScreenClient::Delegate, |
- public ScreenLocker::Delegate { |
+ public ScreenLocker::Delegate, |
+ public PowerManagerClient::Observer { |
public: |
explicit ViewsScreenLocker(ScreenLocker* screen_locker); |
~ViewsScreenLocker() override; |
+ void Init(); |
+ void OnLockScreenReady(); |
+ |
// ScreenLocker::Delegate: |
void SetPasswordInputEnabled(bool enabled) override; |
void ShowErrorMessage(int error_msg_id, |
@@ -38,14 +44,23 @@ class ViewsScreenLocker : public LockScreenClient::Delegate, |
ScreenLocker::FingerprintState state) override; |
content::WebContents* GetWebContents() override; |
- void Init(); |
- void OnLockScreenReady(); |
- |
- private: |
// LockScreenClient::Delegate |
+ void HandleAuthenticateUser(const AccountId& account_id, |
+ const std::string& hashed_password, |
+ bool authenticated_by_pin, |
+ AuthenticateUserCallback callback) override; |
void HandleAttemptUnlock(const AccountId& account_id) override; |
void HandleHardlockPod(const AccountId& account_id) override; |
void HandleRecordClickOnLockIcon(const AccountId& account_id) override; |
+ void HandleOnFocusPod(const AccountId& account_id) override; |
+ void HandleOnNoPodFocused() override; |
+ |
+ // PowerManagerClient::Observer: |
+ void SuspendDone(const base::TimeDelta& sleep_duration) override; |
+ |
+ private: |
+ void UpdatePinKeyboardState(const AccountId& account_id); |
+ void OnAllowedInputMethodsChanged(); |
std::unique_ptr<UserSelectionScreenProxy> user_selection_screen_proxy_; |
std::unique_ptr<UserSelectionScreen> user_selection_screen_; |
@@ -56,6 +71,16 @@ class ViewsScreenLocker : public LockScreenClient::Delegate, |
// Time when lock was initiated, required for metrics. |
base::TimeTicks lock_time_; |
+ base::Optional<AccountId> focused_pod_account_id_; |
+ |
+ // Input Method Engine state used at lock screen. |
+ scoped_refptr<input_method::InputMethodManager::State> ime_state_; |
+ |
+ std::unique_ptr<CrosSettings::ObserverSubscription> |
+ allowed_input_methods_subscription_; |
+ |
+ bool lock_screen_ready_ = false; |
+ |
base::WeakPtrFactory<ViewsScreenLocker> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(ViewsScreenLocker); |