Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/oobe_ui.cc

Issue 22914008: Refactor kiosk app launch to be part of login screen UI flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 5 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ref_counted_memory.h" 10 #include "base/memory/ref_counted_memory.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/browser_about_handler.h" 12 #include "chrome/browser/browser_about_handler.h"
13 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" 13 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
14 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen_actor.h" 14 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen_actor.h"
15 #include "chrome/browser/chromeos/login/login_display_host_impl.h" 15 #include "chrome/browser/chromeos/login/login_display_host_impl.h"
16 #include "chrome/browser/chromeos/login/screen_locker.h" 16 #include "chrome/browser/chromeos/login/screen_locker.h"
17 #include "chrome/browser/chromeos/login/user_manager.h" 17 #include "chrome/browser/chromeos/login/user_manager.h"
18 #include "chrome/browser/chromeos/login/wizard_controller.h" 18 #include "chrome/browser/chromeos/login/wizard_controller.h"
19 #include "chrome/browser/chromeos/system/input_device_settings.h" 19 #include "chrome/browser/chromeos/system/input_device_settings.h"
20 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/browser/ui/webui/about_ui.h" 21 #include "chrome/browser/ui/webui/about_ui.h"
22 #include "chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handle r.h"
22 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 23 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
23 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h" 24 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h"
24 #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" 25 #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
25 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h" 26 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
26 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" 27 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h"
27 #include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler .h" 28 #include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler .h"
28 #include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h" 29 #include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h"
29 #include "chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_s creen_handler.h" 30 #include "chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_s creen_handler.h"
30 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" 31 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h"
31 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" 32 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h"
(...skipping 19 matching lines...) Expand all
51 namespace chromeos { 52 namespace chromeos {
52 53
53 namespace { 54 namespace {
54 55
55 // List of known types of OobeUI. Type added as path in chrome://oobe url, for 56 // List of known types of OobeUI. Type added as path in chrome://oobe url, for
56 // example chrome://oobe/user-adding. 57 // example chrome://oobe/user-adding.
57 const char kOobeDisplay[] = "oobe"; 58 const char kOobeDisplay[] = "oobe";
58 const char kLoginDisplay[] = "login"; 59 const char kLoginDisplay[] = "login";
59 const char kLockDisplay[] = "lock"; 60 const char kLockDisplay[] = "lock";
60 const char kUserAddingDisplay[] = "user-adding"; 61 const char kUserAddingDisplay[] = "user-adding";
62 const char kAppLaunchSplashDisplay[] = "app-launch-splash";
61 63
62 const char* kKnownDisplayTypes[] = { 64 const char* kKnownDisplayTypes[] = {
63 kOobeDisplay, 65 kOobeDisplay,
64 kLoginDisplay, 66 kLoginDisplay,
65 kLockDisplay, 67 kLockDisplay,
66 kUserAddingDisplay 68 kUserAddingDisplay,
69 kAppLaunchSplashDisplay
67 }; 70 };
68 71
69 const char kStringsJSPath[] = "strings.js"; 72 const char kStringsJSPath[] = "strings.js";
70 const char kLoginJSPath[] = "login.js"; 73 const char kLoginJSPath[] = "login.js";
71 const char kOobeJSPath[] = "oobe.js"; 74 const char kOobeJSPath[] = "oobe.js";
72 const char kKeyboardUtilsJSPath[] = "keyboard_utils.js"; 75 const char kKeyboardUtilsJSPath[] = "keyboard_utils.js";
73 const char kDemoUserLoginJSPath[] = "demo_user_login.js"; 76 const char kDemoUserLoginJSPath[] = "demo_user_login.js";
74 77
75 // Paths for deferred resource loading. 78 // Paths for deferred resource loading.
76 const char kEnrollmentHTMLPath[] = "enrollment.html"; 79 const char kEnrollmentHTMLPath[] = "enrollment.html";
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch"; 154 const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch";
152 const char OobeUI::kScreenKioskEnable[] = "kiosk-enable"; 155 const char OobeUI::kScreenKioskEnable[] = "kiosk-enable";
153 const char OobeUI::kScreenErrorMessage[] = "error-message"; 156 const char OobeUI::kScreenErrorMessage[] = "error-message";
154 const char OobeUI::kScreenUserImagePicker[] = "user-image"; 157 const char OobeUI::kScreenUserImagePicker[] = "user-image";
155 const char OobeUI::kScreenTpmError[] = "tpm-error-message"; 158 const char OobeUI::kScreenTpmError[] = "tpm-error-message";
156 const char OobeUI::kScreenPasswordChanged[] = "password-changed"; 159 const char OobeUI::kScreenPasswordChanged[] = "password-changed";
157 const char OobeUI::kScreenManagedUserCreationFlow[] 160 const char OobeUI::kScreenManagedUserCreationFlow[]
158 = "managed-user-creation"; 161 = "managed-user-creation";
159 const char OobeUI::kScreenTermsOfService[] = "terms-of-service"; 162 const char OobeUI::kScreenTermsOfService[] = "terms-of-service";
160 const char OobeUI::kScreenWrongHWID[] = "wrong-hwid"; 163 const char OobeUI::kScreenWrongHWID[] = "wrong-hwid";
164 const char OobeUI::kScreenAppLaunchSplash[] = "app-launch-splash";
161 165
162 OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) 166 OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url)
163 : WebUIController(web_ui), 167 : WebUIController(web_ui),
164 core_handler_(NULL), 168 core_handler_(NULL),
165 network_dropdown_handler_(NULL), 169 network_dropdown_handler_(NULL),
166 update_screen_handler_(NULL), 170 update_screen_handler_(NULL),
167 network_screen_actor_(NULL), 171 network_screen_actor_(NULL),
168 eula_screen_actor_(NULL), 172 eula_screen_actor_(NULL),
169 reset_screen_actor_(NULL), 173 reset_screen_actor_(NULL),
170 autolaunch_screen_actor_(NULL), 174 autolaunch_screen_actor_(NULL),
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 AddScreenHandler(user_image_screen_handler); 252 AddScreenHandler(user_image_screen_handler);
249 253
250 error_screen_handler_ = new ErrorScreenHandler(network_state_informer_); 254 error_screen_handler_ = new ErrorScreenHandler(network_state_informer_);
251 AddScreenHandler(error_screen_handler_); 255 AddScreenHandler(error_screen_handler_);
252 256
253 signin_screen_handler_ = new SigninScreenHandler(network_state_informer_, 257 signin_screen_handler_ = new SigninScreenHandler(network_state_informer_,
254 error_screen_handler_, 258 error_screen_handler_,
255 core_handler_); 259 core_handler_);
256 AddScreenHandler(signin_screen_handler_); 260 AddScreenHandler(signin_screen_handler_);
257 261
262 AppLaunchSplashScreenHandler* app_launch_splash_screen_handler =
263 new AppLaunchSplashScreenHandler();
264 AddScreenHandler(app_launch_splash_screen_handler);
265 app_launch_splash_screen_actor_ = app_launch_splash_screen_handler;
266
258 // Initialize KioskAppMenuHandler. Note that it is NOT a screen handler. 267 // Initialize KioskAppMenuHandler. Note that it is NOT a screen handler.
259 kiosk_app_menu_handler_ = new KioskAppMenuHandler; 268 kiosk_app_menu_handler_ = new KioskAppMenuHandler;
260 web_ui->AddMessageHandler(kiosk_app_menu_handler_); 269 web_ui->AddMessageHandler(kiosk_app_menu_handler_);
261 270
262 base::DictionaryValue localized_strings; 271 base::DictionaryValue localized_strings;
263 GetLocalizedStrings(&localized_strings); 272 GetLocalizedStrings(&localized_strings);
264 273
265 Profile* profile = Profile::FromWebUI(web_ui); 274 Profile* profile = Profile::FromWebUI(web_ui);
266 // Set up the chrome://theme/ source, for Chrome logo. 275 // Set up the chrome://theme/ source, for Chrome logo.
267 ThemeSource* theme = new ThemeSource(profile); 276 ThemeSource* theme = new ThemeSource(profile);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 347
339 ErrorScreenActor* OobeUI::GetErrorScreenActor() { 348 ErrorScreenActor* OobeUI::GetErrorScreenActor() {
340 return error_screen_handler_; 349 return error_screen_handler_;
341 } 350 }
342 351
343 LocallyManagedUserCreationScreenHandler* 352 LocallyManagedUserCreationScreenHandler*
344 OobeUI::GetLocallyManagedUserCreationScreenActor() { 353 OobeUI::GetLocallyManagedUserCreationScreenActor() {
345 return locally_managed_user_creation_screen_actor_; 354 return locally_managed_user_creation_screen_actor_;
346 } 355 }
347 356
357 AppLaunchSplashScreenActor*
358 OobeUI::GetAppLaunchSplashScreenActor() {
359 return app_launch_splash_screen_actor_;
360 }
361
348 void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) { 362 void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) {
349 // Note, handlers_[0] is a GenericHandler used by the WebUI. 363 // Note, handlers_[0] is a GenericHandler used by the WebUI.
350 for (size_t i = 0; i < handlers_.size(); ++i) 364 for (size_t i = 0; i < handlers_.size(); ++i)
351 handlers_[i]->GetLocalizedStrings(localized_strings); 365 handlers_[i]->GetLocalizedStrings(localized_strings);
352 webui::SetFontAndTextDirection(localized_strings); 366 webui::SetFontAndTextDirection(localized_strings);
353 kiosk_app_menu_handler_->GetLocalizedStrings(localized_strings); 367 kiosk_app_menu_handler_->GetLocalizedStrings(localized_strings);
354 368
355 #if defined(GOOGLE_CHROME_BUILD) 369 #if defined(GOOGLE_CHROME_BUILD)
356 localized_strings->SetString("buildType", "chrome"); 370 localized_strings->SetString("buildType", "chrome");
357 #else 371 #else
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 screen_names_[SCREEN_KIOSK_AUTOLAUNCH] = kScreenKioskAutolaunch; 404 screen_names_[SCREEN_KIOSK_AUTOLAUNCH] = kScreenKioskAutolaunch;
391 screen_names_[SCREEN_KIOSK_ENABLE] = kScreenKioskEnable; 405 screen_names_[SCREEN_KIOSK_ENABLE] = kScreenKioskEnable;
392 screen_names_[SCREEN_ERROR_MESSAGE] = kScreenErrorMessage; 406 screen_names_[SCREEN_ERROR_MESSAGE] = kScreenErrorMessage;
393 screen_names_[SCREEN_USER_IMAGE_PICKER] = kScreenUserImagePicker; 407 screen_names_[SCREEN_USER_IMAGE_PICKER] = kScreenUserImagePicker;
394 screen_names_[SCREEN_TPM_ERROR] = kScreenTpmError; 408 screen_names_[SCREEN_TPM_ERROR] = kScreenTpmError;
395 screen_names_[SCREEN_PASSWORD_CHANGED] = kScreenPasswordChanged; 409 screen_names_[SCREEN_PASSWORD_CHANGED] = kScreenPasswordChanged;
396 screen_names_[SCREEN_CREATE_MANAGED_USER_FLOW] = 410 screen_names_[SCREEN_CREATE_MANAGED_USER_FLOW] =
397 kScreenManagedUserCreationFlow; 411 kScreenManagedUserCreationFlow;
398 screen_names_[SCREEN_TERMS_OF_SERVICE] = kScreenTermsOfService; 412 screen_names_[SCREEN_TERMS_OF_SERVICE] = kScreenTermsOfService;
399 screen_names_[SCREEN_WRONG_HWID] = kScreenWrongHWID; 413 screen_names_[SCREEN_WRONG_HWID] = kScreenWrongHWID;
414 screen_names_[SCREEN_APP_LAUNCH_SPLASH] = kScreenAppLaunchSplash;
400 415
401 screen_ids_.clear(); 416 screen_ids_.clear();
402 for (size_t i = 0; i < screen_names_.size(); ++i) 417 for (size_t i = 0; i < screen_names_.size(); ++i)
403 screen_ids_[screen_names_[i]] = static_cast<Screen>(i); 418 screen_ids_[screen_names_[i]] = static_cast<Screen>(i);
404 } 419 }
405 420
406 void OobeUI::AddScreenHandler(BaseScreenHandler* handler) { 421 void OobeUI::AddScreenHandler(BaseScreenHandler* handler) {
407 web_ui()->AddMessageHandler(handler); 422 web_ui()->AddMessageHandler(handler);
408 handlers_.push_back(handler); 423 handlers_.push_back(handler);
409 } 424 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 void OobeUI::OnCurrentScreenChanged(const std::string& screen) { 467 void OobeUI::OnCurrentScreenChanged(const std::string& screen) {
453 if (screen_ids_.count(screen)) { 468 if (screen_ids_.count(screen)) {
454 current_screen_ = screen_ids_[screen]; 469 current_screen_ = screen_ids_[screen];
455 } else { 470 } else {
456 NOTREACHED() << "Screen should be registered in InitializeScreenMaps()"; 471 NOTREACHED() << "Screen should be registered in InitializeScreenMaps()";
457 current_screen_ = SCREEN_UNKNOWN; 472 current_screen_ = SCREEN_UNKNOWN;
458 } 473 }
459 } 474 }
460 475
461 } // namespace chromeos 476 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/oobe_ui.h ('k') | chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698