Index: chrome/browser/chromeos/login/update_screen.cc |
=================================================================== |
--- chrome/browser/chromeos/login/update_screen.cc (revision 67705) |
+++ chrome/browser/chromeos/login/update_screen.cc (working copy) |
@@ -92,7 +92,7 @@ |
case UPDATE_STATUS_IDLE: |
case UPDATE_STATUS_ERROR: |
case UPDATE_STATUS_REPORTING_ERROR_EVENT: |
- ExitUpdate(); |
+ ExitUpdate(false); |
break; |
default: |
NOTREACHED(); |
@@ -123,7 +123,7 @@ |
CrosLibrary::Get()->GetUpdateLibrary()->AddObserver(this); |
LOG(INFO) << "Checking for update"; |
if (!CrosLibrary::Get()->GetUpdateLibrary()->CheckForUpdate()) { |
- ExitUpdate(); |
+ ExitUpdate(true); |
} |
} |
} |
@@ -132,17 +132,23 @@ |
// Screen has longer lifetime than it's view. |
// View is deleted after wizard proceeds to the next screen. |
if (view()) |
- ExitUpdate(); |
+ ExitUpdate(true); |
} |
-void UpdateScreen::ExitUpdate() { |
+void UpdateScreen::ExitUpdate(bool forced) { |
maximal_curtain_time_timer_.Stop(); |
ScreenObserver* observer = delegate()->GetObserver(this); |
if (!CrosLibrary::Get()->EnsureLoaded()) { |
observer->OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE); |
+ return; |
} |
+ if (forced) { |
+ observer->OnExit(ScreenObserver::UPDATE_NOUPDATE); |
+ return; |
+ } |
+ |
UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary(); |
update_library->RemoveObserver(this); |
switch (update_library->status().status) { |