| 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 2f2c5f638c9f573a86f7d4fdb57c6f914ff7aeb8..85954be119a9cbe2f79ef48f288b0962e6aef2cc 100644
|
| --- a/chrome/browser/chromeos/login/update_screen.cc
|
| +++ b/chrome/browser/chromeos/login/update_screen.cc
|
| @@ -4,10 +4,11 @@
|
|
|
| #include "chrome/browser/chromeos/login/update_screen.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/file_util.h"
|
| #include "base/logging.h"
|
| #include "base/threading/thread_restrictions.h"
|
| -#include "chrome/browser/chromeos/cros/cros_library.h"
|
| +#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h"
|
| #include "chrome/browser/chromeos/login/screen_observer.h"
|
| #include "chrome/browser/chromeos/login/update_screen_actor.h"
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| @@ -39,14 +40,11 @@ const int kUpdateScreenHeight = 305;
|
| const char kUpdateDeadlineFile[] = "/tmp/update-check-response-deadline";
|
|
|
| // Invoked from call to RequestUpdateCheck upon completion of the DBus call.
|
| -void StartUpdateCallback(void* user_data,
|
| - UpdateResult result,
|
| - const char* msg) {
|
| +void StartUpdateCallback(UpdateScreen* screen,
|
| + UpdateEngineClient::UpdateCheckResult result) {
|
| VLOG(1) << "Callback from RequestUpdateCheck, result " << result;
|
| - DCHECK(user_data);
|
| - UpdateScreen* screen = static_cast<UpdateScreen*>(user_data);
|
| if (UpdateScreen::HasInstance(screen)) {
|
| - if (result == chromeos::UPDATE_RESULT_SUCCESS)
|
| + if (result == UpdateEngineClient::UPDATE_RESULT_SUCCESS)
|
| screen->SetIgnoreIdleStatus(false);
|
| else
|
| screen->ExitUpdate(UpdateScreen::REASON_UPDATE_INIT_FAILED);
|
| @@ -84,27 +82,29 @@ UpdateScreen::UpdateScreen(ScreenObserver* screen_observer,
|
| }
|
|
|
| UpdateScreen::~UpdateScreen() {
|
| - CrosLibrary::Get()->GetUpdateLibrary()->RemoveObserver(this);
|
| + DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this);
|
| GetInstanceSet().erase(this);
|
| if (actor_)
|
| actor_->SetDelegate(NULL);
|
| }
|
|
|
| -void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| +void UpdateScreen::UpdateStatusChanged(
|
| + const UpdateEngineClient::Status& status) {
|
| if (is_checking_for_update_ &&
|
| - status.status > UPDATE_STATUS_CHECKING_FOR_UPDATE) {
|
| + status.status > UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE) {
|
| is_checking_for_update_ = false;
|
| }
|
| - if (ignore_idle_status_ && status.status > UPDATE_STATUS_IDLE) {
|
| + if (ignore_idle_status_ && status.status >
|
| + UpdateEngineClient::UPDATE_STATUS_IDLE) {
|
| ignore_idle_status_ = false;
|
| }
|
|
|
| switch (status.status) {
|
| - case UPDATE_STATUS_CHECKING_FOR_UPDATE:
|
| + case UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE:
|
| // Do nothing in these cases, we don't want to notify the user of the
|
| // check unless there is an update.
|
| break;
|
| - case UPDATE_STATUS_UPDATE_AVAILABLE:
|
| + case UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE:
|
| MakeSureScreenIsShown();
|
| actor_->SetProgress(kBeforeDownloadProgress);
|
| if (!HasCriticalUpdate()) {
|
| @@ -118,7 +118,7 @@ void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| actor_->ShowCurtain(false);
|
| }
|
| break;
|
| - case UPDATE_STATUS_DOWNLOADING:
|
| + case UpdateEngineClient::UPDATE_STATUS_DOWNLOADING:
|
| {
|
| MakeSureScreenIsShown();
|
| if (!is_downloading_update_) {
|
| @@ -141,15 +141,15 @@ void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| actor_->SetProgress(kBeforeDownloadProgress + download_progress);
|
| }
|
| break;
|
| - case UPDATE_STATUS_VERIFYING:
|
| + case UpdateEngineClient::UPDATE_STATUS_VERIFYING:
|
| MakeSureScreenIsShown();
|
| actor_->SetProgress(kBeforeVerifyingProgress);
|
| break;
|
| - case UPDATE_STATUS_FINALIZING:
|
| + case UpdateEngineClient::UPDATE_STATUS_FINALIZING:
|
| MakeSureScreenIsShown();
|
| actor_->SetProgress(kBeforeFinalizingProgress);
|
| break;
|
| - case UPDATE_STATUS_UPDATED_NEED_REBOOT:
|
| + case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT:
|
| MakeSureScreenIsShown();
|
| // Make sure that first OOBE stage won't be shown after reboot.
|
| WizardController::MarkOobeCompleted();
|
| @@ -157,7 +157,7 @@ void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| if (HasCriticalUpdate()) {
|
| actor_->ShowCurtain(false);
|
| VLOG(1) << "Initiate reboot after update";
|
| - CrosLibrary::Get()->GetUpdateLibrary()->RebootAfterUpdate();
|
| + DBusThreadManager::Get()->GetUpdateEngineClient()->RebootAfterUpdate();
|
| reboot_timer_.Start(FROM_HERE,
|
| base::TimeDelta::FromSeconds(reboot_check_delay_),
|
| this,
|
| @@ -166,15 +166,15 @@ void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| ExitUpdate(REASON_UPDATE_NON_CRITICAL);
|
| }
|
| break;
|
| - case UPDATE_STATUS_IDLE:
|
| + case UpdateEngineClient::UPDATE_STATUS_IDLE:
|
| if (ignore_idle_status_) {
|
| // It is first IDLE status that is sent before we initiated the check.
|
| break;
|
| }
|
| // else no break
|
|
|
| - case UPDATE_STATUS_ERROR:
|
| - case UPDATE_STATUS_REPORTING_ERROR_EVENT:
|
| + case UpdateEngineClient::UPDATE_STATUS_ERROR:
|
| + case UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT:
|
| ExitUpdate(REASON_UPDATE_ENDED);
|
| break;
|
| default:
|
| @@ -184,10 +184,10 @@ void UpdateScreen::UpdateStatusChanged(const UpdateLibrary::Status& status) {
|
| }
|
|
|
| void UpdateScreen::StartUpdate() {
|
| - CrosLibrary::Get()->GetUpdateLibrary()->AddObserver(this);
|
| + DBusThreadManager::Get()->GetUpdateEngineClient()->AddObserver(this);
|
| VLOG(1) << "Initiate update check";
|
| - CrosLibrary::Get()->GetUpdateLibrary()->RequestUpdateCheck(
|
| - StartUpdateCallback, this);
|
| + DBusThreadManager::Get()->GetUpdateEngineClient()->RequestUpdateCheck(
|
| + base::Bind(StartUpdateCallback, this));
|
| }
|
|
|
| void UpdateScreen::CancelUpdate() {
|
| @@ -211,7 +211,7 @@ void UpdateScreen::PrepareToShow() {
|
| }
|
|
|
| void UpdateScreen::ExitUpdate(UpdateScreen::ExitReason reason) {
|
| - CrosLibrary::Get()->GetUpdateLibrary()->RemoveObserver(this);
|
| + DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this);
|
|
|
| switch (reason) {
|
| case REASON_UPDATE_CANCELED:
|
| @@ -224,21 +224,22 @@ void UpdateScreen::ExitUpdate(UpdateScreen::ExitReason reason) {
|
| case REASON_UPDATE_NON_CRITICAL:
|
| case REASON_UPDATE_ENDED:
|
| {
|
| - UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary();
|
| - switch (update_library->status().status) {
|
| - case UPDATE_STATUS_UPDATE_AVAILABLE:
|
| - case UPDATE_STATUS_UPDATED_NEED_REBOOT:
|
| - case UPDATE_STATUS_DOWNLOADING:
|
| - case UPDATE_STATUS_FINALIZING:
|
| - case UPDATE_STATUS_VERIFYING:
|
| + UpdateEngineClient* update_engine_client =
|
| + DBusThreadManager::Get()->GetUpdateEngineClient();
|
| + switch (update_engine_client->GetLastStatus().status) {
|
| + case UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE:
|
| + case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT:
|
| + case UpdateEngineClient::UPDATE_STATUS_DOWNLOADING:
|
| + case UpdateEngineClient::UPDATE_STATUS_FINALIZING:
|
| + case UpdateEngineClient::UPDATE_STATUS_VERIFYING:
|
| DCHECK(!HasCriticalUpdate());
|
| // Noncritical update, just exit screen as if there is no update.
|
| // no break
|
| - case UPDATE_STATUS_IDLE:
|
| + case UpdateEngineClient::UPDATE_STATUS_IDLE:
|
| get_screen_observer()->OnExit(ScreenObserver::UPDATE_NOUPDATE);
|
| break;
|
| - case UPDATE_STATUS_ERROR:
|
| - case UPDATE_STATUS_REPORTING_ERROR_EVENT:
|
| + case UpdateEngineClient::UPDATE_STATUS_ERROR:
|
| + case UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT:
|
| get_screen_observer()->OnExit(is_checking_for_update_ ?
|
| ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE :
|
| ScreenObserver::UPDATE_ERROR_UPDATING);
|
|
|