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 @@ ...@@ -174,6 +174,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/search/user_action_recorder.mojom.h" #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_helper.mojom.h"
#include "chromeos/components/camera_app_ui/camera_app_ui.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/diagnostics_ui.h"
#include "chromeos/components/diagnostics_ui/mojom/system_data_provider.mojom.h" #include "chromeos/components/diagnostics_ui/mojom/system_data_provider.mojom.h"
#include "chromeos/components/help_app_ui/help_app_ui.h" #include "chromeos/components/help_app_ui/help_app_ui.h"
...@@ -742,7 +743,7 @@ void PopulateChromeWebUIFrameBinders( ...@@ -742,7 +743,7 @@ void PopulateChromeWebUIFrameBinders(
RegisterWebUIControllerInterfaceBinder< RegisterWebUIControllerInterfaceBinder<
chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines, chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines,
chromeos::NetworkUI>(map); chromeos::NetworkUI, chromeos::ConnectivityDiagnosticsUI>(map);
RegisterWebUIControllerInterfaceBinder< RegisterWebUIControllerInterfaceBinder<
chromeos::diagnostics::mojom::SystemDataProvider, chromeos::diagnostics::mojom::SystemDataProvider,
......
...@@ -160,6 +160,7 @@ ...@@ -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.h"
#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.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/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.h"
#include "chrome/browser/chromeos/printing/print_management/printing_manager_factory.h" #include "chrome/browser/chromeos/printing/print_management/printing_manager_factory.h"
#include "chrome/browser/chromeos/scanning/scan_service.h" #include "chrome/browser/chromeos/scanning/scan_service.h"
...@@ -219,6 +220,7 @@ ...@@ -219,6 +220,7 @@
#include "chromeos/constants/chromeos_switches.h" #include "chromeos/constants/chromeos_switches.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h" #include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.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" #include "mojo/public/cpp/bindings/pending_receiver.h"
#endif #endif
...@@ -437,6 +439,22 @@ WebUIController* NewWebUI<chromeos::multidevice::ProximityAuthUI>( ...@@ -437,6 +439,22 @@ WebUIController* NewWebUI<chromeos::multidevice::ProximityAuthUI>(
->GetClient(), ->GetClient(),
base::BindRepeating(&BindMultiDeviceSetup, Profile::FromWebUI(web_ui))); 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) #endif // defined(OS_CHROMEOS)
#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
......
...@@ -17,6 +17,7 @@ static_library("connectivity_diagnostics") { ...@@ -17,6 +17,7 @@ static_library("connectivity_diagnostics") {
"//chromeos/components/web_applications", "//chromeos/components/web_applications",
"//chromeos/constants", "//chromeos/constants",
"//chromeos/resources:connectivity_diagnostics_resources", "//chromeos/resources:connectivity_diagnostics_resources",
"//chromeos/services/network_health/public/mojom:mojom",
"//chromeos/strings/", "//chromeos/strings/",
"//content/public/browser", "//content/public/browser",
"//ui/base", "//ui/base",
......
...@@ -4,9 +4,13 @@ ...@@ -4,9 +4,13 @@
#include "chromeos/components/connectivity_diagnostics/connectivity_diagnostics_ui.h" #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/components/connectivity_diagnostics/url_constants.h"
#include "chromeos/grit/connectivity_diagnostics_resources.h" #include "chromeos/grit/connectivity_diagnostics_resources.h"
#include "chromeos/grit/connectivity_diagnostics_resources_map.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 "chromeos/strings/grit/chromeos_strings.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_data_source.h" #include "content/public/browser/web_ui_data_source.h"
...@@ -37,8 +41,12 @@ void SetUpWebUIDataSource(content::WebUIDataSource* source, ...@@ -37,8 +41,12 @@ void SetUpWebUIDataSource(content::WebUIDataSource* source,
} // namespace } // namespace
ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui) ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(
: ui::MojoWebUIController(web_ui, /*enable_chrome_send=*/true) { 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* source =
content::WebUIDataSource::Create(kChromeUIConnectivityDiagnosticsHost); content::WebUIDataSource::Create(kChromeUIConnectivityDiagnosticsHost);
source->OverrideContentSecurityPolicy( source->OverrideContentSecurityPolicy(
...@@ -54,6 +62,7 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui) ...@@ -54,6 +62,7 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui)
SetUpWebUIDataSource(source, resources, kGeneratedPath, SetUpWebUIDataSource(source, resources, kGeneratedPath,
IDR_CONNECTIVITY_DIAGNOSTICS_INDEX_HTML); IDR_CONNECTIVITY_DIAGNOSTICS_INDEX_HTML);
source->AddLocalizedString("appTitle", IDS_CONNECTIVITY_DIAGNOSTICS_TITLE); source->AddLocalizedString("appTitle", IDS_CONNECTIVITY_DIAGNOSTICS_TITLE);
network_diagnostics::AddLocalizedStrings(source);
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(), content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
source); source);
...@@ -61,6 +70,12 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui) ...@@ -61,6 +70,12 @@ ConnectivityDiagnosticsUI::ConnectivityDiagnosticsUI(content::WebUI* web_ui)
ConnectivityDiagnosticsUI::~ConnectivityDiagnosticsUI() = default; 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) WEB_UI_CONTROLLER_TYPE_IMPL(ConnectivityDiagnosticsUI)
} // namespace chromeos } // namespace chromeos
...@@ -5,18 +5,36 @@ ...@@ -5,18 +5,36 @@
#ifndef CHROMEOS_COMPONENTS_CONNECTIVITY_DIAGNOSTICS_CONNECTIVITY_DIAGNOSTICS_UI_H_ #ifndef CHROMEOS_COMPONENTS_CONNECTIVITY_DIAGNOSTICS_CONNECTIVITY_DIAGNOSTICS_UI_H_
#define 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" #include "ui/webui/mojo_web_ui_controller.h"
namespace chromeos { namespace chromeos {
class ConnectivityDiagnosticsUI : public ui::MojoWebUIController { class ConnectivityDiagnosticsUI : public ui::MojoWebUIController {
public: 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() override;
ConnectivityDiagnosticsUI(const ConnectivityDiagnosticsUI&) = delete; ConnectivityDiagnosticsUI(const ConnectivityDiagnosticsUI&) = delete;
ConnectivityDiagnosticsUI& operator=(const ConnectivityDiagnosticsUI&) = ConnectivityDiagnosticsUI& operator=(const ConnectivityDiagnosticsUI&) =
delete; 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(); WEB_UI_CONTROLLER_TYPE_DECL();
}; };
......
...@@ -18,6 +18,8 @@ js_type_check("closure_compile_module") { ...@@ -18,6 +18,8 @@ js_type_check("closure_compile_module") {
js_library("connectivity_diagnostics") { js_library("connectivity_diagnostics") {
deps = [ deps = [
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//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", "//ui/webui/resources/js:i18n_behavior.m",
] ]
} }
......
...@@ -6,3 +6,4 @@ ...@@ -6,3 +6,4 @@
} }
</style> </style>
<h1 id="appTitle">[[i18n('appTitle')]]</h1> <h1 id="appTitle">[[i18n('appTitle')]]</h1>
<network-diagnostics id="network-diagnostics"></network-diagnostics>
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // 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 'chrome://resources/cr_elements/shared_style_css.m.js';
import './strings.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