| 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); | 
|  |