| OLD | NEW | 
|---|
| 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 | 
| 11 #include <string> | 11 #include <string> | 
| 12 #include <vector> | 12 #include <vector> | 
| 13 | 13 | 
| 14 #include "app/l10n_util.h" | 14 #include "app/l10n_util.h" | 
| 15 #include "base/command_line.h" | 15 #include "base/command_line.h" | 
| 16 #include "base/logging.h"  // For NOTREACHED. | 16 #include "base/logging.h"  // For NOTREACHED. | 
| 17 #include "chrome/browser/chromeos/cros/cros_library.h" | 17 #include "chrome/browser/chromeos/cros/cros_library.h" | 
| 18 #include "chrome/browser/chromeos/cros/login_library.h" | 18 #include "chrome/browser/chromeos/cros/login_library.h" | 
|  | 19 #include "chrome/browser/chromeos/customization_document.h" | 
| 19 #include "chrome/browser/chromeos/login/account_screen.h" | 20 #include "chrome/browser/chromeos/login/account_screen.h" | 
| 20 #include "chrome/browser/chromeos/login/background_view.h" | 21 #include "chrome/browser/chromeos/login/background_view.h" | 
| 21 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 22 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 
| 22 #include "chrome/browser/chromeos/login/login_screen.h" | 23 #include "chrome/browser/chromeos/login/login_screen.h" | 
| 23 #include "chrome/browser/chromeos/login/network_screen.h" | 24 #include "chrome/browser/chromeos/login/network_screen.h" | 
| 24 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" | 25 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" | 
| 25 #include "chrome/browser/chromeos/login/update_screen.h" | 26 #include "chrome/browser/chromeos/login/update_screen.h" | 
| 26 #include "chrome/browser/chromeos/login/user_manager.h" | 27 #include "chrome/browser/chromeos/login/user_manager.h" | 
| 27 #include "chrome/browser/chromeos/wm_ipc.h" | 28 #include "chrome/browser/chromeos/wm_ipc.h" | 
| 28 #include "chrome/common/chrome_switches.h" | 29 #include "chrome/common/chrome_switches.h" | 
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 156 | 157 | 
| 157 // Special test value that commands not to create any window yet. | 158 // Special test value that commands not to create any window yet. | 
| 158 const char WizardController::kTestNoScreenName[] = "test:nowindow"; | 159 const char WizardController::kTestNoScreenName[] = "test:nowindow"; | 
| 159 | 160 | 
| 160 // Initialize default controller. | 161 // Initialize default controller. | 
| 161 // static | 162 // static | 
| 162 WizardController* WizardController::default_controller_ = NULL; | 163 WizardController* WizardController::default_controller_ = NULL; | 
| 163 | 164 | 
| 164 /////////////////////////////////////////////////////////////////////////////// | 165 /////////////////////////////////////////////////////////////////////////////// | 
| 165 // WizardController, public: | 166 // WizardController, public: | 
|  | 167 | 
| 166 WizardController::WizardController() | 168 WizardController::WizardController() | 
| 167     : widget_(NULL), | 169     : widget_(NULL), | 
| 168       background_widget_(NULL), | 170       background_widget_(NULL), | 
| 169       background_view_(NULL), | 171       background_view_(NULL), | 
| 170       contents_(NULL), | 172       contents_(NULL), | 
| 171       current_screen_(NULL), | 173       current_screen_(NULL), | 
| 172       is_out_of_box_(false), | 174       is_out_of_box_(false), | 
| 173       observer_(NULL) { | 175       observer_(NULL) { | 
| 174   DCHECK(default_controller_ == NULL); | 176   DCHECK(default_controller_ == NULL); | 
| 175   default_controller_ = this; | 177   default_controller_ = this; | 
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 291 } | 293 } | 
| 292 | 294 | 
| 293 void WizardController::SetStatusAreaVisible(bool visible) { | 295 void WizardController::SetStatusAreaVisible(bool visible) { | 
| 294   // When ExistingUserController passes background ownership | 296   // When ExistingUserController passes background ownership | 
| 295   // to WizardController it happens after screen is shown. | 297   // to WizardController it happens after screen is shown. | 
| 296   if (background_view_) { | 298   if (background_view_) { | 
| 297     background_view_->SetStatusAreaVisible(visible); | 299     background_view_->SetStatusAreaVisible(visible); | 
| 298   } | 300   } | 
| 299 } | 301 } | 
| 300 | 302 | 
|  | 303 void WizardController::SetCustomization( | 
|  | 304     const chromeos::StartupCustomizationDocument* customization) { | 
|  | 305   customization_.reset(customization); | 
|  | 306 } | 
|  | 307 | 
| 301 /////////////////////////////////////////////////////////////////////////////// | 308 /////////////////////////////////////////////////////////////////////////////// | 
| 302 // WizardController, ExitHandlers: | 309 // WizardController, ExitHandlers: | 
| 303 void WizardController::OnLoginSignInSelected() { | 310 void WizardController::OnLoginSignInSelected() { | 
| 304   // We're on the stack, so don't try and delete us now. | 311   // We're on the stack, so don't try and delete us now. | 
| 305   MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 312   MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 
| 306 } | 313 } | 
| 307 | 314 | 
| 308 void WizardController::OnLoginCreateAccount() { | 315 void WizardController::OnLoginCreateAccount() { | 
| 309   ShowAccountScreen(); | 316   ShowAccountScreen(); | 
| 310 } | 317 } | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 467           switches::kEnableLoginImages)) { | 474           switches::kEnableLoginImages)) { | 
| 468     std::vector<chromeos::UserManager::User> users = | 475     std::vector<chromeos::UserManager::User> users = | 
| 469         chromeos::UserManager::Get()->GetUsers(); | 476         chromeos::UserManager::Get()->GetUsers(); | 
| 470     if (!users.empty()) { | 477     if (!users.empty()) { | 
| 471       // ExistingUserController deletes itself. | 478       // ExistingUserController deletes itself. | 
| 472       (new chromeos::ExistingUserController(users, screen_bounds))->Init(); | 479       (new chromeos::ExistingUserController(users, screen_bounds))->Init(); | 
| 473       return; | 480       return; | 
| 474     } | 481     } | 
| 475   } | 482   } | 
| 476 | 483 | 
|  | 484   // Load partner customization startup manifest if needed. | 
|  | 485   scoped_ptr<chromeos::StartupCustomizationDocument> customization; | 
|  | 486   if (CommandLine::ForCurrentProcess()->HasSwitch( | 
|  | 487       switches::kStartupManifest)) { | 
|  | 488     customization.reset(new chromeos::StartupCustomizationDocument()); | 
|  | 489     FilePath manifest_path = | 
|  | 490         CommandLine::ForCurrentProcess()->GetSwitchValuePath( | 
|  | 491             switches::kStartupManifest); | 
|  | 492     bool manifest_loaded = customization->LoadManifestFromFile(manifest_path); | 
|  | 493     DCHECK(manifest_loaded) << manifest_path.value(); | 
|  | 494   } | 
|  | 495 | 
|  | 496   // Create and show the wizard. | 
| 477   WizardController* controller = new WizardController(); | 497   WizardController* controller = new WizardController(); | 
|  | 498   controller->SetCustomization(customization.release()); | 
| 478   controller->ShowBackground(screen_bounds); | 499   controller->ShowBackground(screen_bounds); | 
| 479   controller->Init(first_screen_name, screen_bounds, true); | 500   controller->Init(first_screen_name, screen_bounds, true); | 
| 480   controller->Show(); | 501   controller->Show(); | 
| 481   if (chromeos::CrosLibrary::Get()->EnsureLoaded()) | 502   if (chromeos::CrosLibrary::Get()->EnsureLoaded()) | 
| 482     chromeos::CrosLibrary::Get()->GetLoginLibrary()->EmitLoginPromptReady(); | 503     chromeos::CrosLibrary::Get()->GetLoginLibrary()->EmitLoginPromptReady(); | 
| 483 } | 504 } | 
| 484 | 505 | 
| 485 }  // namespace browser | 506 }  // namespace browser | 
| OLD | NEW | 
|---|