Index: chrome/browser/chromeos/login/screens/error_screen.h |
diff --git a/chrome/browser/chromeos/login/screens/error_screen.h b/chrome/browser/chromeos/login/screens/error_screen.h |
index deee58f727a96aa8a26bea6951833893d7fc92cd..2ba7ce002fe93858a5d046436787cbc9b1b95cd8 100644 |
--- a/chrome/browser/chromeos/login/screens/error_screen.h |
+++ b/chrome/browser/chromeos/login/screens/error_screen.h |
@@ -9,59 +9,48 @@ |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
-#include "chrome/browser/chromeos/login/screens/base_screen.h" |
-#include "chrome/browser/chromeos/login/screens/error_screen_actor_delegate.h" |
+#include "chrome/browser/chromeos/login/screens/network_error.h" |
+#include "chrome/browser/chromeos/login/screens/network_error_model.h" |
#include "chrome/browser/chromeos/login/ui/oobe_display.h" |
#include "chrome/browser/chromeos/settings/device_settings_service.h" |
+#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h" |
#include "chromeos/login/auth/login_performer.h" |
namespace chromeos { |
class BaseScreenDelegate; |
+class CaptivePortalWindowProxy; |
+class NetworkErrorView; |
// Controller for the error screen. |
-class ErrorScreen : public BaseScreen, |
- public ErrorScreenActorDelegate, |
- public LoginPerformer::Delegate { |
+class ErrorScreen : public NetworkErrorModel, public LoginPerformer::Delegate { |
public: |
- enum UIState { |
- UI_STATE_UNKNOWN = 0, |
- UI_STATE_UPDATE, |
- UI_STATE_SIGNIN, |
- UI_STATE_SUPERVISED, |
- UI_STATE_KIOSK_MODE, |
- UI_STATE_LOCAL_STATE_ERROR, |
- UI_STATE_AUTO_ENROLLMENT_ERROR, |
- UI_STATE_ROLLBACK_ERROR, |
- }; |
- |
- enum ErrorState { |
- ERROR_STATE_UNKNOWN = 0, |
- ERROR_STATE_PORTAL, |
- ERROR_STATE_OFFLINE, |
- ERROR_STATE_PROXY, |
- ERROR_STATE_AUTH_EXT_TIMEOUT, |
- ERROR_STATE_NONE, |
- // States above are being logged to histograms. |
- // Please keep ERROR_STATE_NONE as the last one of the histogram values. |
- ERROR_STATE_KIOSK_ONLINE, |
- }; |
- |
- ErrorScreen(BaseScreenDelegate* base_screen_delegate, |
- ErrorScreenActor* actor); |
+ ErrorScreen(BaseScreenDelegate* base_screen_delegate, NetworkErrorView* view); |
~ErrorScreen() override; |
- // BaseScreen implementation. |
+ // NetworkErrorModel: |
void PrepareToShow() override; |
void Show() override; |
void Hide() override; |
- std::string GetName() const override; |
- |
- // ErrorScreenActorDelegate implementation: |
- void OnErrorShow() override; |
- void OnErrorHide() override; |
- void OnLaunchOobeGuestSession() override; |
- void OnActorDestroyed() override; |
+ void OnShow() override; |
+ void OnHide() override; |
+ void OnUserAction(const std::string& action_id) override; |
+ void OnContextKeyUpdated(const ::login::ScreenContext::KeyType& key) override; |
+ void AllowGuestSignin(bool allowed) override; |
+ void AllowOfflineLogin(bool allowed) override; |
+ void FixCaptivePortal() override; |
+ NetworkError::UIState GetUIState() const override; |
+ NetworkError::ErrorState GetErrorState() const override; |
+ OobeUI::Screen GetParentScreen() const override; |
+ void HideCaptivePortal() override; |
+ void OnViewDestroyed(NetworkErrorView* view) override; |
+ void SetUIState(NetworkError::UIState ui_state) override; |
+ void SetErrorState(NetworkError::ErrorState error_state, |
+ const std::string& network) override; |
+ void SetParentScreen(OobeUI::Screen parent_screen) override; |
+ void SetHideCallback(const base::Closure& on_hide) override; |
+ void ShowCaptivePortal() override; |
+ void ShowConnectingIndicator(bool show) override; |
// LoginPerformer::Delegate implementation: |
void OnAuthFailure(const AuthFailure& error) override; |
@@ -72,49 +61,49 @@ class ErrorScreen : public BaseScreen, |
void PolicyLoadFailed() override; |
void OnOnlineChecked(const std::string& username, bool success) override; |
- // Initializes captive portal dialog and shows that if needed. |
- void FixCaptivePortal(); |
- |
- // Shows captive portal dialog. |
- void ShowCaptivePortal(); |
- |
- // Hides captive portal dialog. |
- void HideCaptivePortal(); |
- |
- // Sets current UI state. |
- void SetUIState(UIState ui_state); |
- |
- UIState GetUIState() const; |
+ private: |
+ // Default hide_closure for Hide(). |
+ void DefaultHideCallback(); |
- // Sets current error screen content according to current UI state, |
- // |error_state|, and |network|. |
- void SetErrorState(ErrorState error_state, const std::string& network); |
+ // Handle user action to configure certificates. |
+ void OnConfigureCerts(); |
- ErrorState GetErrorState() const; |
+ // Handle user action to diagnose network configuration. |
+ void OnDiagnoseButtonClicked(); |
- // Toggles the guest sign-in prompt. |
- void AllowGuestSignin(bool allow); |
+ // Handle user action to launch guest session from out-of-box. |
+ void OnLaunchOobeGuestSession(); |
- // Toggles the connection pending indicator. |
- void ShowConnectingIndicator(bool show); |
+ // Handle user action to launch Powerwash in case of |
+ // Local State critical error. |
+ void OnLocalStateErrorPowerwashButtonClicked(); |
- void set_parent_screen(OobeDisplay::Screen parent_screen) { |
- parent_screen_ = parent_screen; |
- } |
- OobeDisplay::Screen parent_screen() const { return parent_screen_; } |
+ // Handle uses action to reboot device. |
+ void OnRebootButtonClicked(); |
- private: |
// Handles the response of an ownership check and starts the guest session if |
// applicable. |
void StartGuestSessionAfterOwnershipCheck( |
DeviceSettingsService::OwnershipStatus ownership_status); |
- ErrorScreenActor* actor_; |
- |
- OobeDisplay::Screen parent_screen_; |
+ NetworkErrorView* view_; |
scoped_ptr<LoginPerformer> guest_login_performer_; |
+ // Proxy which manages showing of the window for captive portal entering. |
+ scoped_ptr<CaptivePortalWindowProxy> captive_portal_window_proxy_; |
+ |
+ // Network state informer used to keep error screen up. |
+ scoped_refptr<NetworkStateInformer> network_state_informer_; |
+ |
+ NetworkError::UIState ui_state_; |
+ NetworkError::ErrorState error_state_; |
+ |
+ OobeUI::Screen parent_screen_; |
+ |
+ // Optional callback that is called when NetworkError screen is hidden. |
+ scoped_ptr<base::Closure> on_hide_callback_; |
+ |
base::WeakPtrFactory<ErrorScreen> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(ErrorScreen); |