| Index: chrome/browser/chromeos/login/wizard_controller.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/login/wizard_controller.cc (revision 52078)
|
| +++ chrome/browser/chromeos/login/wizard_controller.cc (working copy)
|
| @@ -22,6 +22,7 @@
|
| #include "chrome/browser/chromeos/input_method/input_method_util.h"
|
| #include "chrome/browser/chromeos/login/account_screen.h"
|
| #include "chrome/browser/chromeos/login/background_view.h"
|
| +#include "chrome/browser/chromeos/login/eula_view.h"
|
| #include "chrome/browser/chromeos/login/existing_user_controller.h"
|
| #include "chrome/browser/chromeos/login/helper.h"
|
| #include "chrome/browser/chromeos/login/language_switch_menu.h"
|
| @@ -39,11 +40,11 @@
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/notification_service.h"
|
| #include "third_party/cros/chromeos_wm_ipc_enums.h"
|
| +#include "unicode/timezone.h"
|
| #include "views/accelerator.h"
|
| #include "views/painter.h"
|
| #include "views/view.h"
|
| #include "views/widget/widget_gtk.h"
|
| -#include "unicode/timezone.h"
|
|
|
| namespace {
|
|
|
| @@ -72,12 +73,15 @@
|
| accel_update_screen_(views::Accelerator(base::VKEY_U,
|
| false, true, true)),
|
| accel_image_screen_(views::Accelerator(base::VKEY_I,
|
| + false, true, true)),
|
| + accel_eula_screen_(views::Accelerator(base::VKEY_E,
|
| false, true, true)) {
|
| AddAccelerator(accel_account_screen_);
|
| AddAccelerator(accel_login_screen_);
|
| AddAccelerator(accel_network_screen_);
|
| AddAccelerator(accel_update_screen_);
|
| AddAccelerator(accel_image_screen_);
|
| + AddAccelerator(accel_eula_screen_);
|
| }
|
|
|
| ~ContentView() {
|
| @@ -102,6 +106,8 @@
|
| controller->ShowUpdateScreen();
|
| } else if (accel == accel_image_screen_) {
|
| controller->ShowUserImageScreen();
|
| + } else if (accel == accel_eula_screen_) {
|
| + controller->ShowEulaScreen();
|
| } else {
|
| return false;
|
| }
|
| @@ -140,6 +146,7 @@
|
| views::Accelerator accel_network_screen_;
|
| views::Accelerator accel_update_screen_;
|
| views::Accelerator accel_image_screen_;
|
| + views::Accelerator accel_eula_screen_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ContentView);
|
| };
|
| @@ -162,6 +169,7 @@
|
| const char WizardController::kAccountScreenName[] = "account";
|
| const char WizardController::kUpdateScreenName[] = "update";
|
| const char WizardController::kUserImageScreenName[] = "image";
|
| +const char WizardController::kEulaScreenName[] = "eula";
|
| const char WizardController::kRegistrationScreenName[] = "register";
|
|
|
| // Passing this parameter as a "first screen" initiates full OOBE flow.
|
| @@ -294,6 +302,12 @@
|
| return user_image_screen_.get();
|
| }
|
|
|
| +chromeos::EulaScreen* WizardController::GetEulaScreen() {
|
| + if (!eula_screen_.get())
|
| + eula_screen_.reset(new chromeos::EulaScreen(this));
|
| + return eula_screen_.get();
|
| +}
|
| +
|
| chromeos::RegistrationScreen* WizardController::GetRegistrationScreen() {
|
| if (!registration_screen_.get())
|
| registration_screen_.reset(new chromeos::RegistrationScreen(this));
|
| @@ -346,6 +360,11 @@
|
| SetCurrentScreen(GetUserImageScreen());
|
| }
|
|
|
| +void WizardController::ShowEulaScreen() {
|
| + SetStatusAreaVisible(false);
|
| + SetCurrentScreen(GetEulaScreen());
|
| +}
|
| +
|
| void WizardController::ShowRegistrationScreen() {
|
| SetStatusAreaVisible(true);
|
| SetCurrentScreen(GetRegistrationScreen());
|
| @@ -432,18 +451,21 @@
|
| }
|
|
|
| void WizardController::OnUpdateCompleted() {
|
| + ShowEulaScreen();
|
| +}
|
| +
|
| +void WizardController::OnEulaAccepted() {
|
| MarkOobeCompleted();
|
| ShowLoginScreen();
|
| }
|
|
|
| void WizardController::OnUpdateErrorCheckingForUpdate() {
|
| - MarkOobeCompleted();
|
| // TODO(nkostylev): Update should be required during OOBE.
|
| // We do not want to block users from being able to proceed to the login
|
| // screen if there is any error checking for an update.
|
| // They could use "browse without sign-in" feature to set up the network to be
|
| // able to perform the update later.
|
| - ShowLoginScreen();
|
| + ShowEulaScreen();
|
| }
|
|
|
| void WizardController::OnUpdateErrorUpdating() {
|
| @@ -452,8 +474,7 @@
|
| // TODO(nkostylev): Show message to the user explaining update error.
|
| // TODO(nkostylev): Update should be required during OOBE.
|
| // Temporary fix, need to migrate to new API. http://crosbug.com/4321
|
| - MarkOobeCompleted();
|
| - ShowLoginScreen();
|
| + ShowEulaScreen();
|
| }
|
|
|
| void WizardController::OnUserImageSelected() {
|
| @@ -508,6 +529,8 @@
|
| GetUpdateScreen()->StartUpdate();
|
| } else if (first_screen_name == kUserImageScreenName) {
|
| ShowUserImageScreen();
|
| + } else if (first_screen_name == kEulaScreenName) {
|
| + ShowEulaScreen();
|
| } else if (first_screen_name == kRegistrationScreenName) {
|
| ShowRegistrationScreen();
|
| } else if (first_screen_name != kTestNoScreenName) {
|
| @@ -570,6 +593,9 @@
|
| case USER_IMAGE_SKIPPED:
|
| OnUserImageSkipped();
|
| break;
|
| + case EULA_ACCEPTED:
|
| + OnEulaAccepted();
|
| + break;
|
| default:
|
| NOTREACHED();
|
| }
|
|
|