Commit 31d457df authored by Trent Begin's avatar Trent Begin Committed by Commit Bot

Add network diagnostics component to connectivity diagnostics app

This adds the existing network-diagnostics cr_component into the
connectivity diagnostics app and pipes in the necessary dependencies
from chrome.

Bug: chromium:1140611
Change-Id: I7fa82ab611be6da4a7b93031e2c9ffa4efbd3925
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490981
Commit-Queue: Trent Begin <tbegin@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823243}
parent 9a65e5c1
......@@ -174,6 +174,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/search/user_action_recorder.mojom.h"
#include "chromeos/components/camera_app_ui/camera_app_helper.mojom.h"
#include "chromeos/components/camera_app_ui/camera_app_ui.h"
#include "chromeos/components/connectivity_diagnostics/connectivity_diagnostics_ui.h"
#include "chromeos/components/diagnostics_ui/diagnostics_ui.h"
#include "chromeos/components/diagnostics_ui/mojom/system_data_provider.mojom.h"
#include "chromeos/components/help_app_ui/help_app_ui.h"
......@@ -742,7 +743,7 @@ void PopulateChromeWebUIFrameBinders(
RegisterWebUIControllerInterfaceBinder<
chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines,
chromeos::NetworkUI>(map);
chromeos::NetworkUI, chromeos::ConnectivityDiagnosticsUI>(map);
RegisterWebUIControllerInterfaceBinder<
chromeos::diagnostics::mojom::SystemDataProvider,
......
......@@ -160,6 +160,7 @@
#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h"
#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.h"
#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_service_factory.h"
#include "chrome/browser/chromeos/net/network_health/network_health_service.h"
#include "chrome/browser/chromeos/printing/print_management/printing_manager.h"
#include "chrome/browser/chromeos/printing/print_management/printing_manager_factory.h"
#include "chrome/browser/chromeos/scanning/scan_service.h"
......@@ -219,6 +220,7 @@
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#endif
......@@ -437,6 +439,22 @@ WebUIController* NewWebUI<chromeos::multidevice::ProximityAuthUI>(
->GetClient(),
base::BindRepeating(&BindMultiDeviceSetup, Profile::FromWebUI(web_ui)));
}
template <>
WebUIController* NewWebUI<chromeos::ConnectivityDiagnosticsUI>(
WebUI* web_ui,
const GURL& url) {
return new chromeos::ConnectivityDiagnosticsUI(
web_ui,
/* BindNetworkDiagnosticsServiceCallback */
base::BindRepeating(
[](mojo::PendingReceiver<
chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines>
receiver) {
chromeos::network_health::NetworkHealthService::GetInstance()
->BindDiagnosticsReceiver(std::move(receiver));
}));
}
#endif // defined(OS_CHROMEOS)
#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
......
......@@ -17,6 +17,7 @@ static_library("connectivity_diagnostics") {
"//chromeos/components/web_applications",
"//chromeos/constants",
"//chromeos/resources:connectivity_diagnostics_resources",
"//chromeos/services/network_health/public/mojom:mojom",
"//chromeos/strings/",
"//content/public/browser",
"//ui/base",
......
......@@ -4,9 +4,13 @@
#include "chromeos/components/connectivity_diagnostics/connectivity_diagnostics_ui.h"
#include <utility>
#include "chromeos/components/connectivity_diagnostics/network_diagnostics_localized_strings.h"
#include "chromeos/components/connectivity_diagnostics/url_constants.h"
#include "chromeos/grit/connectivity_diagnostics_resources.h"
#include "chromeos/grit/connectivity_diagnostics_resources_map.h"
#include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom.h"
#include "chromeos/strings/grit/chromeos_strings.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_data_source.h"
......@@ -37,8 +41,12 @@ void SetUpWebUIDataSource(content::WebUIDataSource* source,
} // namespace
ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui, /*enable_chrome_send=*/true) {
ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(
content::WebUI* web_ui,
BindNetworkDiagnosticsServiceCallback bind_network_diagnostics_callback)
: ui::MojoWebUIController(web_ui),
bind_network_diagnostics_service_callback_(
std::move(bind_network_diagnostics_callback)) {
content::WebUIDataSource* source =
content::WebUIDataSource::Create(kChromeUIConnectivityDiagnosticsHost);
source->OverrideContentSecurityPolicy(
......@@ -54,6 +62,7 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui)
SetUpWebUIDataSource(source, resources, kGeneratedPath,
IDR_CONNECTIVITY_DIAGNOSTICS_INDEX_HTML);
source->AddLocalizedString("appTitle", IDS_CONNECTIVITY_DIAGNOSTICS_TITLE);
network_diagnostics::AddLocalizedStrings(source);
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
source);
......@@ -61,6 +70,12 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui)
ConnectivityDiagnosticsUI::~ConnectivityDiagnosticsUI() = default;
void ConnectivityDiagnosticsUI::BindInterface(
mojo::PendingReceiver<
network_diagnostics::mojom::NetworkDiagnosticsRoutines> receiver) {
bind_network_diagnostics_service_callback_.Run(std::move(receiver));
}
WEB_UI_CONTROLLER_TYPE_IMPL(ConnectivityDiagnosticsUI)
} // namespace chromeos
......@@ -5,18 +5,36 @@
#ifndef CHROMEOS_COMPONENTS_CONNECTIVITY_DIAGNOSTICS_CONNECTIVITY_DIAGNOSTICS_UI_H_
#define CHROMEOS_COMPONENTS_CONNECTIVITY_DIAGNOSTICS_CONNECTIVITY_DIAGNOSTICS_UI_H_
#include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom-forward.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/webui/mojo_web_ui_controller.h"
namespace chromeos {
class ConnectivityDiagnosticsUI : public ui::MojoWebUIController {
public:
explicit ConnectivityDiagnosticsUI(content::WebUI* web_ui);
using BindNetworkDiagnosticsServiceCallback = base::RepeatingCallback<void(
mojo::PendingReceiver<
network_diagnostics::mojom::NetworkDiagnosticsRoutines>)>;
explicit ConnectivityDiagnosticsUI(
content::WebUI* web_ui,
BindNetworkDiagnosticsServiceCallback bind_network_diagnostics_callback);
~ConnectivityDiagnosticsUI() override;
ConnectivityDiagnosticsUI(const ConnectivityDiagnosticsUI&) = delete;
ConnectivityDiagnosticsUI& operator=(const ConnectivityDiagnosticsUI&) =
delete;
// Instantiates implementation of the mojom::NetworkDiagnosticsRoutines mojo
// interface passing the pending receiver that will be bound.
void BindInterface(
mojo::PendingReceiver<
network_diagnostics::mojom::NetworkDiagnosticsRoutines> receiver);
private:
const BindNetworkDiagnosticsServiceCallback
bind_network_diagnostics_service_callback_;
WEB_UI_CONTROLLER_TYPE_DECL();
};
......
......@@ -18,6 +18,8 @@ js_type_check("closure_compile_module") {
js_library("connectivity_diagnostics") {
deps = [
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/cr_components/chromeos/network_health:network_diagnostics.m",
"//ui/webui/resources/cr_components/chromeos/network_health:network_diagnostics_mojo.m",
"//ui/webui/resources/js:i18n_behavior.m",
]
}
......
......@@ -6,3 +6,4 @@
}
</style>
<h1 id="appTitle">[[i18n('appTitle')]]</h1>
<network-diagnostics id="network-diagnostics"></network-diagnostics>
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://resources/cr_components/chromeos/network_health/network_diagnostics.m.js';
import 'chrome://resources/cr_elements/shared_style_css.m.js';
import './strings.m.js';
......
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