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

Side by Side Diff: chrome/browser/chromeos/login/wizard_controller.cc

Issue 3158023: OOBE screen with HTML page specified from command line it is going to be used for recovery screen. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Removed useless explicit Created 10 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
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/chromeos/login/wizard_controller.h" 5 #include "chrome/browser/chromeos/login/wizard_controller.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <signal.h> 8 #include <signal.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 10
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/chromeos/cros/login_library.h" 21 #include "chrome/browser/chromeos/cros/login_library.h"
22 #include "chrome/browser/chromeos/cros/system_library.h" 22 #include "chrome/browser/chromeos/cros/system_library.h"
23 #include "chrome/browser/chromeos/customization_document.h" 23 #include "chrome/browser/chromeos/customization_document.h"
24 #include "chrome/browser/chromeos/input_method/input_method_util.h" 24 #include "chrome/browser/chromeos/input_method/input_method_util.h"
25 #include "chrome/browser/chromeos/login/account_screen.h" 25 #include "chrome/browser/chromeos/login/account_screen.h"
26 #include "chrome/browser/chromeos/login/apply_services_customization.h" 26 #include "chrome/browser/chromeos/login/apply_services_customization.h"
27 #include "chrome/browser/chromeos/login/background_view.h" 27 #include "chrome/browser/chromeos/login/background_view.h"
28 #include "chrome/browser/chromeos/login/eula_view.h" 28 #include "chrome/browser/chromeos/login/eula_view.h"
29 #include "chrome/browser/chromeos/login/existing_user_controller.h" 29 #include "chrome/browser/chromeos/login/existing_user_controller.h"
30 #include "chrome/browser/chromeos/login/helper.h" 30 #include "chrome/browser/chromeos/login/helper.h"
31 #include "chrome/browser/chromeos/login/html_page_screen.h"
31 #include "chrome/browser/chromeos/login/language_switch_menu.h" 32 #include "chrome/browser/chromeos/login/language_switch_menu.h"
32 #include "chrome/browser/chromeos/login/login_screen.h" 33 #include "chrome/browser/chromeos/login/login_screen.h"
33 #include "chrome/browser/chromeos/login/login_utils.h" 34 #include "chrome/browser/chromeos/login/login_utils.h"
34 #include "chrome/browser/chromeos/login/network_screen.h" 35 #include "chrome/browser/chromeos/login/network_screen.h"
35 #include "chrome/browser/chromeos/login/registration_screen.h" 36 #include "chrome/browser/chromeos/login/registration_screen.h"
36 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" 37 #include "chrome/browser/chromeos/login/rounded_rect_painter.h"
37 #include "chrome/browser/chromeos/login/update_screen.h" 38 #include "chrome/browser/chromeos/login/update_screen.h"
38 #include "chrome/browser/chromeos/login/user_image_screen.h" 39 #include "chrome/browser/chromeos/login/user_image_screen.h"
39 #include "chrome/browser/chromeos/login/user_manager.h" 40 #include "chrome/browser/chromeos/login/user_manager.h"
40 #include "chrome/browser/chromeos/language_preferences.h" 41 #include "chrome/browser/chromeos/language_preferences.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 204
204 } // namespace 205 } // namespace
205 206
206 const char WizardController::kNetworkScreenName[] = "network"; 207 const char WizardController::kNetworkScreenName[] = "network";
207 const char WizardController::kLoginScreenName[] = "login"; 208 const char WizardController::kLoginScreenName[] = "login";
208 const char WizardController::kAccountScreenName[] = "account"; 209 const char WizardController::kAccountScreenName[] = "account";
209 const char WizardController::kUpdateScreenName[] = "update"; 210 const char WizardController::kUpdateScreenName[] = "update";
210 const char WizardController::kUserImageScreenName[] = "image"; 211 const char WizardController::kUserImageScreenName[] = "image";
211 const char WizardController::kEulaScreenName[] = "eula"; 212 const char WizardController::kEulaScreenName[] = "eula";
212 const char WizardController::kRegistrationScreenName[] = "register"; 213 const char WizardController::kRegistrationScreenName[] = "register";
214 const char WizardController::kHTMLPageScreenName[] = "html";
213 215
214 // Passing this parameter as a "first screen" initiates full OOBE flow. 216 // Passing this parameter as a "first screen" initiates full OOBE flow.
215 const char WizardController::kOutOfBoxScreenName[] = "oobe"; 217 const char WizardController::kOutOfBoxScreenName[] = "oobe";
216 218
217 // Special test value that commands not to create any window yet. 219 // Special test value that commands not to create any window yet.
218 const char WizardController::kTestNoScreenName[] = "test:nowindow"; 220 const char WizardController::kTestNoScreenName[] = "test:nowindow";
219 221
220 // Initialize default controller. 222 // Initialize default controller.
221 // static 223 // static
222 WizardController* WizardController::default_controller_ = NULL; 224 WizardController* WizardController::default_controller_ = NULL;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 eula_screen_.reset(new chromeos::EulaScreen(this)); 360 eula_screen_.reset(new chromeos::EulaScreen(this));
359 return eula_screen_.get(); 361 return eula_screen_.get();
360 } 362 }
361 363
362 chromeos::RegistrationScreen* WizardController::GetRegistrationScreen() { 364 chromeos::RegistrationScreen* WizardController::GetRegistrationScreen() {
363 if (!registration_screen_.get()) 365 if (!registration_screen_.get())
364 registration_screen_.reset(new chromeos::RegistrationScreen(this)); 366 registration_screen_.reset(new chromeos::RegistrationScreen(this));
365 return registration_screen_.get(); 367 return registration_screen_.get();
366 } 368 }
367 369
370 chromeos::HTMLPageScreen* WizardController::GetHTMLPageScreen() {
371 if (!html_page_screen_.get()) {
372 CommandLine* command_line = CommandLine::ForCurrentProcess();
373 std::string url;
374 // It's strange but args may contains empty strings.
375 for (size_t i = 0; i < command_line->args().size(); i++) {
376 if (!command_line->args()[i].empty()) {
377 DCHECK(url.empty()) << "More than one URL in command line";
378 url = command_line->args()[i];
379 }
380 }
381 DCHECK(!url.empty()) << "No URL in commane line";
382 html_page_screen_.reset(new chromeos::HTMLPageScreen(this, url));
383 }
384 return html_page_screen_.get();
385 }
386
368 void WizardController::ShowNetworkScreen() { 387 void WizardController::ShowNetworkScreen() {
369 SetStatusAreaVisible(false); 388 SetStatusAreaVisible(false);
370 SetCurrentScreen(GetNetworkScreen()); 389 SetCurrentScreen(GetNetworkScreen());
371 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK); 390 background_view_->SetOobeProgress(chromeos::BackgroundView::SELECT_NETWORK);
372 } 391 }
373 392
374 chromeos::ExistingUserController* WizardController::ShowLoginScreen() { 393 chromeos::ExistingUserController* WizardController::ShowLoginScreen() {
375 SetStatusAreaVisible(true); 394 SetStatusAreaVisible(true);
376 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN); 395 background_view_->SetOobeProgress(chromeos::BackgroundView::SIGNIN);
377 396
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 455
437 void WizardController::ShowRegistrationScreen() { 456 void WizardController::ShowRegistrationScreen() {
438 LOG(INFO) << "Showing registration screen."; 457 LOG(INFO) << "Showing registration screen.";
439 SetStatusAreaVisible(true); 458 SetStatusAreaVisible(true);
440 SetCurrentScreen(GetRegistrationScreen()); 459 SetCurrentScreen(GetRegistrationScreen());
441 #if defined(OFFICIAL_BUILD) 460 #if defined(OFFICIAL_BUILD)
442 background_view_->SetOobeProgress(chromeos::BackgroundView::REGISTRATION); 461 background_view_->SetOobeProgress(chromeos::BackgroundView::REGISTRATION);
443 #endif 462 #endif
444 } 463 }
445 464
465 void WizardController::ShowHTMLPageScreen() {
466 LOG(INFO) << "Showing HTML page screen.";
467 SetStatusAreaVisible(true);
468 background_view_->SetOobeProgressBarVisible(false);
469 SetCurrentScreen(GetHTMLPageScreen());
470 }
471
446 void WizardController::SetStatusAreaVisible(bool visible) { 472 void WizardController::SetStatusAreaVisible(bool visible) {
447 // When ExistingUserController passes background ownership 473 // When ExistingUserController passes background ownership
448 // to WizardController it happens after screen is shown. 474 // to WizardController it happens after screen is shown.
449 if (background_view_) { 475 if (background_view_) {
450 background_view_->SetStatusAreaVisible(visible); 476 background_view_->SetStatusAreaVisible(visible);
451 } 477 }
452 } 478 }
453 479
454 void WizardController::SetCustomization( 480 void WizardController::SetCustomization(
455 const chromeos::StartupCustomizationDocument* customization) { 481 const chromeos::StartupCustomizationDocument* customization) {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 ShowUserImageScreen(); 659 ShowUserImageScreen();
634 } else if (first_screen_name == kEulaScreenName) { 660 } else if (first_screen_name == kEulaScreenName) {
635 ShowEulaScreen(); 661 ShowEulaScreen();
636 } else if (first_screen_name == kRegistrationScreenName) { 662 } else if (first_screen_name == kRegistrationScreenName) {
637 if (is_official_build_) { 663 if (is_official_build_) {
638 ShowRegistrationScreen(); 664 ShowRegistrationScreen();
639 } else { 665 } else {
640 // Just proceed to image screen. 666 // Just proceed to image screen.
641 OnRegistrationSuccess(); 667 OnRegistrationSuccess();
642 } 668 }
669 } else if (first_screen_name == kHTMLPageScreenName) {
670 ShowHTMLPageScreen();
643 } else if (first_screen_name != kTestNoScreenName) { 671 } else if (first_screen_name != kTestNoScreenName) {
644 if (is_out_of_box_) { 672 if (is_out_of_box_) {
645 ShowNetworkScreen(); 673 ShowNetworkScreen();
646 } else { 674 } else {
647 ShowLoginScreen(); 675 ShowLoginScreen();
648 } 676 }
649 } 677 }
650 } 678 }
651 679
652 void WizardController::MarkOobeCompleted() { 680 void WizardController::MarkOobeCompleted() {
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 // user has changed to during OOBE. 862 // user has changed to during OOBE.
835 if (!timezone_name.empty()) { 863 if (!timezone_name.empty()) {
836 icu::TimeZone* timezone = icu::TimeZone::createTimeZone( 864 icu::TimeZone* timezone = icu::TimeZone::createTimeZone(
837 icu::UnicodeString::fromUTF8(timezone_name)); 865 icu::UnicodeString::fromUTF8(timezone_name));
838 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone); 866 chromeos::CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(timezone);
839 } 867 }
840 } 868 }
841 } 869 }
842 870
843 } // namespace browser 871 } // namespace browser
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698