Chromium Code Reviews| Index: chrome/browser/ui/webui/components_ui.cc |
| diff --git a/chrome/browser/ui/webui/components_ui.cc b/chrome/browser/ui/webui/components_ui.cc |
| index e5cce27f49a3874dd03e8144820f3d736545d4e2..276f8e39c2505070a4284e00b0a41feb33809aa8 100644 |
| --- a/chrome/browser/ui/webui/components_ui.cc |
| +++ b/chrome/browser/ui/webui/components_ui.cc |
| @@ -76,6 +76,8 @@ class ComponentsDOMHandler : public WebUIMessageHandler { |
| private: |
| void LoadComponents(); |
| + void ComponentsDOMHandler::HandleRequestComponentStatus( |
| + const base::ListValue* args); |
| content::NotificationRegistrar registrar_; |
| @@ -93,6 +95,10 @@ void ComponentsDOMHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("checkUpdate", |
| base::Bind(&ComponentsDOMHandler::HandleCheckUpdate, |
| base::Unretained(this))); |
| + |
| + web_ui()->RegisterMessageCallback("requestComponentStatus", |
|
James Hawkins
2014/03/27 18:46:43
nit: The start of parameter rows must align on the
Shrikant Kelkar
2014/03/27 19:28:07
Sorry, didn't understand?
|
| + base::Bind(&ComponentsDOMHandler::HandleRequestComponentStatus, |
| + base::Unretained(this))); |
| } |
| void ComponentsDOMHandler::HandleRequestComponentsData( |
| @@ -119,6 +125,37 @@ void ComponentsDOMHandler::HandleCheckUpdate(const base::ListValue* args) { |
| ComponentsUI::OnDemandUpdate(component_id); |
| } |
| +void ComponentsDOMHandler::HandleRequestComponentStatus( |
| + const base::ListValue* args) { |
| + if (args->GetSize() != 1) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + |
| + std::string component_id; |
| + if (!args->GetString(0, &component_id)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + |
| + component_updater::ComponentUpdateService* cus = |
| + g_browser_process->component_updater(); |
| + component_updater::ComponentUpdateService::Status status = |
| + cus->GetComponentStatus(component_id); |
| + |
| + std::string string_status; |
| + if (status == component_updater::ComponentUpdateService::kInProgress) |
| + string_status = "in-progress"; |
| + else if (status == component_updater::ComponentUpdateService::kOk) |
| + string_status = "ok"; |
| + else |
| + string_status = "error"; |
| + |
| + web_ui()->CallJavascriptFunction("returnComponentStatus", |
| + base::StringValue(component_id), |
| + base::StringValue(string_status)); |
| +} |
| + |
| void ComponentsDOMHandler::LoadComponents() { |
| component_updater::ComponentUpdateService* cus = |
| g_browser_process->component_updater(); |
| @@ -134,6 +171,17 @@ void ComponentsDOMHandler::LoadComponents() { |
| component_entry->SetString("id", component.id); |
| component_entry->SetString("name", component.name); |
| component_entry->SetString("version", component.version); |
| + switch (component.status) { |
| + case component_updater::ComponentUpdateService::kInProgress: |
| + component_entry->SetString("status", "in-progress"); |
| + break; |
| + case component_updater::ComponentUpdateService::kOk: |
| + component_entry->SetString("status", "ok"); |
| + break; |
| + case component_updater::ComponentUpdateService::kError: |
| + component_entry->SetString("status", "error"); |
| + break; |
| + } |
| component_list->Append(component_entry); |
| } |