| Index: chrome/browser/ui/webui/domain_reliability_internals_ui.cc
|
| diff --git a/chrome/browser/ui/webui/domain_reliability_internals_ui.cc b/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..36cc8b06c29593ae6d781b5c6a790ad0e16f3123
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
|
| @@ -0,0 +1,67 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/ui/webui/domain_reliability_internals_ui.h"
|
| +
|
| +#include "chrome/browser/domain_reliability/service_factory.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/common/url_constants.h"
|
| +#include "components/domain_reliability/service.h"
|
| +#include "content/public/browser/web_ui.h"
|
| +#include "content/public/browser/web_ui_data_source.h"
|
| +#include "grit/browser_resources.h"
|
| +#include "grit/generated_resources.h"
|
| +
|
| +using domain_reliability::DomainReliabilityService;
|
| +using domain_reliability::DomainReliabilityServiceFactory;
|
| +
|
| +DomainReliabilityInternalsUI::DomainReliabilityInternalsUI(
|
| + content::WebUI* web_ui)
|
| + : content::WebUIController(web_ui) {
|
| + content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
|
| + chrome::kChromeUIDomainReliabilityInternalsHost);
|
| + html_source->SetUseJsonJSFormatV2();
|
| + html_source->SetJsonPath("strings.js");
|
| + html_source->AddResourcePath("domain_reliability_internals.css",
|
| + IDR_DOMAIN_RELIABILITY_INTERNALS_CSS);
|
| + html_source->AddResourcePath("domain_reliability_internals.js",
|
| + IDR_DOMAIN_RELIABILITY_INTERNALS_JS);
|
| + html_source->SetDefaultResource(IDR_DOMAIN_RELIABILITY_INTERNALS_HTML);
|
| +
|
| + web_ui->RegisterMessageCallback("updateData",
|
| + base::Bind(&DomainReliabilityInternalsUI::UpdateData,
|
| + base::Unretained(this)));
|
| +
|
| + Profile* profile = Profile::FromWebUI(web_ui);
|
| + content::WebUIDataSource::Add(profile, html_source);
|
| +}
|
| +
|
| +DomainReliabilityInternalsUI::~DomainReliabilityInternalsUI() {}
|
| +
|
| +void DomainReliabilityInternalsUI::UpdateData(
|
| + const base::ListValue* args) const {
|
| + Profile* profile = Profile::FromWebUI(web_ui());
|
| + DomainReliabilityServiceFactory* factory =
|
| + DomainReliabilityServiceFactory::GetInstance();
|
| + DCHECK(profile);
|
| + DCHECK(factory);
|
| +
|
| + DomainReliabilityService* service = factory->GetForBrowserContext(profile);
|
| + if (!service) {
|
| + base::DictionaryValue* data = new base::DictionaryValue();
|
| + data->SetString("error", "no_service");
|
| + OnDataUpdated(scoped_ptr<base::Value>(data));
|
| + return;
|
| + }
|
| +
|
| + service->GetWebUIData(base::Bind(
|
| + &DomainReliabilityInternalsUI::OnDataUpdated,
|
| + base::Unretained(this)));
|
| +}
|
| +
|
| +void DomainReliabilityInternalsUI::OnDataUpdated(
|
| + scoped_ptr<base::Value> data) const {
|
| + web_ui()->CallJavascriptFunction(
|
| + "DomainReliabilityInternals.onDataUpdated", *data);
|
| +}
|
|
|