Commit a5a905fb authored by Bailey Berro's avatar Bailey Berro Committed by Commit Bot

Introduce DiagnosticsUI::BindInterface method for SystemDataProvider

This change introduces a DiagnosticsUI::BindInterface specialization
for SystemDataProvider.

Bug: 1128204
Change-Id: I565ad6a77761004de132cb7ca8884d4b50db4289
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2495796Reviewed-by: default avatarZentaro Kavanagh <zentaro@chromium.org>
Commit-Queue: Bailey Berro <baileyberro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821393}
parent 46029fc6
......@@ -8,6 +8,9 @@
#include "base/containers/span.h"
#include "base/memory/ptr_util.h"
#include "chromeos/components/diagnostics_ui/backend/diagnostics_manager.h"
#include "chromeos/components/diagnostics_ui/backend/system_data_provider.h"
#include "chromeos/components/diagnostics_ui/mojom/system_data_provider.mojom.h"
#include "chromeos/components/diagnostics_ui/url_constants.h"
#include "chromeos/grit/chromeos_diagnostics_app_resources.h"
#include "chromeos/grit/chromeos_diagnostics_app_resources_map.h"
......@@ -78,7 +81,9 @@ void SetUpWebUIDataSource(content::WebUIDataSource* source,
} // namespace
DiagnosticsUI::DiagnosticsUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui) {
: ui::MojoWebUIController(web_ui),
diagnostics_manager_(
std::make_unique<diagnostics::DiagnosticsManager>()) {
auto html_source = base::WrapUnique(
content::WebUIDataSource::Create(kChromeUIDiagnosticsAppHost));
html_source->OverrideContentSecurityPolicy(
......@@ -97,4 +102,15 @@ DiagnosticsUI::DiagnosticsUI(content::WebUI* web_ui)
DiagnosticsUI::~DiagnosticsUI() = default;
void DiagnosticsUI::BindInterface(
mojo::PendingReceiver<diagnostics::mojom::SystemDataProvider> receiver) {
diagnostics::SystemDataProvider* system_data_provider =
diagnostics_manager_->GetSystemDataProvider();
if (system_data_provider) {
system_data_provider->BindInterface(std::move(receiver));
}
}
WEB_UI_CONTROLLER_TYPE_IMPL(DiagnosticsUI)
} // namespace chromeos
......@@ -5,6 +5,9 @@
#ifndef CHROMEOS_COMPONENTS_DIAGNOSTICS_UI_DIAGNOSTICS_UI_H_
#define CHROMEOS_COMPONENTS_DIAGNOSTICS_UI_DIAGNOSTICS_UI_H_
#include "base/macros.h"
#include "chromeos/components/diagnostics_ui/mojom/system_data_provider.mojom-forward.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/webui/mojo_web_ui_controller.h"
namespace content {
......@@ -12,6 +15,11 @@ class WebUI;
} // namespace content
namespace chromeos {
namespace diagnostics {
class DiagnosticsManager;
} // namespace diagnostics
// The WebUI for chrome://diagnostics.
class DiagnosticsUI : public ui::MojoWebUIController {
......@@ -21,6 +29,14 @@ class DiagnosticsUI : public ui::MojoWebUIController {
DiagnosticsUI(const DiagnosticsUI&) = delete;
DiagnosticsUI& operator=(const DiagnosticsUI&) = delete;
void BindInterface(
mojo::PendingReceiver<diagnostics::mojom::SystemDataProvider> receiver);
private:
WEB_UI_CONTROLLER_TYPE_DECL();
std::unique_ptr<diagnostics::DiagnosticsManager> diagnostics_manager_;
};
} // namespace chromeos
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment