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

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

Issue 2429033003: cros: Cleanup lock screen and OOBE C++ backing code. (Closed)
Patch Set: Address comments Created 4 years, 2 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/webui_screen_locker.h
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.h b/chrome/browser/chromeos/login/lock/webui_screen_locker.h
index 1d32cd49f457194d231b852037be3c3bd069fe3c..fe728e342db73a214f9d52e145412dacef8e6666 100644
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.h
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.h
@@ -15,7 +15,6 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
-#include "chrome/browser/chromeos/login/lock/screen_locker_delegate.h"
#include "chrome/browser/chromeos/login/signin_screen_controller.h"
#include "chrome/browser/chromeos/login/signin_specifics.h"
#include "chrome/browser/chromeos/login/ui/lock_window.h"
@@ -46,12 +45,9 @@ namespace test {
class WebUIScreenLockerTester;
}
-// This version of ScreenLockerDelegate displays a WebUI lock screen based on
-// the Oobe account picker screen.
+// Displays a WebUI lock screen based on the Oobe account picker screen.
class WebUIScreenLocker : public WebUILoginView,
public LoginDisplay::Delegate,
- public ScreenLockerDelegate,
- public LockWindow::Observer,
public ash::LockStateObserver,
public views::WidgetObserver,
public PowerManagerClient::Observer,
@@ -61,21 +57,40 @@ class WebUIScreenLocker : public WebUILoginView,
public content::WebContentsObserver {
public:
explicit WebUIScreenLocker(ScreenLocker* screen_locker);
+ ~WebUIScreenLocker() override;
+
+ // Begin initializing the widget and views::WebView that show the lock screen.
+ // ScreenLockReady is called when all initialization has finished.
+ void LockScreen();
- // ScreenLockerDelegate:
- void LockScreen() override;
- void ScreenLockReady() override;
- void OnAuthenticate() override;
- void SetInputEnabled(bool enabled) override;
+ // Enable/disable password input.
+ void SetInputEnabled(bool enabled);
+
+ // Disables all UI needed and shows error bubble with |message|. If
+ // |sign_out_only| is true then all other input except "Sign Out" button is
+ // blocked.
void ShowErrorMessage(int error_msg_id,
- HelpAppLauncher::HelpTopic help_topic_id) override;
- void ClearErrors() override;
- void AnimateAuthenticationSuccess() override;
- gfx::NativeWindow GetNativeWindow() const override;
- content::WebUI* GetAssociatedWebUI() override;
- void OnLockWebUIReady() override;
- void OnLockBackgroundDisplayed() override;
- void OnHeaderBarVisible() override;
+ HelpAppLauncher::HelpTopic help_topic_id);
+
+ // Close message bubble to clear error messages.
+ void ClearErrors();
+
+ // Allows to have visual effects once unlock authentication is successful,
+ // Must call ScreenLocker::UnlockOnLoginSuccess() once all effects are done.
+ void AnimateAuthenticationSuccess();
+
+ // Called when the webui lock screen is ready. This gets invoked by a
+ // chrome.send from the embedded webui.
+ void OnLockWebUIReady();
+
+ // Called when webui lock screen wallpaper is loaded and displayed.
+ void OnLockBackgroundDisplayed();
+
+ // Called when the webui header bar becomes visible.
+ void OnHeaderBarVisible();
+
+ private:
+ friend class test::WebUIScreenLockerTester;
// LoginDisplay::Delegate:
void CancelPasswordChangedFlow() override;
@@ -97,9 +112,6 @@ class WebUIScreenLocker : public WebUILoginView,
void Signout() override;
bool IsUserWhitelisted(const AccountId& account_id) override;
- // LockWindow::Observer:
- void OnLockWindowReady() override;
-
// LockStateObserver:
void OnLockStateEvent(ash::LockStateObserver::EventType event) override;
@@ -127,13 +139,14 @@ class WebUIScreenLocker : public WebUILoginView,
void OnDisplayMetricsChanged(const display::Display& display,
uint32_t changed_metrics) override;
- // Returns instance of the OOBE WebUI.
- OobeUI* GetOobeUI();
+ // Inform the screen locker that the screen has been locked
+ void ScreenLockReady();
- private:
- friend class test::WebUIScreenLockerTester;
+ // Called when the lock window is ready.
+ void OnLockWindowReady();
- ~WebUIScreenLocker() override;
+ // Returns the native window displaying the lock screen.
+ gfx::NativeWindow GetNativeWindow() const;
// Ensures that user pod is focused.
void FocusUserPod();
@@ -141,8 +154,11 @@ class WebUIScreenLocker : public WebUILoginView,
// Reset user pod and ensures that user pod is focused.
void ResetAndFocusUserPod();
+ // The ScreenLocker that owns this instance.
+ ScreenLocker* screen_locker_ = nullptr;
+
// The screen locker window.
- views::Widget* lock_window_ = nullptr;
+ LockWindow* lock_window_ = nullptr;
// Sign-in Screen controller instance (owns login screens).
std::unique_ptr<SignInScreenController> signin_screen_controller_;
« no previous file with comments | « chrome/browser/chromeos/login/lock/screen_locker_tester.cc ('k') | chrome/browser/chromeos/login/lock/webui_screen_locker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698