• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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_UI_OOBE_DISPLAY_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 #include "base/callback.h"
12 
13 namespace chromeos {
14 
15 class AppLaunchSplashScreenActor;
16 class CoreOobeActor;
17 class EnrollmentScreenActor;
18 class ErrorScreenActor;
19 class EulaScreenActor;
20 class HIDDetectionScreenActor;
21 class KioskAutolaunchScreenActor;
22 class KioskEnableScreenActor;
23 class NetworkScreenActor;
24 class ResetScreenActor;
25 class TermsOfServiceScreenActor;
26 class UpdateScreenActor;
27 class UserImageScreenActor;
28 // TODO(altimofeev): use real actors instead
29 class ViewScreenDelegate;
30 class WizardScreen;
31 class WrongHWIDScreenActor;
32 class AutoEnrollmentCheckScreenActor;
33 class LocallyManagedUserCreationScreenHandler;
34 
35 // Interface which is used by WizardController to do actual OOBE screens
36 // showing. Also it provides actors for the OOBE screens.
37 class OobeDisplay {
38  public:
39   enum Screen {
40     SCREEN_OOBE_HID_DETECTION = 0,
41     SCREEN_OOBE_NETWORK,
42     SCREEN_OOBE_EULA,
43     SCREEN_OOBE_UPDATE,
44     SCREEN_OOBE_ENROLLMENT,
45     SCREEN_OOBE_RESET,
46     SCREEN_GAIA_SIGNIN,
47     SCREEN_ACCOUNT_PICKER,
48     SCREEN_KIOSK_AUTOLAUNCH,
49     SCREEN_KIOSK_ENABLE,
50     SCREEN_ERROR_MESSAGE,
51     SCREEN_USER_IMAGE_PICKER,
52     SCREEN_TPM_ERROR,
53     SCREEN_PASSWORD_CHANGED,
54     SCREEN_CREATE_MANAGED_USER_DIALOG,
55     SCREEN_CREATE_MANAGED_USER_FLOW,
56     SCREEN_TERMS_OF_SERVICE,
57     SCREEN_WRONG_HWID,
58     SCREEN_AUTO_ENROLLMENT_CHECK,
59     SCREEN_APP_LAUNCH_SPLASH,
60     SCREEN_CONFIRM_PASSWORD,
61     SCREEN_FATAL_ERROR,
62     SCREEN_UNKNOWN
63   };
64 
~OobeDisplay()65   virtual ~OobeDisplay() {}
66 
67   // Shows the given screen.
68   virtual void ShowScreen(WizardScreen* screen) = 0;
69 
70   // Hides the given screen.
71   virtual void HideScreen(WizardScreen* screen) = 0;
72 
73   // Pointers to actors which should be used by the specific screens. Actors
74   // must be owned by the OobeDisplay implementation.
75   virtual CoreOobeActor* GetCoreOobeActor() = 0;
76   virtual UpdateScreenActor* GetUpdateScreenActor() = 0;
77   virtual NetworkScreenActor* GetNetworkScreenActor() = 0;
78   virtual EulaScreenActor* GetEulaScreenActor() = 0;
79   virtual EnrollmentScreenActor* GetEnrollmentScreenActor() = 0;
80   virtual ResetScreenActor* GetResetScreenActor() = 0;
81   virtual KioskAutolaunchScreenActor* GetKioskAutolaunchScreenActor() = 0;
82   virtual KioskEnableScreenActor* GetKioskEnableScreenActor() = 0;
83   virtual TermsOfServiceScreenActor* GetTermsOfServiceScreenActor() = 0;
84   virtual UserImageScreenActor* GetUserImageScreenActor() = 0;
85   virtual ErrorScreenActor* GetErrorScreenActor() = 0;
86   virtual WrongHWIDScreenActor* GetWrongHWIDScreenActor() = 0;
87   virtual AutoEnrollmentCheckScreenActor*
88       GetAutoEnrollmentCheckScreenActor() = 0;
89   virtual HIDDetectionScreenActor* GetHIDDetectionScreenActor() = 0;
90   virtual LocallyManagedUserCreationScreenHandler*
91       GetLocallyManagedUserCreationScreenActor() = 0;
92   virtual AppLaunchSplashScreenActor* GetAppLaunchSplashScreenActor() = 0;
93 
94   // Returns if JS side is fully loaded and ready to accept messages.
95   // If |false| is returned, then |display_is_ready_callback| is stored
96   // and will be called once display is ready.
97   virtual bool IsJSReady(const base::Closure& display_is_ready_callback) = 0;
98 };
99 
100 }  // namespace chromeos
101 
102 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_
103