| 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
|
|
|