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