| Index: chrome/browser/chromeos/login/lock/screen_locker.h
|
| diff --git a/chrome/browser/chromeos/login/lock/screen_locker.h b/chrome/browser/chromeos/login/lock/screen_locker.h
|
| index 5a4aff96e6d748e675ff615c90cda13e149a67ba..dba07eb44bdd26fa11b408c417e09a9f89f03d63 100644
|
| --- a/chrome/browser/chromeos/login/lock/screen_locker.h
|
| +++ b/chrome/browser/chromeos/login/lock/screen_locker.h
|
| @@ -24,6 +24,10 @@
|
| #include "ui/base/accelerators/accelerator.h"
|
| #include "ui/base/ime/chromeos/input_method_manager.h"
|
|
|
| +namespace content {
|
| +class WebContents;
|
| +}
|
| +
|
| namespace chromeos {
|
|
|
| class Authenticator;
|
| @@ -44,6 +48,59 @@ class WebUIScreenLockerTester;
|
| class ScreenLocker : public AuthStatusConsumer,
|
| public device::mojom::FingerprintObserver {
|
| public:
|
| + enum class FingerprintState {
|
| + kHidden,
|
| + kDefault,
|
| + kSignin,
|
| + kFailed,
|
| + kRemoved,
|
| + };
|
| +
|
| + // Delegate used to send internal state changes back to the UI.
|
| + class Delegate {
|
| + public:
|
| + Delegate();
|
| + virtual ~Delegate();
|
| +
|
| + // Enable/disable password input.
|
| + virtual void SetPasswordInputEnabled(bool enabled) = 0;
|
| +
|
| + // Show the given error message.
|
| + virtual void ShowErrorMessage(int error_msg_id,
|
| + HelpAppLauncher::HelpTopic help_topic_id) = 0;
|
| +
|
| + // Close any displayed error messages.
|
| + virtual void ClearErrors() = 0;
|
| +
|
| + // Run any visual effects after authentication is successful. This must call
|
| + // ScreenLocker::UnlockOnLoginSuccess() after all effects are done.
|
| + virtual void AnimateAuthenticationSuccess() = 0;
|
| +
|
| + // Called when the webui lock screen is ready. This gets invoked by a
|
| + // chrome.send from the embedded webui.
|
| + virtual void OnLockWebUIReady() = 0;
|
| +
|
| + // Called when webui lock screen wallpaper is loaded and displayed.
|
| + virtual void OnLockBackgroundDisplayed() = 0;
|
| +
|
| + // Called when the webui header bar becomes visible.
|
| + virtual void OnHeaderBarVisible() = 0;
|
| +
|
| + // Called by ScreenLocker to notify that ash lock animation finishes.
|
| + virtual void OnAshLockAnimationFinished() = 0;
|
| +
|
| + // Called when fingerprint state has changed.
|
| + virtual void SetFingerprintState(const AccountId& account_id,
|
| + FingerprintState state) = 0;
|
| +
|
| + // Returns the web contents used to back the lock screen.
|
| + // TODO(jdufault): Remove this function when we remove WebUIScreenLocker.
|
| + virtual content::WebContents* GetWebContents() = 0;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Delegate);
|
| + };
|
| +
|
| explicit ScreenLocker(const user_manager::UserList& users);
|
|
|
| // Returns the default instance if it has been created.
|
| @@ -87,8 +144,13 @@ class ScreenLocker : public AuthStatusConsumer,
|
| HelpAppLauncher::HelpTopic help_topic_id,
|
| bool sign_out_only);
|
|
|
| - // Returns the WebUIScreenLocker used to lock the screen.
|
| - WebUIScreenLocker* web_ui() { return web_ui_.get(); }
|
| + // Returns the WebUIScreenLocker instance. This should only be used in tests.
|
| + // When using views-based lock this will be a nullptr.
|
| + // TODO(jdufault): Remove this function, make tests agnostic to ui impl.
|
| + WebUIScreenLocker* web_ui_for_testing() { return web_ui_.get(); }
|
| +
|
| + // Returns delegate that can be used to talk to the view-layer.
|
| + Delegate* delegate() { return delegate_; }
|
|
|
| // Returns the users to authenticate.
|
| const user_manager::UserList& users() const { return users_; }
|
| @@ -169,6 +231,10 @@ class ScreenLocker : public AuthStatusConsumer,
|
| // WebUIScreenLocker instance in use.
|
| std::unique_ptr<WebUIScreenLocker> web_ui_;
|
|
|
| + // Delegate used to talk to the view.
|
| + Delegate* delegate_ = nullptr;
|
| + bool owns_delegate_ = false;
|
| +
|
| // Users that can unlock the device.
|
| user_manager::UserList users_;
|
|
|
|
|