Commit c665abae authored by Juliet Levesque's avatar Juliet Levesque Committed by Commit Bot

[Multidevice] Add empty chrome://multidevice-internals WebUI

This will host the Multidevice Internals UI for Chrome browser and
ChromeOS where features such as logging displays will be placed to aid
with debugging efforts. Screenshot here:
https://screenshot.googleplex.com/tijC8cu68OA.

Change-Id: I3544b8652690c5f7a9621750072b9244297f2f1f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2350228
Commit-Queue: Juliet Levesque <julietlevesque@google.com>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799935}
parent ee70e70b
......@@ -1326,6 +1326,7 @@ group("extra_resources") {
if (is_chromeos) {
public_deps += [
"//chrome/browser/resources:bluetooth_pairing_dialog_resources",
"//chrome/browser/resources:multidevice_internals_resources",
"//chrome/browser/resources:os_settings_resources",
"//chrome/browser/resources/chromeos:cellular_setup_resources",
"//chrome/browser/resources/chromeos:multidevice_setup_resources",
......
......@@ -339,6 +339,27 @@ if (!is_android) {
}
if (is_chromeos) {
grit("multidevice_internals_resources") {
source =
"chromeos/multidevice_internals/multidevice_internals_resources.grd"
grit_flags = [
"-E",
"root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [ "//chrome/browser/resources/chromeos/multidevice_internals:web_components" ]
defines = chrome_grit_defines
outputs = [
"grit/multidevice_internals_resources.h",
"grit/multidevice_internals_resources_map.cc",
"grit/multidevice_internals_resources_map.h",
"multidevice_internals_resources.pak",
]
output_dir = "$root_gen_dir/chrome"
}
grit("os_settings_resources") {
grit_flags = [
"-E",
......
......@@ -52,6 +52,7 @@ group("closure_compile") {
"login:closure_compile",
"login/components:closure_compile",
"machine_learning:closure_compile",
"multidevice_internals:closure_compile",
"multidevice_setup:closure_compile",
"network_ui:closure_compile",
"set_time_dialog:closure_compile",
......
# Copyright 2020 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.
import("//third_party/closure_compiler/compile_js.gni")
import("//tools/polymer/html_to_js.gni")
js_type_check("closure_compile") {
is_polymer3 = true
deps = [ ":multidevice_internals" ]
}
js_library("multidevice_internals") {
deps = [
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
]
}
html_to_js("web_components") {
js_files = [ "multidevice_internals.js" ]
}
file://chromeos/components/multidevice/OWNERS
# COMPONENT: OS>Systems>Multidevice
<!doctype html>
<html dir="$i18n{textdirection}" lang="$i18n{language}">
<head>
<meta charset="utf-8">
<base href="chrome://multidevice-internals">
<link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
<style>
body {
margin: 0;
}
</style>
</head>
<body>
<multidevice-internals></multidevice-internals>
<script type="module" src="multidevice_internals.js"></script>
</body>
</html>
// Copyright 2020 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.
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
Polymer({
is: 'multidevice-internals',
_template: html`{__html_template__}`,
});
<?xml version="1.0" encoding="UTF-8"?>
<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
<outputs>
<output filename="grit/multidevice_internals_resources.h" type="rc_header">
<emit emit_type='prepend'></emit>
</output>
<output filename="grit/multidevice_internals_resources_map.cc"
type="resource_file_map_source" />
<output filename="grit/multidevice_internals_resources_map.h"
type="resource_map_header" />
<output filename="multidevice_internals_resources.pak" type="data_package" />
</outputs>
<release seq="1">
<includes>
<include name="IDR_MULTIDEVICE_INTERNALS_INDEX_HTML"
file="index.html"
type="BINDATA"/>
<include name="IDR_MULTIDEVICE_INTERNALS_MULTIDEVICE_INTERNALS_JS"
file="${root_gen_dir}\chrome\browser\resources\chromeos\multidevice_internals\multidevice_internals.js"
use_base_dir="false"
type="BINDATA"/>
</includes>
</release>
</grit>
......@@ -2297,6 +2297,8 @@ static_library("ui") {
"webui/chromeos/machine_learning/machine_learning_internals_page_handler.h",
"webui/chromeos/machine_learning/machine_learning_internals_ui.cc",
"webui/chromeos/machine_learning/machine_learning_internals_ui.h",
"webui/chromeos/multidevice_internals/multidevice_internals_ui.cc",
"webui/chromeos/multidevice_internals/multidevice_internals_ui.h",
"webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc",
"webui/chromeos/multidevice_setup/multidevice_setup_dialog.h",
"webui/chromeos/multidevice_setup/multidevice_setup_handler.cc",
......
......@@ -180,6 +180,7 @@
#include "chrome/browser/ui/webui/chromeos/internet_detail_dialog.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/browser/ui/webui/chromeos/machine_learning/machine_learning_internals_ui.h"
#include "chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_ui.h"
#include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h"
#include "chrome/browser/ui/webui/chromeos/network_ui.h"
#include "chrome/browser/ui/webui/chromeos/power_ui.h"
......@@ -634,6 +635,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<chromeos::machine_learning::MachineLearningInternalsUI>;
if (url.host_piece() == chrome::kChromeUIMobileSetupHost)
return &NewWebUI<chromeos::cellular_setup::MobileSetupUI>;
if (url.host_piece() == chrome::kChromeUIMultiDeviceInternalsHost)
return &NewWebUI<chromeos::MultideviceInternalsUI>;
if (url.host_piece() == chrome::kChromeUIMultiDeviceSetupHost)
return &NewWebUI<chromeos::multidevice_setup::MultiDeviceSetupDialogUI>;
if (url.host_piece() == chrome::kChromeUINetworkHost)
......
file://chromeos/components/multidevice/OWNERS
# COMPONENT: OS>Systems>Multidevice
// Copyright 2020 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/chromeos/multidevice_internals/multidevice_internals_ui.h"
#include "base/containers/span.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/multidevice_internals_resources.h"
#include "chrome/grit/multidevice_internals_resources_map.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "ui/base/webui/web_ui_util.h"
namespace chromeos {
namespace {
constexpr char kMultideviceInternalsGeneratedPath[] =
"@out_folder@/gen/chrome/browser/resources/chromeos/multidevice_internals/";
} // namespace
MultideviceInternalsUI::MultideviceInternalsUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui) {
Profile* profile = Profile::FromWebUI(web_ui);
content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
chrome::kChromeUIMultiDeviceInternalsHost);
webui::SetupWebUIDataSource(
html_source,
base::make_span(kMultideviceInternalsResources,
kMultideviceInternalsResourcesSize),
kMultideviceInternalsGeneratedPath, IDR_MULTIDEVICE_INTERNALS_INDEX_HTML);
content::WebUIDataSource::Add(profile, html_source);
}
MultideviceInternalsUI::~MultideviceInternalsUI() = default;
WEB_UI_CONTROLLER_TYPE_IMPL(MultideviceInternalsUI)
} // namespace chromeos
// Copyright 2020 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.
#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_MULTIDEVICE_INTERNALS_MULTIDEVICE_INTERNALS_UI_H_
#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_MULTIDEVICE_INTERNALS_MULTIDEVICE_INTERNALS_UI_H_
#include "ui/webui/mojo_web_ui_controller.h"
namespace chromeos {
// The WebUI controller for chrome://multidevice-internals.
class MultideviceInternalsUI : public ui::MojoWebUIController {
public:
explicit MultideviceInternalsUI(content::WebUI* web_ui);
MultideviceInternalsUI(const MultideviceInternalsUI&) = delete;
MultideviceInternalsUI& operator=(const MultideviceInternalsUI&) = delete;
~MultideviceInternalsUI() override;
private:
WEB_UI_CONTROLLER_TYPE_DECL();
};
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_MULTIDEVICE_INTERNALS_MULTIDEVICE_INTERNALS_UI_H_
......@@ -166,6 +166,7 @@ template("chrome_extra_paks") {
"$root_gen_dir/chrome/bluetooth_pairing_dialog_resources.pak",
"$root_gen_dir/chrome/browser/supervised_user/supervised_user_unscaled_resources.pak",
"$root_gen_dir/chrome/cellular_setup_resources.pak",
"$root_gen_dir/chrome/multidevice_internals_resources.pak",
"$root_gen_dir/chrome/multidevice_setup_resources.pak",
"$root_gen_dir/chrome/os_settings_resources.pak",
"$root_gen_dir/chromeos/chromeos_camera_app_resources.pak",
......@@ -182,6 +183,7 @@ template("chrome_extra_paks") {
deps += [
"//ash/public/cpp/resources:ash_public_unscaled_resources",
"//chrome/browser/resources:bluetooth_pairing_dialog_resources",
"//chrome/browser/resources:multidevice_internals_resources",
"//chrome/browser/resources:os_settings_resources",
"//chrome/browser/resources/chromeos:cellular_setup_resources",
"//chrome/browser/resources/chromeos:multidevice_setup_resources",
......
......@@ -254,6 +254,7 @@ const char kChromeUIMachineLearningInternalsHost[] =
"machine-learning-internals";
const char kChromeUIMobileSetupHost[] = "mobilesetup";
const char kChromeUIMobileSetupURL[] = "chrome://mobilesetup/";
const char kChromeUIMultiDeviceInternalsHost[] = "multidevice-internals";
const char kChromeUIMultiDeviceSetupHost[] = "multidevice-setup";
const char kChromeUIMultiDeviceSetupUrl[] = "chrome://multidevice-setup";
const char kChromeUINetworkHost[] = "network";
......
......@@ -246,6 +246,7 @@ extern const char kChromeUICrostiniCreditsURL[];
extern const char kChromeUIMachineLearningInternalsHost[];
extern const char kChromeUIMobileSetupHost[];
extern const char kChromeUIMobileSetupURL[];
extern const char kChromeUIMultiDeviceInternalsHost[];
extern const char kChromeUIMultiDeviceSetupHost[];
extern const char kChromeUIMultiDeviceSetupUrl[];
extern const char kChromeUINetworkHost[];
......
......@@ -114,6 +114,10 @@
"includes": [1300],
},
"chrome/browser/resources/chromeos/cellular_setup/cellular_setup_resources.grd": {
"structures": [1360],
},
"chrome/browser/resources/chromeos/multidevice_internals/multidevice_internals_resources.grd": {
"includes": [1370],
"structures": [1380],
},
"chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd": {
......
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