Chromium Code Reviews| 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 |