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

Unified Diff: chrome/browser/chromeos/login/screens/error_screen.h

Issue 872633008: Migrate (Network)ErrorScreen to ScreenContext (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 5 years, 10 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/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);

Powered by Google App Engine
This is Rietveld 408576698