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

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

Issue 11412067: [rlz,cros] RLZ glue for ChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Header guard Created 8 years 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/chromeos/login/wizard_controller.h" 5 #include "chrome/browser/chromeos/login/wizard_controller.h"
6 6
7 #include <signal.h> 7 #include <signal.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 10
(...skipping 21 matching lines...) Expand all
32 #include "chrome/browser/chromeos/login/login_utils.h" 32 #include "chrome/browser/chromeos/login/login_utils.h"
33 #include "chrome/browser/chromeos/login/network_screen.h" 33 #include "chrome/browser/chromeos/login/network_screen.h"
34 #include "chrome/browser/chromeos/login/oobe_display.h" 34 #include "chrome/browser/chromeos/login/oobe_display.h"
35 #include "chrome/browser/chromeos/login/registration_screen.h" 35 #include "chrome/browser/chromeos/login/registration_screen.h"
36 #include "chrome/browser/chromeos/login/reset_screen.h" 36 #include "chrome/browser/chromeos/login/reset_screen.h"
37 #include "chrome/browser/chromeos/login/update_screen.h" 37 #include "chrome/browser/chromeos/login/update_screen.h"
38 #include "chrome/browser/chromeos/login/user_image_screen.h" 38 #include "chrome/browser/chromeos/login/user_image_screen.h"
39 #include "chrome/browser/chromeos/login/user_manager.h" 39 #include "chrome/browser/chromeos/login/user_manager.h"
40 #include "chrome/browser/chromeos/settings/cros_settings.h" 40 #include "chrome/browser/chromeos/settings/cros_settings.h"
41 #include "chrome/browser/chromeos/settings/cros_settings_names.h" 41 #include "chrome/browser/chromeos/settings/cros_settings_names.h"
42 #include "chrome/browser/google/google_util_chromeos.h"
42 #include "chrome/browser/prefs/pref_service.h" 43 #include "chrome/browser/prefs/pref_service.h"
43 #include "chrome/browser/profiles/profile_manager.h" 44 #include "chrome/browser/profiles/profile_manager.h"
44 #include "chrome/browser/ui/options/options_util.h" 45 #include "chrome/browser/ui/options/options_util.h"
45 #include "chrome/common/chrome_notification_types.h" 46 #include "chrome/common/chrome_notification_types.h"
46 #include "chrome/common/pref_names.h" 47 #include "chrome/common/pref_names.h"
47 #include "content/public/browser/browser_thread.h" 48 #include "content/public/browser/browser_thread.h"
48 #include "content/public/browser/notification_service.h" 49 #include "content/public/browser/notification_service.h"
49 #include "content/public/browser/notification_source.h" 50 #include "content/public/browser/notification_source.h"
50 #include "content/public/browser/notification_types.h" 51 #include "content/public/browser/notification_types.h"
51 #include "ui/base/accelerators/accelerator.h" 52 #include "ui/base/accelerators/accelerator.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 previous_screen_(NULL), 140 previous_screen_(NULL),
140 #if defined(GOOGLE_CHROME_BUILD) 141 #if defined(GOOGLE_CHROME_BUILD)
141 is_official_build_(true), 142 is_official_build_(true),
142 #else 143 #else
143 is_official_build_(false), 144 is_official_build_(false),
144 #endif 145 #endif
145 is_out_of_box_(false), 146 is_out_of_box_(false),
146 host_(host), 147 host_(host),
147 oobe_display_(oobe_display), 148 oobe_display_(oobe_display),
148 usage_statistics_reporting_(true), 149 usage_statistics_reporting_(true),
150 rlz_enabled_(false),
149 skip_update_enroll_after_eula_(false), 151 skip_update_enroll_after_eula_(false),
150 login_screen_started_(false) { 152 login_screen_started_(false),
153 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
151 DCHECK(default_controller_ == NULL); 154 DCHECK(default_controller_ == NULL);
152 default_controller_ = this; 155 default_controller_ = this;
153 } 156 }
154 157
155 WizardController::~WizardController() { 158 WizardController::~WizardController() {
156 if (default_controller_ == this) { 159 if (default_controller_ == this) {
157 default_controller_ = NULL; 160 default_controller_ = NULL;
158 } else { 161 } else {
159 NOTREACHED() << "More than one controller are alive."; 162 NOTREACHED() << "More than one controller are alive.";
160 } 163 }
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 PrefService::UNSYNCABLE_PREF); 419 PrefService::UNSYNCABLE_PREF);
417 } 420 }
418 if (local_state->FindPreference(prefs::kVirtualKeyboardEnabled) == NULL) { 421 if (local_state->FindPreference(prefs::kVirtualKeyboardEnabled) == NULL) {
419 local_state->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, 422 local_state->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled,
420 false, 423 false,
421 PrefService::UNSYNCABLE_PREF); 424 PrefService::UNSYNCABLE_PREF);
422 } 425 }
423 local_state->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); 426 local_state->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false);
424 local_state->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); 427 local_state->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true);
425 local_state->RegisterBooleanPref(prefs::kFactoryResetRequested, false); 428 local_state->RegisterBooleanPref(prefs::kFactoryResetRequested, false);
429 local_state->RegisterStringPref(prefs::kRLZBrand, std::string(),
430 PrefService::UNSYNCABLE_PREF);
431 local_state->RegisterBooleanPref(prefs::kRLZEnabled, false,
432 PrefService::UNSYNCABLE_PREF);
426 } 433 }
427 434
428 /////////////////////////////////////////////////////////////////////////////// 435 ///////////////////////////////////////////////////////////////////////////////
429 // WizardController, ExitHandlers: 436 // WizardController, ExitHandlers:
430 void WizardController::OnNetworkConnected() { 437 void WizardController::OnNetworkConnected() {
431 if (is_official_build_) { 438 if (is_official_build_) {
432 if (!IsEulaAccepted()) { 439 if (!IsEulaAccepted()) {
433 ShowEulaScreen(); 440 ShowEulaScreen();
434 } else { 441 } else {
435 // Possible cases: 442 // Possible cases:
(...skipping 18 matching lines...) Expand all
454 ShowLoginScreen(); 461 ShowLoginScreen();
455 } 462 }
456 463
457 void WizardController::OnUpdateCompleted() { 464 void WizardController::OnUpdateCompleted() {
458 OnOOBECompleted(); 465 OnOOBECompleted();
459 } 466 }
460 467
461 void WizardController::OnEulaAccepted() { 468 void WizardController::OnEulaAccepted() {
462 time_eula_accepted_ = base::Time::Now(); 469 time_eula_accepted_ = base::Time::Now();
463 MarkEulaAccepted(); 470 MarkEulaAccepted();
464 bool enabled = 471 bool uma_enabled =
465 OptionsUtil::ResolveMetricsReportingEnabled(usage_statistics_reporting_); 472 OptionsUtil::ResolveMetricsReportingEnabled(usage_statistics_reporting_);
466 473
467 content::NotificationService::current()->Notify( 474 content::NotificationService::current()->Notify(
468 chrome::NOTIFICATION_WIZARD_EULA_ACCEPTED, 475 chrome::NOTIFICATION_WIZARD_EULA_ACCEPTED,
469 content::NotificationSource(content::Source<WizardController>(this)), 476 content::NotificationSource(content::Source<WizardController>(this)),
470 content::NotificationService::NoDetails()); 477 content::NotificationService::NoDetails());
471 478
472 CrosSettings::Get()->SetBoolean(kStatsReportingPref, enabled); 479 CrosSettings::Get()->SetBoolean(kStatsReportingPref, uma_enabled);
473 if (enabled) { 480 if (uma_enabled) {
474 #if defined(USE_LINUX_BREAKPAD) 481 #if defined(USE_LINUX_BREAKPAD)
475 // The crash reporter initialization needs IO to complete. 482 // The crash reporter initialization needs IO to complete.
476 base::ThreadRestrictions::ScopedAllowIO allow_io; 483 base::ThreadRestrictions::ScopedAllowIO allow_io;
477 InitCrashReporter(); 484 InitCrashReporter();
478 #endif 485 #endif
479 } 486 }
480 487
488 if (rlz_enabled_) {
489 SaveBoolPreferenceForced(prefs::kRLZEnabled, true);
490 LoadBrandCodeFromFile();
491 } else {
492 OnEulaBlockingTasksDone();
493 }
494 }
495
496 void WizardController::LoadBrandCodeFromFile() {
497 google_util::chromeos::SetBrandFromFile(
498 base::Bind(&WizardController::OnEulaBlockingTasksDone,
499 weak_ptr_factory_.GetWeakPtr()));
500 }
501
502 void WizardController::OnEulaBlockingTasksDone() {
503 LOG(ERROR) << "WizardController::OnEulaBlockingTasksDone";
Nikita (slow) 2012/11/29 11:17:48 nit: Cleanup logging.
Ivan Korotkov 2012/11/29 17:42:28 Done.
481 if (skip_update_enroll_after_eula_) { 504 if (skip_update_enroll_after_eula_) {
482 PerformPostEulaActions(); 505 PerformPostEulaActions();
483 PerformPostUpdateActions(); 506 PerformPostUpdateActions();
484 ShowEnterpriseEnrollmentScreen(); 507 ShowEnterpriseEnrollmentScreen();
485 } else { 508 } else {
486 InitiateOOBEUpdate(); 509 InitiateOOBEUpdate();
487 } 510 }
488 } 511 }
489 512
490 void WizardController::OnUpdateErrorCheckingForUpdate() { 513 void WizardController::OnUpdateErrorCheckingForUpdate() {
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 } 849 }
827 850
828 void WizardController::SetUsageStatisticsReporting(bool val) { 851 void WizardController::SetUsageStatisticsReporting(bool val) {
829 usage_statistics_reporting_ = val; 852 usage_statistics_reporting_ = val;
830 } 853 }
831 854
832 bool WizardController::GetUsageStatisticsReporting() const { 855 bool WizardController::GetUsageStatisticsReporting() const {
833 return usage_statistics_reporting_; 856 return usage_statistics_reporting_;
834 } 857 }
835 858
859 void WizardController::SetRlzEnabled(bool val) {
860 #if defined(ENABLE_RLZ)
861 rlz_enabled_ = val;
862 #endif
863 }
864
865 bool WizardController::GetRlzEnabled() const {
866 return rlz_enabled_;
867 }
868
836 // static 869 // static
837 bool WizardController::IsZeroDelayEnabled() { 870 bool WizardController::IsZeroDelayEnabled() {
838 return zero_delay_enabled_; 871 return zero_delay_enabled_;
839 } 872 }
840 873
841 // static 874 // static
842 void WizardController::SetZeroDelays() { 875 void WizardController::SetZeroDelays() {
843 kShowDelayMs = 0; 876 kShowDelayMs = 0;
844 zero_delay_enabled_ = true; 877 zero_delay_enabled_ = true;
845 } 878 }
846 879
847 } // namespace chromeos 880 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698