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 5710002692ec8e090277d9957c2d6757c326d11d..d48309d56562733978cd72f478453a72015ebe12 100644 |
--- a/chrome/browser/chromeos/login/wizard_controller.cc |
+++ b/chrome/browser/chromeos/login/wizard_controller.cc |
@@ -46,6 +46,7 @@ |
#include "chrome/browser/profiles/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) { |
+ CHECK(type == NotificationType::APP_TERMINATING); |
+ |
+ 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); |