Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(437)

Side by Side Diff: chrome/browser/ui/webui/help/version_updater_chromeos.cc

Issue 9320056: Help: Implement the initial version of the cross-platform help/about page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: String fix. Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/webui/help/version_updater_chromeos.h"
6
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "chrome/browser/chromeos/dbus/dbus_thread_manager.h"
10 #include "chrome/browser/chromeos/dbus/power_manager_client.h"
11 #include "chrome/browser/chromeos/login/wizard_controller.h"
12
13 using chromeos::DBusThreadManager;
14 using chromeos::UpdateEngineClient;
15 using chromeos::WizardController;
16
17 VersionUpdater* VersionUpdater::Create() {
18 return static_cast<VersionUpdater*>(new VersionUpdaterCros);
19 }
20
21 bool VersionUpdaterCros::CanBeUpdated() const {
22 return true;
23 }
24
25 void VersionUpdaterCros::CheckForUpdate(const StatusCallback& callback) {
26 callback_ = callback;
27
28 UpdateEngineClient* update_engine_client =
29 DBusThreadManager::Get()->GetUpdateEngineClient();
30 update_engine_client->AddObserver(this);
31
32 // Make sure that libcros is loaded and OOBE is complete.
33 if (!WizardController::default_controller() ||
34 WizardController::IsDeviceRegistered()) {
35 update_engine_client->RequestUpdateCheck(
36 UpdateEngineClient::EmptyUpdateCheckCallback());
37 }
38 }
39
40 void VersionUpdaterCros::RelaunchBrowser() const {
41 DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart();
42 }
43
44 VersionUpdaterCros::~VersionUpdaterCros() {
45 UpdateEngineClient* update_engine_client =
46 DBusThreadManager::Get()->GetUpdateEngineClient();
47 update_engine_client->RemoveObserver(this);
48 }
49
50 void VersionUpdaterCros::UpdateStatusChanged(
51 const UpdateEngineClient::Status& status) OVERRIDE {
Nico 2012/02/05 04:50:28 OVERRIDE in cc files is a compile error
52 Status my_status = UPDATED;
53 int progress = 0;
54
55 switch (status.status) {
56 case UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE:
57 my_status = CHECKING;
58 break;
59 case UpdateEngineClient::UPDATE_STATUS_DOWNLOADING:
60 progress = static_cast<int>(status.download_progress * 100.0);
61 // Fall through.
62 case UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE:
63 case UpdateEngineClient::UPDATE_STATUS_VERIFYING:
64 case UpdateEngineClient::UPDATE_STATUS_FINALIZING:
65 my_status = UPDATING;
66 break;
67 case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT:
68 my_status = NEARLY_UPDATED;
69 break;
70 default:
71 break;
72 }
73
74 callback_.Run(my_status, progress);
75 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698