Index: chrome/browser/chromeos/login/update_screen.cc |
diff --git a/chrome/browser/chromeos/login/update_screen.cc b/chrome/browser/chromeos/login/update_screen.cc |
index f1dc23c3ea4ba72de467beb881409cc939aec13c..8e70834adde957e927f5cd3d4ba56b07f64b3e33 100644 |
--- a/chrome/browser/chromeos/login/update_screen.cc |
+++ b/chrome/browser/chromeos/login/update_screen.cc |
@@ -77,12 +77,15 @@ UpdateScreen::UpdateScreen(ScreenObserver* screen_observer, |
is_shown_(false), |
ignore_idle_status_(true), |
actor_(actor) { |
+ actor_->SetDelegate(this); |
GetInstanceSet().insert(this); |
} |
UpdateScreen::~UpdateScreen() { |
CrosLibrary::Get()->GetUpdateLibrary()->RemoveObserver(this); |
GetInstanceSet().erase(this); |
+ if (actor_) |
+ actor_->SetDelegate(NULL); |
} |
void UpdateScreen::UpdateStatusChanged(UpdateLibrary* library) { |
@@ -190,6 +193,7 @@ void UpdateScreen::StartUpdate() { |
} |
void UpdateScreen::CancelUpdate() { |
+ VLOG(1) << "Forced update cancel"; |
ExitUpdate(REASON_UPDATE_CANCELED); |
} |
@@ -293,4 +297,9 @@ bool UpdateScreen::HasCriticalUpdate() { |
return true; |
} |
+void UpdateScreen::OnActorDestroyed(UpdateScreenActor* actor) { |
+ if (actor_ == actor) |
+ actor_ = NULL; |
+} |
+ |
} // namespace chromeos |