| 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",
|
| + 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);
|
| }
|
|
|