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

Unified Diff: chrome/browser/chromeos/accessibility/accessibility_private_extension_api.cc

Issue 8747003: Add private system extension API to get system update status (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Codereview Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/accessibility/accessibility_private_extension_api.cc
diff --git a/chrome/browser/chromeos/accessibility/accessibility_private_extension_api.cc b/chrome/browser/chromeos/accessibility/accessibility_private_extension_api.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e5ee4339c9d3dcb419d15192bd8810a8040e0d63
--- /dev/null
+++ b/chrome/browser/chromeos/accessibility/accessibility_private_extension_api.cc
@@ -0,0 +1,73 @@
+#include "chrome/browser/chromeos/accessibility/accessibility_private_extension_api.h"
dmazzoni 2011/11/30 15:46:04 Need copyright at top of file
hashimoto 2011/12/01 02:28:00 Done.
+
+#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h"
+#include "chrome/browser/chromeos/dbus/update_engine_client.h"
+
+namespace chromeos {
+namespace accessibility {
+
+namespace {
+
+// Property keys.
+const char kStateKey[] = "state";
+const char kDownloadProgressKey[] = "download_progress";
+
+// System update states.
+const char kNotAvailableState[] = "NotAvailable";
+const char kUpdatingState[] = "Updating";
+const char kNeedRebootState[] = "NeedReboot";
+
+} // namespace
+
+bool GetUpdateStatusFunction::RunImpl() {
+ const chromeos::UpdateEngineClient::Status status =
+ chromeos::DBusThreadManager::Get()->GetUpdateEngineClient()->
dmazzoni 2011/11/30 15:46:04 Do you need to do NULL checks of any of these? Is
hashimoto 2011/12/01 02:28:00 No need for NULL check here because a stub impleme
+ GetLastStatus();
+ // |download_progress| is set to 1 after download finishes
+ // (i.e. verify, finalize and need-reboot phase) to indicate the progress
+ // even though |status.download_progress| is 0 in these phases.
+ std::string state;
+ double download_progress = 0;
+ switch(status.status) {
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_ERROR:
+ state = kNotAvailableState;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_IDLE:
+ state = kNotAvailableState;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE:
+ state = kNotAvailableState;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE:
+ state = kUpdatingState;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_DOWNLOADING:
+ state = kUpdatingState;
+ download_progress = status.download_progress;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_VERIFYING:
+ state = kUpdatingState;
+ download_progress = 1;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_FINALIZING:
+ state = kUpdatingState;
+ download_progress = 1;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT:
+ state = kNeedRebootState;
+ download_progress = 1;
+ break;
+ case chromeos::UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT:
+ state = kNotAvailableState;
+ break;
+ }
+ DictionaryValue* dict = new DictionaryValue();
+ dict->SetString(kStateKey, state);
+ dict->SetDouble(kDownloadProgressKey, download_progress);
+ result_.reset(dict);
+
+ return true;
+}
+
+} // namespace accessibility
+} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698