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