Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / chromeos / login / ui / oobe_display.h
blob75f6614bc2b4ff47f4f31ad87adf2d9b4c8b6456
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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_
8 #include <string>
10 #include "base/basictypes.h"
11 #include "base/callback.h"
13 namespace chromeos {
15 class AppLaunchSplashScreenActor;
16 class AutoEnrollmentCheckScreenActor;
17 class ControllerPairingScreenActor;
18 class CoreOobeActor;
19 class DeviceDisabledScreenActor;
20 class EnableDebuggingScreenActor;
21 class EnrollmentScreenActor;
22 class ErrorScreen;
23 class EulaView;
24 class GaiaScreenHandler;
25 class HIDDetectionView;
26 class HostPairingScreenActor;
27 class KioskAutolaunchScreenActor;
28 class KioskEnableScreenActor;
29 class NetworkErrorView;
30 class NetworkView;
31 class ResetView;
32 class SupervisedUserCreationScreenHandler;
33 class TermsOfServiceScreenActor;
34 class UpdateView;
35 class UserImageView;
36 class UserBoardView;
37 class WrongHWIDScreenActor;
39 // Interface which is used by WizardController to do actual OOBE screens
40 // showing. Also it provides actors for the OOBE screens.
41 class OobeDisplay {
42 public:
43 enum Screen {
44 SCREEN_OOBE_HID_DETECTION = 0,
45 SCREEN_OOBE_NETWORK,
46 SCREEN_OOBE_EULA,
47 SCREEN_OOBE_UPDATE,
48 SCREEN_OOBE_ENABLE_DEBUGGING,
49 SCREEN_OOBE_ENROLLMENT,
50 SCREEN_OOBE_RESET,
51 SCREEN_GAIA_SIGNIN,
52 SCREEN_ACCOUNT_PICKER,
53 SCREEN_KIOSK_AUTOLAUNCH,
54 SCREEN_KIOSK_ENABLE,
55 SCREEN_ERROR_MESSAGE,
56 SCREEN_USER_IMAGE_PICKER,
57 SCREEN_TPM_ERROR,
58 SCREEN_PASSWORD_CHANGED,
59 SCREEN_CREATE_SUPERVISED_USER_DIALOG,
60 SCREEN_CREATE_SUPERVISED_USER_FLOW,
61 SCREEN_TERMS_OF_SERVICE,
62 SCREEN_WRONG_HWID,
63 SCREEN_AUTO_ENROLLMENT_CHECK,
64 SCREEN_APP_LAUNCH_SPLASH,
65 SCREEN_CONFIRM_PASSWORD,
66 SCREEN_FATAL_ERROR,
67 SCREEN_OOBE_CONTROLLER_PAIRING,
68 SCREEN_OOBE_HOST_PAIRING,
69 SCREEN_DEVICE_DISABLED,
70 SCREEN_UNKNOWN
73 virtual ~OobeDisplay() {}
75 // Pointers to actors which should be used by the specific screens. Actors
76 // must be owned by the OobeDisplay implementation.
77 virtual CoreOobeActor* GetCoreOobeActor() = 0;
78 virtual NetworkView* GetNetworkView() = 0;
79 virtual EulaView* GetEulaView() = 0;
80 virtual UpdateView* GetUpdateView() = 0;
81 virtual EnableDebuggingScreenActor* GetEnableDebuggingScreenActor() = 0;
82 virtual EnrollmentScreenActor* GetEnrollmentScreenActor() = 0;
83 virtual ResetView* GetResetView() = 0;
84 virtual KioskAutolaunchScreenActor* GetKioskAutolaunchScreenActor() = 0;
85 virtual KioskEnableScreenActor* GetKioskEnableScreenActor() = 0;
86 virtual TermsOfServiceScreenActor* GetTermsOfServiceScreenActor() = 0;
87 virtual UserImageView* GetUserImageView() = 0;
88 virtual ErrorScreen* GetErrorScreen() = 0;
89 virtual WrongHWIDScreenActor* GetWrongHWIDScreenActor() = 0;
90 virtual AutoEnrollmentCheckScreenActor*
91 GetAutoEnrollmentCheckScreenActor() = 0;
92 virtual HIDDetectionView* GetHIDDetectionView() = 0;
93 virtual SupervisedUserCreationScreenHandler*
94 GetSupervisedUserCreationScreenActor() = 0;
95 virtual AppLaunchSplashScreenActor* GetAppLaunchSplashScreenActor() = 0;
96 virtual ControllerPairingScreenActor* GetControllerPairingScreenActor() = 0;
97 virtual HostPairingScreenActor* GetHostPairingScreenActor() = 0;
98 virtual DeviceDisabledScreenActor* GetDeviceDisabledScreenActor() = 0;
99 virtual GaiaScreenHandler* GetGaiaScreenActor() = 0;
100 virtual UserBoardView* GetUserBoardScreenActor() = 0;
102 // Returns if JS side is fully loaded and ready to accept messages.
103 // If |false| is returned, then |display_is_ready_callback| is stored
104 // and will be called once display is ready.
105 virtual bool IsJSReady(const base::Closure& display_is_ready_callback) = 0;
108 } // namespace chromeos
110 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_UI_OOBE_DISPLAY_H_