Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Unified Diff: chrome/browser/chromeos/login/lock/screen_locker.h

Issue 2859363003: cros: Initial structure for views-based lock. (Closed)
Patch Set: Address comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698