• 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 AutoEnrollmentCheckScreenActor;
17 class CoreOobeActor;
18 class ControllerPairingScreenActor;
19 class EnrollmentScreenActor;
20 class ErrorScreenActor;
21 class EulaScreenActor;
22 class HIDDetectionScreenActor;
23 class HostPairingScreenActor;
24 class KioskAutolaunchScreenActor;
25 class KioskEnableScreenActor;
26 class NetworkScreenActor;
27 class ResetScreenActor;
28 class SupervisedUserCreationScreenHandler;
29 class TermsOfServiceScreenActor;
30 class UpdateScreenActor;
31 class UserImageScreenActor;
32 class WrongHWIDScreenActor;
33 
34 // Interface which is used by WizardController to do actual OOBE screens
35 // showing. Also it provides actors for the OOBE screens.
36 class OobeDisplay {
37  public:
38   enum Screen {
39     SCREEN_OOBE_HID_DETECTION = 0,
40     SCREEN_OOBE_NETWORK,
41     SCREEN_OOBE_EULA,
42     SCREEN_OOBE_UPDATE,
43     SCREEN_OOBE_ENROLLMENT,
44     SCREEN_OOBE_RESET,
45     SCREEN_GAIA_SIGNIN,
46     SCREEN_ACCOUNT_PICKER,
47     SCREEN_KIOSK_AUTOLAUNCH,
48     SCREEN_KIOSK_ENABLE,
49     SCREEN_ERROR_MESSAGE,
50     SCREEN_USER_IMAGE_PICKER,
51     SCREEN_TPM_ERROR,
52     SCREEN_PASSWORD_CHANGED,
53     SCREEN_CREATE_SUPERVISED_USER_DIALOG,
54     SCREEN_CREATE_SUPERVISED_USER_FLOW,
55     SCREEN_TERMS_OF_SERVICE,
56     SCREEN_WRONG_HWID,
57     SCREEN_AUTO_ENROLLMENT_CHECK,
58     SCREEN_APP_LAUNCH_SPLASH,
59     SCREEN_CONFIRM_PASSWORD,
60     SCREEN_FATAL_ERROR,
61     SCREEN_OOBE_CONTROLLER_PAIRING,
62     SCREEN_OOBE_HOST_PAIRING,
63     SCREEN_UNKNOWN
64   };
65 
~OobeDisplay()66   virtual ~OobeDisplay() {}
67 
68   // Pointers to actors which should be used by the specific screens. Actors
69   // must be owned by the OobeDisplay implementation.
70   virtual CoreOobeActor* GetCoreOobeActor() = 0;
71   virtual UpdateScreenActor* GetUpdateScreenActor() = 0;
72   virtual NetworkScreenActor* GetNetworkScreenActor() = 0;
73   virtual EulaScreenActor* GetEulaScreenActor() = 0;
74   virtual EnrollmentScreenActor* GetEnrollmentScreenActor() = 0;
75   virtual ResetScreenActor* GetResetScreenActor() = 0;
76   virtual KioskAutolaunchScreenActor* GetKioskAutolaunchScreenActor() = 0;
77   virtual KioskEnableScreenActor* GetKioskEnableScreenActor() = 0;
78   virtual TermsOfServiceScreenActor* GetTermsOfServiceScreenActor() = 0;
79   virtual UserImageScreenActor* GetUserImageScreenActor() = 0;
80   virtual ErrorScreenActor* GetErrorScreenActor() = 0;
81   virtual WrongHWIDScreenActor* GetWrongHWIDScreenActor() = 0;
82   virtual AutoEnrollmentCheckScreenActor*
83       GetAutoEnrollmentCheckScreenActor() = 0;
84   virtual HIDDetectionScreenActor* GetHIDDetectionScreenActor() = 0;
85   virtual SupervisedUserCreationScreenHandler*
86       GetSupervisedUserCreationScreenActor() = 0;
87   virtual AppLaunchSplashScreenActor* GetAppLaunchSplashScreenActor() = 0;
88   virtual ControllerPairingScreenActor* GetControllerPairingScreenActor() = 0;
89   virtual HostPairingScreenActor* GetHostPairingScreenActor() = 0;
90 
91   // Returns if JS side is fully loaded and ready to accept messages.
92   // If |false| is returned, then |display_is_ready_callback| is stored
93   // and will be called once display is ready.
94   virtual bool IsJSReady(const base::Closure& display_is_ready_callback) = 0;
95 };
96 
97 }  // namespace chromeos
98 
99 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_
100