Chromium Code Reviews| Index: chrome/browser/chromeos/login/wizard_controller.cc |
| diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc |
| index 8136d1558ddb8bf4f779de0e3ae4bd87c75fbe59..edd1da359c54b99368b2b3d5b759c35129b08201 100644 |
| --- a/chrome/browser/chromeos/login/wizard_controller.cc |
| +++ b/chrome/browser/chromeos/login/wizard_controller.cc |
| @@ -46,6 +46,7 @@ |
| #include "chrome/browser/profile_manager.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/notification_service.h" |
| +#include "chrome/common/notification_type.h" |
| #include "chrome/common/pref_names.h" |
| #include "cros/chromeos_wm_ipc_enums.h" |
| #include "unicode/timezone.h" |
| @@ -266,6 +267,10 @@ WizardController::WizardController() |
| observer_(NULL) { |
| DCHECK(default_controller_ == NULL); |
| default_controller_ = this; |
| + registrar_.Add( |
| + this, |
| + NotificationType::APP_TERMINATING, |
| + NotificationService::AllSources()); |
| } |
| WizardController::~WizardController() { |
| @@ -513,6 +518,18 @@ void WizardController::SkipRegistration() { |
| LOG(ERROR) << "Registration screen is not active."; |
| } |
| +void WizardController::Observe(NotificationType type, |
| + const NotificationSource& source, |
| + const NotificationDetails& details) { |
| + if (type == NotificationType::APP_TERMINATING) { |
|
oshima
2010/12/02 19:40:36
i prefer CHECK because we can catch error.
whywhat
2010/12/03 10:36:56
Done.
|
| + MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
| + MessageLoop::current()->Quit(); |
| + registrar_.Remove(this, |
| + NotificationType::APP_TERMINATING, |
| + NotificationService::AllSources()); |
| + } |
| +} |
| + |
| // static |
| void WizardController::RegisterPrefs(PrefService* local_state) { |
| local_state->RegisterBooleanPref(kOobeComplete, false); |