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

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 <string> 7 #include <string>
8 8
9 #include "ash/ash_switches.h" 9 #include "ash/ash_switches.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/ref_counted_memory.h" 12 #include "base/memory/ref_counted_memory.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/browser_about_handler.h" 14 #include "chrome/browser/browser_about_handler.h"
15 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" 15 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
16 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen_actor.h" 16 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen_actor.h"
17 #include "chrome/browser/chromeos/login/login_display_host_impl.h" 17 #include "chrome/browser/chromeos/login/login_display_host_impl.h"
18 #include "chrome/browser/chromeos/login/screen_locker.h" 18 #include "chrome/browser/chromeos/login/screen_locker.h"
19 #include "chrome/browser/chromeos/login/user_manager.h" 19 #include "chrome/browser/chromeos/login/user_manager.h"
20 #include "chrome/browser/chromeos/login/wizard_controller.h" 20 #include "chrome/browser/chromeos/login/wizard_controller.h"
21 #include "chrome/browser/chromeos/system/input_device_settings.h" 21 #include "chrome/browser/chromeos/system/input_device_settings.h"
22 #include "chrome/browser/profiles/profile.h" 22 #include "chrome/browser/profiles/profile.h"
23 #include "chrome/browser/ui/webui/about_ui.h" 23 #include "chrome/browser/ui/webui/about_ui.h"
24 #include "chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handle r.h"
24 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 25 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
25 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h" 26 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h"
26 #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" 27 #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
27 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h" 28 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
28 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" 29 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h"
29 #include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler .h" 30 #include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler .h"
30 #include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h" 31 #include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h"
31 #include "chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_s creen_handler.h" 32 #include "chrome/browser/ui/webui/chromeos/login/locally_managed_user_creation_s creen_handler.h"
32 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" 33 #include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h"
33 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" 34 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch"; 137 const char OobeUI::kScreenKioskAutolaunch[] = "autolaunch";
137 const char OobeUI::kScreenKioskEnable[] = "kiosk-enable"; 138 const char OobeUI::kScreenKioskEnable[] = "kiosk-enable";
138 const char OobeUI::kScreenErrorMessage[] = "error-message"; 139 const char OobeUI::kScreenErrorMessage[] = "error-message";
139 const char OobeUI::kScreenUserImagePicker[] = "user-image"; 140 const char OobeUI::kScreenUserImagePicker[] = "user-image";
140 const char OobeUI::kScreenTpmError[] = "tpm-error-message"; 141 const char OobeUI::kScreenTpmError[] = "tpm-error-message";
141 const char OobeUI::kScreenPasswordChanged[] = "password-changed"; 142 const char OobeUI::kScreenPasswordChanged[] = "password-changed";
142 const char OobeUI::kScreenManagedUserCreationFlow[] 143 const char OobeUI::kScreenManagedUserCreationFlow[]
143 = "managed-user-creation"; 144 = "managed-user-creation";
144 const char OobeUI::kScreenTermsOfService[] = "terms-of-service"; 145 const char OobeUI::kScreenTermsOfService[] = "terms-of-service";
145 const char OobeUI::kScreenWrongHWID[] = "wrong-hwid"; 146 const char OobeUI::kScreenWrongHWID[] = "wrong-hwid";
147 const char OobeUI::kScreenAppLaunchSplash[] = "app-launch-splash";
146 148
147 OobeUI::OobeUI(content::WebUI* web_ui) 149 OobeUI::OobeUI(content::WebUI* web_ui)
148 : WebUIController(web_ui), 150 : WebUIController(web_ui),
149 core_handler_(NULL), 151 core_handler_(NULL),
150 network_dropdown_handler_(NULL), 152 network_dropdown_handler_(NULL),
151 update_screen_handler_(NULL), 153 update_screen_handler_(NULL),
152 network_screen_actor_(NULL), 154 network_screen_actor_(NULL),
153 eula_screen_actor_(NULL), 155 eula_screen_actor_(NULL),
154 reset_screen_actor_(NULL), 156 reset_screen_actor_(NULL),
155 autolaunch_screen_actor_(NULL), 157 autolaunch_screen_actor_(NULL),
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 AddScreenHandler(user_image_screen_handler); 232 AddScreenHandler(user_image_screen_handler);
231 233
232 error_screen_handler_ = new ErrorScreenHandler(network_state_informer_); 234 error_screen_handler_ = new ErrorScreenHandler(network_state_informer_);
233 AddScreenHandler(error_screen_handler_); 235 AddScreenHandler(error_screen_handler_);
234 236
235 signin_screen_handler_ = new SigninScreenHandler(network_state_informer_, 237 signin_screen_handler_ = new SigninScreenHandler(network_state_informer_,
236 error_screen_handler_, 238 error_screen_handler_,
237 core_handler_); 239 core_handler_);
238 AddScreenHandler(signin_screen_handler_); 240 AddScreenHandler(signin_screen_handler_);
239 241
242 AppLaunchSplashScreenHandler* app_launch_splash_screen_handler =
243 new AppLaunchSplashScreenHandler();
244 AddScreenHandler(app_launch_splash_screen_handler);
245 app_launch_splash_screen_actor_ = app_launch_splash_screen_handler;
246
240 // Initialize KioskAppMenuHandler. Note that it is NOT a screen handler. 247 // Initialize KioskAppMenuHandler. Note that it is NOT a screen handler.
241 kiosk_app_menu_handler_ = new KioskAppMenuHandler; 248 kiosk_app_menu_handler_ = new KioskAppMenuHandler;
242 web_ui->AddMessageHandler(kiosk_app_menu_handler_); 249 web_ui->AddMessageHandler(kiosk_app_menu_handler_);
243 250
244 base::DictionaryValue localized_strings; 251 base::DictionaryValue localized_strings;
245 GetLocalizedStrings(&localized_strings); 252 GetLocalizedStrings(&localized_strings);
246 253
247 Profile* profile = Profile::FromWebUI(web_ui); 254 Profile* profile = Profile::FromWebUI(web_ui);
248 // Set up the chrome://theme/ source, for Chrome logo. 255 // Set up the chrome://theme/ source, for Chrome logo.
249 ThemeSource* theme = new ThemeSource(profile); 256 ThemeSource* theme = new ThemeSource(profile);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 326
320 ErrorScreenActor* OobeUI::GetErrorScreenActor() { 327 ErrorScreenActor* OobeUI::GetErrorScreenActor() {
321 return error_screen_handler_; 328 return error_screen_handler_;
322 } 329 }
323 330
324 LocallyManagedUserCreationScreenHandler* 331 LocallyManagedUserCreationScreenHandler*
325 OobeUI::GetLocallyManagedUserCreationScreenActor() { 332 OobeUI::GetLocallyManagedUserCreationScreenActor() {
326 return locally_managed_user_creation_screen_actor_; 333 return locally_managed_user_creation_screen_actor_;
327 } 334 }
328 335
336 AppLaunchSplashScreenActor*
337 OobeUI::GetAppLaunchSplashScreenActor() {
338 return app_launch_splash_screen_actor_;
339 }
340
329 void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) { 341 void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) {
330 // Note, handlers_[0] is a GenericHandler used by the WebUI. 342 // Note, handlers_[0] is a GenericHandler used by the WebUI.
331 for (size_t i = 0; i < handlers_.size(); ++i) 343 for (size_t i = 0; i < handlers_.size(); ++i)
332 handlers_[i]->GetLocalizedStrings(localized_strings); 344 handlers_[i]->GetLocalizedStrings(localized_strings);
333 webui::SetFontAndTextDirection(localized_strings); 345 webui::SetFontAndTextDirection(localized_strings);
334 kiosk_app_menu_handler_->GetLocalizedStrings(localized_strings); 346 kiosk_app_menu_handler_->GetLocalizedStrings(localized_strings);
335 347
336 #if defined(GOOGLE_CHROME_BUILD) 348 #if defined(GOOGLE_CHROME_BUILD)
337 localized_strings->SetString("buildType", "chrome"); 349 localized_strings->SetString("buildType", "chrome");
338 #else 350 #else
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 screen_names_[SCREEN_KIOSK_AUTOLAUNCH] = kScreenKioskAutolaunch; 383 screen_names_[SCREEN_KIOSK_AUTOLAUNCH] = kScreenKioskAutolaunch;
372 screen_names_[SCREEN_KIOSK_ENABLE] = kScreenKioskEnable; 384 screen_names_[SCREEN_KIOSK_ENABLE] = kScreenKioskEnable;
373 screen_names_[SCREEN_ERROR_MESSAGE] = kScreenErrorMessage; 385 screen_names_[SCREEN_ERROR_MESSAGE] = kScreenErrorMessage;
374 screen_names_[SCREEN_USER_IMAGE_PICKER] = kScreenUserImagePicker; 386 screen_names_[SCREEN_USER_IMAGE_PICKER] = kScreenUserImagePicker;
375 screen_names_[SCREEN_TPM_ERROR] = kScreenTpmError; 387 screen_names_[SCREEN_TPM_ERROR] = kScreenTpmError;
376 screen_names_[SCREEN_PASSWORD_CHANGED] = kScreenPasswordChanged; 388 screen_names_[SCREEN_PASSWORD_CHANGED] = kScreenPasswordChanged;
377 screen_names_[SCREEN_CREATE_MANAGED_USER_FLOW] = 389 screen_names_[SCREEN_CREATE_MANAGED_USER_FLOW] =
378 kScreenManagedUserCreationFlow; 390 kScreenManagedUserCreationFlow;
379 screen_names_[SCREEN_TERMS_OF_SERVICE] = kScreenTermsOfService; 391 screen_names_[SCREEN_TERMS_OF_SERVICE] = kScreenTermsOfService;
380 screen_names_[SCREEN_WRONG_HWID] = kScreenWrongHWID; 392 screen_names_[SCREEN_WRONG_HWID] = kScreenWrongHWID;
393 screen_names_[SCREEN_APP_LAUNCH_SPLASH] = kScreenAppLaunchSplash;
381 394
382 screen_ids_.clear(); 395 screen_ids_.clear();
383 for (size_t i = 0; i < screen_names_.size(); ++i) 396 for (size_t i = 0; i < screen_names_.size(); ++i)
384 screen_ids_[screen_names_[i]] = static_cast<Screen>(i); 397 screen_ids_[screen_names_[i]] = static_cast<Screen>(i);
385 } 398 }
386 399
387 void OobeUI::AddScreenHandler(BaseScreenHandler* handler) { 400 void OobeUI::AddScreenHandler(BaseScreenHandler* handler) {
388 web_ui()->AddMessageHandler(handler); 401 web_ui()->AddMessageHandler(handler);
389 handlers_.push_back(handler); 402 handlers_.push_back(handler);
390 } 403 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 void OobeUI::OnCurrentScreenChanged(const std::string& screen) { 446 void OobeUI::OnCurrentScreenChanged(const std::string& screen) {
434 if (screen_ids_.count(screen)) { 447 if (screen_ids_.count(screen)) {
435 current_screen_ = screen_ids_[screen]; 448 current_screen_ = screen_ids_[screen];
436 } else { 449 } else {
437 NOTREACHED() << "Screen should be registered in InitializeScreenMaps()"; 450 NOTREACHED() << "Screen should be registered in InitializeScreenMaps()";
438 current_screen_ = SCREEN_UNKNOWN; 451 current_screen_ = SCREEN_UNKNOWN;
439 } 452 }
440 } 453 }
441 454
442 } // namespace chromeos 455 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698