#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
-#include "ash/ash_switches.h"
#include "base/command_line.h"
#include "base/logging.h"
-#include "base/memory/ref_counted_memory.h"
#include "base/values.h"
-#include "chrome/browser/browser_about_handler.h"
-#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
+#include "chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen_actor.h"
#include "chrome/browser/chromeos/login/enrollment/enrollment_screen_actor.h"
-#include "chrome/browser/chromeos/login/login_display_host_impl.h"
-#include "chrome/browser/chromeos/login/screen_locker.h"
-#include "chrome/browser/chromeos/login/user_manager.h"
-#include "chrome/browser/chromeos/login/wizard_controller.h"
+#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
+#include "chrome/browser/chromeos/policy/consumer_management_service.h"
#include "chrome/browser/chromeos/system/input_device_settings.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/about_ui.h"
#include "chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/controller_pairing_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/host_pairing_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h"
-#include "chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h"
#include "chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/update_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h"
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/url_constants.h"
-#include "chromeos/chromeos_constants.h"
#include "chromeos/chromeos_switches.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
namespace {
-// List of known types of OobeUI. Type added as path in chrome://oobe url, for
-// example chrome://oobe/user-adding.
-const char kOobeDisplay[] = "oobe";
-const char kLoginDisplay[] = "login";
-const char kLockDisplay[] = "lock";
-const char kUserAddingDisplay[] = "user-adding";
-const char kAppLaunchSplashDisplay[] = "app-launch-splash";
-
const char* kKnownDisplayTypes[] = {
- kOobeDisplay,
- kLoginDisplay,
- kLockDisplay,
- kUserAddingDisplay,
- kAppLaunchSplashDisplay
+ OobeUI::kOobeDisplay,
+ OobeUI::kLoginDisplay,
+ OobeUI::kLockDisplay,
+ OobeUI::kUserAddingDisplay,
+ OobeUI::kAppLaunchSplashDisplay
};
const char kStringsJSPath[] = "strings.js";
source->AddResourcePath(kDemoUserLoginJSPath, IDR_DEMO_USER_LOGIN_JS);
return source;
}
- if (display_type == kOobeDisplay) {
+ if (display_type == OobeUI::kOobeDisplay) {
source->SetDefaultResource(IDR_OOBE_HTML);
source->AddResourcePath(kOobeJSPath, IDR_OOBE_JS);
} else {
kKnownDisplayTypes + arraysize(kKnownDisplayTypes),
path) == kKnownDisplayTypes + arraysize(kKnownDisplayTypes)) {
LOG(ERROR) << "Unknown display type '" << path << "'. Setting default.";
- return kLoginDisplay;
+ return OobeUI::kLoginDisplay;
}
return path;
}
} // namespace
// static
+const char OobeUI::kOobeDisplay[] = "oobe";
+const char OobeUI::kLoginDisplay[] = "login";
+const char OobeUI::kLockDisplay[] = "lock";
+const char OobeUI::kUserAddingDisplay[] = "user-adding";
+const char OobeUI::kAppLaunchSplashDisplay[] = "app-launch-splash";
+
+// static
const char OobeUI::kScreenOobeHIDDetection[] = "hid-detection";
-const char OobeUI::kScreenOobeNetwork[] = "connect";
-const char OobeUI::kScreenOobeEula[] = "eula";
-const char OobeUI::kScreenOobeUpdate[] = "update";
-const char OobeUI::kScreenOobeEnrollment[] = "oauth-enrollment";
-const char OobeUI::kScreenOobeReset[] = "reset";
-const char OobeUI::kScreenGaiaSignin[] = "gaia-signin";
-const char OobeUI::kScreenAccountPicker[] = "account-picker";
-const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch";
-const char OobeUI::kScreenKioskEnable[] = "kiosk-enable";
-const char OobeUI::kScreenErrorMessage[] = "error-message";
-const char OobeUI::kScreenUserImagePicker[] = "user-image";
-const char OobeUI::kScreenTpmError[] = "tpm-error-message";
-const char OobeUI::kScreenPasswordChanged[] = "password-changed";
-const char OobeUI::kScreenManagedUserCreationFlow[]
- = "managed-user-creation";
-const char OobeUI::kScreenTermsOfService[] = "terms-of-service";
-const char OobeUI::kScreenWrongHWID[] = "wrong-hwid";
-const char OobeUI::kScreenHIDDetection[] = "hid-detection";
-const char OobeUI::kScreenAppLaunchSplash[] = "app-launch-splash";
-const char OobeUI::kScreenConfirmPassword[] = "confirm-password";
-const char OobeUI::kScreenFatalError[] = "fatal-error";
+const char OobeUI::kScreenOobeNetwork[] = "connect";
+const char OobeUI::kScreenOobeEula[] = "eula";
+const char OobeUI::kScreenOobeUpdate[] = "update";
+const char OobeUI::kScreenOobeEnrollment[] = "oauth-enrollment";
+const char OobeUI::kScreenOobeReset[] = "reset";
+const char OobeUI::kScreenGaiaSignin[] = "gaia-signin";
+const char OobeUI::kScreenAccountPicker[] = "account-picker";
+const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch";
+const char OobeUI::kScreenKioskEnable[] = "kiosk-enable";
+const char OobeUI::kScreenErrorMessage[] = "error-message";
+const char OobeUI::kScreenUserImagePicker[] = "user-image";
+const char OobeUI::kScreenTpmError[] = "tpm-error-message";
+const char OobeUI::kScreenPasswordChanged[] = "password-changed";
+const char OobeUI::kScreenSupervisedUserCreationFlow[] =
+ "supervised-user-creation";
+const char OobeUI::kScreenTermsOfService[] = "terms-of-service";
+const char OobeUI::kScreenWrongHWID[] = "wrong-hwid";
+const char OobeUI::kScreenAutoEnrollmentCheck[] = "auto-enrollment-check";
+const char OobeUI::kScreenHIDDetection[] = "hid-detection";
+const char OobeUI::kScreenAppLaunchSplash[] = "app-launch-splash";
+const char OobeUI::kScreenConfirmPassword[] = "confirm-password";
+const char OobeUI::kScreenFatalError[] = "fatal-error";
+const char OobeUI::kScreenControllerPairing[] = "controller-pairing";
+const char OobeUI::kScreenHostPairing[] = "host-pairing";
OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url)
: WebUIController(web_ui),
autolaunch_screen_actor_(NULL),
kiosk_enable_screen_actor_(NULL),
wrong_hwid_screen_actor_(NULL),
- locally_managed_user_creation_screen_actor_(NULL),
+ auto_enrollment_check_screen_actor_(NULL),
+ supervised_user_creation_screen_actor_(NULL),
error_screen_handler_(NULL),
signin_screen_handler_(NULL),
terms_of_service_screen_actor_(NULL),
kiosk_enable_screen_actor_ = kiosk_enable_screen_handler;
AddScreenHandler(kiosk_enable_screen_handler);
- LocallyManagedUserCreationScreenHandler*
- locally_managed_user_creation_screen_handler =
- new LocallyManagedUserCreationScreenHandler();
- locally_managed_user_creation_screen_actor_ =
- locally_managed_user_creation_screen_handler;
- AddScreenHandler(locally_managed_user_creation_screen_handler);
+ SupervisedUserCreationScreenHandler* supervised_user_creation_screen_handler =
+ new SupervisedUserCreationScreenHandler();
+ supervised_user_creation_screen_actor_ =
+ supervised_user_creation_screen_handler;
+ AddScreenHandler(supervised_user_creation_screen_handler);
WrongHWIDScreenHandler* wrong_hwid_screen_handler =
new WrongHWIDScreenHandler();
wrong_hwid_screen_actor_ = wrong_hwid_screen_handler;
AddScreenHandler(wrong_hwid_screen_handler);
+ AutoEnrollmentCheckScreenHandler* auto_enrollment_check_screen_handler =
+ new AutoEnrollmentCheckScreenHandler();
+ auto_enrollment_check_screen_actor_ = auto_enrollment_check_screen_handler;
+ AddScreenHandler(auto_enrollment_check_screen_handler);
+
HIDDetectionScreenHandler* hid_detection_screen_handler =
- new HIDDetectionScreenHandler();
+ new HIDDetectionScreenHandler(core_handler_);
hid_detection_screen_actor_ = hid_detection_screen_handler;
AddScreenHandler(hid_detection_screen_handler);
+ error_screen_handler_ = new ErrorScreenHandler(network_state_informer_);
+ AddScreenHandler(error_screen_handler_);
+
EnrollmentScreenHandler* enrollment_screen_handler =
- new EnrollmentScreenHandler();
+ new EnrollmentScreenHandler(network_state_informer_,
+ error_screen_handler_);
enrollment_screen_actor_ = enrollment_screen_handler;
AddScreenHandler(enrollment_screen_handler);
TermsOfServiceScreenHandler* terms_of_service_screen_handler =
- new TermsOfServiceScreenHandler;
+ new TermsOfServiceScreenHandler(core_handler_);
terms_of_service_screen_actor_ = terms_of_service_screen_handler;
AddScreenHandler(terms_of_service_screen_handler);
user_image_screen_actor_ = user_image_screen_handler;
AddScreenHandler(user_image_screen_handler);
- error_screen_handler_ = new ErrorScreenHandler(network_state_informer_);
- AddScreenHandler(error_screen_handler_);
-
- gaia_screen_handler_ = new GaiaScreenHandler(network_state_informer_);
+ policy::ConsumerManagementService* consumer_management =
+ g_browser_process->platform_part()->browser_policy_connector_chromeos()->
+ GetConsumerManagementService();
+ gaia_screen_handler_ =
+ new GaiaScreenHandler(network_state_informer_, consumer_management);
AddScreenHandler(gaia_screen_handler_);
signin_screen_handler_ = new SigninScreenHandler(network_state_informer_,
AddScreenHandler(app_launch_splash_screen_handler);
app_launch_splash_screen_actor_ = app_launch_splash_screen_handler;
+ if (display_type_ == kOobeDisplay) {
+ ControllerPairingScreenHandler* handler =
+ new ControllerPairingScreenHandler();
+ controller_pairing_screen_actor_ = handler;
+ AddScreenHandler(handler);
+ }
+
+ if (display_type_ == kOobeDisplay) {
+ HostPairingScreenHandler* handler = new HostPairingScreenHandler();
+ host_pairing_screen_actor_ = handler;
+ AddScreenHandler(handler);
+ }
+
// Initialize KioskAppMenuHandler. Note that it is NOT a screen handler.
- kiosk_app_menu_handler_ = new KioskAppMenuHandler;
+ kiosk_app_menu_handler_ = new KioskAppMenuHandler(network_state_informer_);
web_ui->AddMessageHandler(kiosk_app_menu_handler_);
base::DictionaryValue localized_strings;
network_dropdown_handler_->RemoveObserver(update_screen_handler_);
}
-void OobeUI::ShowScreen(WizardScreen* screen) {
- screen->Show();
-}
-
-void OobeUI::HideScreen(WizardScreen* screen) {
- screen->Hide();
+CoreOobeActor* OobeUI::GetCoreOobeActor() {
+ return core_handler_;
}
UpdateScreenActor* OobeUI::GetUpdateScreenActor() {
return wrong_hwid_screen_actor_;
}
+AutoEnrollmentCheckScreenActor* OobeUI::GetAutoEnrollmentCheckScreenActor() {
+ return auto_enrollment_check_screen_actor_;
+}
+
HIDDetectionScreenActor* OobeUI::GetHIDDetectionScreenActor() {
return hid_detection_screen_actor_;
}
+ControllerPairingScreenActor* OobeUI::GetControllerPairingScreenActor() {
+ return controller_pairing_screen_actor_;
+}
+
+HostPairingScreenActor* OobeUI::GetHostPairingScreenActor() {
+ return host_pairing_screen_actor_;
+}
+
UserImageScreenActor* OobeUI::GetUserImageScreenActor() {
return user_image_screen_actor_;
}
return error_screen_handler_;
}
-LocallyManagedUserCreationScreenHandler*
- OobeUI::GetLocallyManagedUserCreationScreenActor() {
- return locally_managed_user_creation_screen_actor_;
+SupervisedUserCreationScreenHandler*
+ OobeUI::GetSupervisedUserCreationScreenActor() {
+ return supervised_user_creation_screen_actor_;
}
AppLaunchSplashScreenActor*
screen_names_[SCREEN_USER_IMAGE_PICKER] = kScreenUserImagePicker;
screen_names_[SCREEN_TPM_ERROR] = kScreenTpmError;
screen_names_[SCREEN_PASSWORD_CHANGED] = kScreenPasswordChanged;
- screen_names_[SCREEN_CREATE_MANAGED_USER_FLOW] =
- kScreenManagedUserCreationFlow;
+ screen_names_[SCREEN_CREATE_SUPERVISED_USER_FLOW] =
+ kScreenSupervisedUserCreationFlow;
screen_names_[SCREEN_TERMS_OF_SERVICE] = kScreenTermsOfService;
screen_names_[SCREEN_WRONG_HWID] = kScreenWrongHWID;
+ screen_names_[SCREEN_AUTO_ENROLLMENT_CHECK] = kScreenAutoEnrollmentCheck;
screen_names_[SCREEN_APP_LAUNCH_SPLASH] = kScreenAppLaunchSplash;
screen_names_[SCREEN_CONFIRM_PASSWORD] = kScreenConfirmPassword;
screen_names_[SCREEN_FATAL_ERROR] = kScreenFatalError;
+ screen_names_[SCREEN_OOBE_CONTROLLER_PAIRING] = kScreenControllerPairing;
+ screen_names_[SCREEN_OOBE_HOST_PAIRING] = kScreenHostPairing;
screen_ids_.clear();
for (size_t i = 0; i < screen_names_.size(); ++i)
void OobeUI::OnCurrentScreenChanged(const std::string& screen) {
previous_screen_ = current_screen_;
- if (screen_ids_.count(screen)) {
- Screen new_screen = screen_ids_[screen];
- FOR_EACH_OBSERVER(Observer,
- observer_list_,
- OnCurrentScreenChanged(current_screen_, new_screen));
- current_screen_ = new_screen;
- } else {
- NOTREACHED() << "Screen should be registered in InitializeScreenMaps()";
- current_screen_ = SCREEN_UNKNOWN;
- }
+ DCHECK(screen_ids_.count(screen))
+ << "Screen should be registered in InitializeScreenMaps()";
+ Screen new_screen = screen_ids_[screen];
+ FOR_EACH_OBSERVER(Observer,
+ observer_list_,
+ OnCurrentScreenChanged(current_screen_, new_screen));
+ current_screen_ = new_screen;
}
} // namespace chromeos