Home | History | Annotate | Download | only in screens
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_ERROR_SCREEN_ACTOR_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_ERROR_SCREEN_ACTOR_H_
      7 
      8 #include "chrome/browser/chromeos/cros/network_constants.h"
      9 #include "chrome/browser/chromeos/login/screens/error_screen.h"
     10 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
     11 
     12 namespace base {
     13 class DictionaryValue;
     14 }
     15 
     16 namespace chromeos {
     17 
     18 class ErrorScreenActor {
     19  public:
     20   // Possible network error reasons.
     21   enum ErrorReason {
     22     ERROR_REASON_PROXY_AUTH_CANCELLED = 0,
     23     ERROR_REASON_PROXY_AUTH_SUPPLIED,
     24     ERROR_REASON_PROXY_CONNECTION_FAILED,
     25     ERROR_REASON_PROXY_CONFIG_CHANGED,
     26     ERROR_REASON_LOADING_TIMEOUT,
     27     ERROR_REASON_PORTAL_DETECTED,
     28     // Reason for a case when default network has changed.
     29     ERROR_REASON_NETWORK_STATE_CHANGED,
     30     // Reason for a case when JS side requires error screen update.
     31     ERROR_REASON_UPDATE,
     32     ERROR_REASON_FRAME_ERROR
     33   };
     34 
     35   ErrorScreenActor();
     36   virtual ~ErrorScreenActor();
     37 
     38   ErrorScreen::UIState ui_state() const { return ui_state_; }
     39   ErrorScreen::ErrorState error_state() const { return error_state_; }
     40 
     41   // Returns id of the screen behind error screen ("caller" screen).
     42   // Returns OobeUI::SCREEN_UNKNOWN if error screen isn't the current
     43   // screen.
     44   OobeUI::Screen parent_screen() const { return parent_screen_; }
     45 
     46   // Shows the screen.
     47   virtual void Show(OobeDisplay::Screen parent_screen,
     48                     base::DictionaryValue* params) = 0;
     49 
     50   // Hides the screen.
     51   virtual void Hide() = 0;
     52 
     53   // Initializes captive portal dialog and shows that if needed.
     54   virtual void FixCaptivePortal() = 0;
     55 
     56   // Shows captive portal dialog.
     57   virtual void ShowCaptivePortal() = 0;
     58 
     59   // Hides captive portal dialog.
     60   virtual void HideCaptivePortal() = 0;
     61 
     62   virtual void SetUIState(ErrorScreen::UIState ui_state) = 0;
     63   virtual void SetErrorState(ErrorScreen::ErrorState error_state,
     64                              const std::string& network) = 0;
     65 
     66   virtual void AllowGuestSignin(bool allowed) = 0;
     67   virtual void AllowOfflineLogin(bool allowed) = 0;
     68 
     69  protected:
     70   ErrorScreen::UIState ui_state_;
     71   ErrorScreen::ErrorState error_state_;
     72   OobeUI::Screen parent_screen_;
     73 };
     74 
     75 }  // namespace chromeos
     76 
     77 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_ERROR_SCREEN_ACTOR_H_
     78