Commit 26fef1ee authored by Ken Rockot's avatar Ken Rockot Committed by Commit Bot

Migrate customize_themes to Mojo JS modules

All dependents are also (minimally) updated to support this change.

The module-supporting bindings.js is also modified here so that its
import has no destructive side effects on the global object state. This
allows bindings.js and mojo_bindings_lite.js to be imported by the same
page to mix usage of module-based and non-module-based JS bindings,
which is temporarily needed here by chrome://new-tab-page/

Bug: 1004256
Change-Id: I7e74ca222e099cc8143e5476a9cdcd62b40a8afd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2521907
Commit-Queue: Ken Rockot <rockot@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Ken Rockot <rockot@google.com>
Reviewed-by: default avatarBrian Salomon <bsalomon@google.com>
Reviewed-by: default avatardpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#827337}
parent 288c423b
...@@ -11,7 +11,7 @@ import("//ui/webui/webui_features.gni") ...@@ -11,7 +11,7 @@ import("//ui/webui/webui_features.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + [ "browser_resolver_prefix_replacements=\"chrome://kaleidoscope/=../../chrome/browser/media/kaleidoscope/internal/resources\"" ] closure_flags = default_closure_args + mojom_js_args + [ "browser_resolver_prefix_replacements=\"chrome://kaleidoscope/=../../chrome/browser/media/kaleidoscope/internal/resources\"" ]
deps = [ deps = [
":app", ":app",
...@@ -81,6 +81,7 @@ js_library("app") { ...@@ -81,6 +81,7 @@ js_library("app") {
":promo_browser_command_proxy", ":promo_browser_command_proxy",
"modules:module_wrapper", "modules:module_wrapper",
"modules:modules", "modules:modules",
"//skia/public/mojom:mojom_webui_js",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/cr_elements/cr_toast:cr_toast.m", "//ui/webui/resources/cr_elements/cr_toast:cr_toast.m",
"//ui/webui/resources/js:event_tracker.m", "//ui/webui/resources/js:event_tracker.m",
...@@ -350,6 +351,7 @@ if (optimize_webui) { ...@@ -350,6 +351,7 @@ if (optimize_webui) {
] ]
excludes = [ excludes = [
"chrome://resources/js/cr.m.js", "chrome://resources/js/cr.m.js",
"chrome://resources/mojo/mojo/public/js/bindings.js",
"chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js", "chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js", "chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js", "chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js",
...@@ -357,6 +359,7 @@ if (optimize_webui) { ...@@ -357,6 +359,7 @@ if (optimize_webui) {
"chrome://resources/mojo/mojo/public/mojom/base/time.mojom-lite.js", "chrome://resources/mojo/mojo/public/mojom/base/time.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/unguessable_token.mojom-lite.js", "chrome://resources/mojo/mojo/public/mojom/base/unguessable_token.mojom-lite.js",
"chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js", "chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js",
"chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js",
"chrome://resources/mojo/url/mojom/origin.mojom-lite.js", "chrome://resources/mojo/url/mojom/origin.mojom-lite.js",
"chrome://resources/mojo/url/mojom/url.mojom-lite.js", "chrome://resources/mojo/url/mojom/url.mojom-lite.js",
"new_tab_page.mojom-lite.js", "new_tab_page.mojom-lite.js",
......
...@@ -18,6 +18,7 @@ import {hexColorToSkColor, skColorToRgba} from 'chrome://resources/js/color_util ...@@ -18,6 +18,7 @@ import {hexColorToSkColor, skColorToRgba} from 'chrome://resources/js/color_util
import {FocusOutlineManager} from 'chrome://resources/js/cr/ui/focus_outline_manager.m.js'; import {FocusOutlineManager} from 'chrome://resources/js/cr/ui/focus_outline_manager.m.js';
import {EventTracker} from 'chrome://resources/js/event_tracker.m.js'; import {EventTracker} from 'chrome://resources/js/event_tracker.m.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {SkColor} from 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js';
import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {BackgroundManager} from './background_manager.js'; import {BackgroundManager} from './background_manager.js';
...@@ -166,7 +167,7 @@ class AppElement extends PolymerElement { ...@@ -166,7 +167,7 @@ class AppElement extends PolymerElement {
type: Boolean, type: Boolean,
}, },
/** @private {skia.mojom.SkColor} */ /** @private {SkColor} */
backgroundColor_: { backgroundColor_: {
computed: 'computeBackgroundColor_(showBackgroundImage_, theme_)', computed: 'computeBackgroundColor_(showBackgroundImage_, theme_)',
type: Object, type: Object,
...@@ -588,7 +589,7 @@ class AppElement extends PolymerElement { ...@@ -588,7 +589,7 @@ class AppElement extends PolymerElement {
} }
/** /**
* @param {skia.mojom.SkColor} skColor * @param {SkColor} skColor
* @return {string} * @return {string}
* @private * @private
*/ */
...@@ -700,7 +701,7 @@ class AppElement extends PolymerElement { ...@@ -700,7 +701,7 @@ class AppElement extends PolymerElement {
} }
/** /**
* @return {skia.mojom.SkColor} * @return {SkColor}
* @private * @private
*/ */
computeBackgroundColor_() { computeBackgroundColor_() {
...@@ -711,7 +712,7 @@ class AppElement extends PolymerElement { ...@@ -711,7 +712,7 @@ class AppElement extends PolymerElement {
} }
/** /**
* @return {skia.mojom.SkColor} * @return {SkColor}
* @private * @private
*/ */
computeLogoColor_() { computeLogoColor_() {
......
...@@ -42,8 +42,8 @@ if (optimize_webui) { ...@@ -42,8 +42,8 @@ if (optimize_webui) {
] ]
excludes = [ excludes = [
"chrome://resources/js/cr.m.js", "chrome://resources/js/cr.m.js",
"chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js", "chrome://resources/mojo/mojo/public/js/bindings.js",
"chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js", "chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js",
] ]
} }
} }
......
...@@ -99,7 +99,7 @@ js_library("sync_encryption_options") { ...@@ -99,7 +99,7 @@ js_library("sync_encryption_options") {
js_type_check("closure_compile_module") { js_type_check("closure_compile_module") {
is_polymer3 = true is_polymer3 = true
closure_flags = settings_closure_flags closure_flags = settings_closure_flags + mojom_js_args
deps = [ deps = [
":account_manager_browser_proxy.m", ":account_manager_browser_proxy.m",
":people_page", ":people_page",
......
...@@ -7,6 +7,7 @@ import("//tools/polymer/html_to_js.gni") ...@@ -7,6 +7,7 @@ import("//tools/polymer/html_to_js.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + mojom_js_args
deps = [ deps = [
":profile_customization_app", ":profile_customization_app",
":profile_customization_browser_proxy", ":profile_customization_browser_proxy",
......
...@@ -38,8 +38,8 @@ if (optimize_webui) { ...@@ -38,8 +38,8 @@ if (optimize_webui) {
] ]
excludes = [ excludes = [
"chrome://resources/js/cr.m.js", "chrome://resources/js/cr.m.js",
"chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js", "chrome://resources/mojo/mojo/public/js/bindings.js",
"chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js", "chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js",
] ]
} }
} }
...@@ -136,7 +136,7 @@ group("closure_compile") { ...@@ -136,7 +136,7 @@ group("closure_compile") {
js_type_check("profile_picker_files") { js_type_check("profile_picker_files") {
is_polymer3 = true is_polymer3 = true
closure_flags = closure_flags =
default_closure_args + [ default_closure_args + mojom_js_args + [
"js_module_root=../../chrome/browser/resources/signin/profile_picker/", "js_module_root=../../chrome/browser/resources/signin/profile_picker/",
"js_module_root=./gen/chrome/browser/resources/signin/profile_picker/", "js_module_root=./gen/chrome/browser/resources/signin/profile_picker/",
] ]
......
...@@ -7,6 +7,7 @@ import("//tools/polymer/html_to_js.gni") ...@@ -7,6 +7,7 @@ import("//tools/polymer/html_to_js.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + mojom_js_args
deps = [ deps = [
":local_profile_customization", ":local_profile_customization",
":profile_type_choice", ":profile_type_choice",
......
...@@ -8,10 +8,10 @@ import 'chrome://resources/cr_elements/cr_input/cr_input.m.js'; ...@@ -8,10 +8,10 @@ import 'chrome://resources/cr_elements/cr_input/cr_input.m.js';
import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.m.js'; import 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.m.js';
import 'chrome://resources/cr_elements/shared_vars_css.m.js'; import 'chrome://resources/cr_elements/shared_vars_css.m.js';
import 'chrome://resources/cr_components/customize_themes/customize_themes.js'; import 'chrome://resources/cr_components/customize_themes/customize_themes.js';
import 'chrome://resources/cr_components/customize_themes/customize_themes.mojom-lite.js';
import './shared_css.js'; import './shared_css.js';
import '../icons.js'; import '../icons.js';
import {Theme, ThemeType} from 'chrome://resources/cr_components/customize_themes/customize_themes.mojom-webui.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js'; import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
...@@ -40,7 +40,7 @@ Polymer({ ...@@ -40,7 +40,7 @@ Polymer({
/** /**
* The currently selected theme in the color picker. * The currently selected theme in the color picker.
* @private {!customizeThemes.mojom.Theme} * @private {!Theme}
*/ */
selectedTheme_: { selectedTheme_: {
type: Object, type: Object,
...@@ -190,7 +190,7 @@ Polymer({ ...@@ -190,7 +190,7 @@ Polymer({
} }
this.selectedTheme_ = { this.selectedTheme_ = {
type: customizeThemes.mojom.ThemeType.kChrome, type: ThemeType.kChrome,
info: { info: {
chromeThemeId: this.profileThemeInfo.colorId, chromeThemeId: this.profileThemeInfo.colorId,
}, },
...@@ -204,19 +204,16 @@ Polymer({ ...@@ -204,19 +204,16 @@ Polymer({
async onSelectedThemeChange_() { async onSelectedThemeChange_() {
/** @type {UserThemeChoice} */ /** @type {UserThemeChoice} */
let theme; let theme;
if (this.selectedTheme_.type === if (this.selectedTheme_.type === ThemeType.kAutogenerated) {
customizeThemes.mojom.ThemeType.kAutogenerated) {
theme = { theme = {
colorId: 0, colorId: 0,
color: this.selectedTheme_.info.autogeneratedThemeColors.frame.value color: this.selectedTheme_.info.autogeneratedThemeColors.frame.value
}; };
} else if ( } else if (this.selectedTheme_.type === ThemeType.kChrome) {
this.selectedTheme_.type === customizeThemes.mojom.ThemeType.kChrome) {
theme = { theme = {
colorId: /** @type {number} */ (this.selectedTheme_.info.chromeThemeId), colorId: /** @type {number} */ (this.selectedTheme_.info.chromeThemeId),
}; };
} else if ( } else if (this.selectedTheme_.type === ThemeType.kDefault) {
this.selectedTheme_.type === customizeThemes.mojom.ThemeType.kDefault) {
theme = { theme = {
colorId: -1, colorId: -1,
}; };
......
...@@ -354,7 +354,6 @@ if (include_js_tests) { ...@@ -354,7 +354,6 @@ if (include_js_tests) {
sources = [ sources = [
"bluetooth_internals_browsertest.js", "bluetooth_internals_browsertest.js",
"cr_components/cr_components_mojo_browsertest.js",
"interventions_internals_browsertest.js", "interventions_internals_browsertest.js",
"media/media_engagement_browsertest.js", "media/media_engagement_browsertest.js",
"media/media_feeds_webui_browsertest.js", "media/media_feeds_webui_browsertest.js",
...@@ -386,6 +385,7 @@ if (include_js_tests) { ...@@ -386,6 +385,7 @@ if (include_js_tests) {
js2gtest("browser_tests_js_mojo_webui") { js2gtest("browser_tests_js_mojo_webui") {
test_type = "mojo_webui" test_type = "mojo_webui"
sources = [ sources = [
"cr_components/cr_components_mojo_browsertest.js",
"downloads/downloads_browsertest.js", "downloads/downloads_browsertest.js",
"engagement/site_engagement_browsertest.js", "engagement/site_engagement_browsertest.js",
"usb_internals_browsertest.js", "usb_internals_browsertest.js",
......
...@@ -13,7 +13,7 @@ js_modulizer("modulize") { ...@@ -13,7 +13,7 @@ js_modulizer("modulize") {
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + [ closure_flags = default_closure_args + mojom_js_args + [
"browser_resolver_prefix_replacements=\"chrome://settings/=../../chrome/browser/resources/settings/\"", "browser_resolver_prefix_replacements=\"chrome://settings/=../../chrome/browser/resources/settings/\"",
"browser_resolver_prefix_replacements=\"chrome://new-tab-page/=../../chrome/browser/resources/new_tab_page//\"", "browser_resolver_prefix_replacements=\"chrome://new-tab-page/=../../chrome/browser/resources/new_tab_page//\"",
"js_module_root=../../chrome/test/data/webui/", "js_module_root=../../chrome/test/data/webui/",
......
...@@ -3,9 +3,11 @@ ...@@ -3,9 +3,11 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'chrome://new-tab-page/strings.m.js'; import 'chrome://new-tab-page/strings.m.js';
import '../mojo_webui_test_support.js';
import {CustomizeThemesBrowserProxy, CustomizeThemesBrowserProxyImpl} from 'chrome://resources/cr_components/customize_themes/browser_proxy.js'; import {CustomizeThemesBrowserProxy, CustomizeThemesBrowserProxyImpl} from 'chrome://resources/cr_components/customize_themes/browser_proxy.js';
import {CustomizeThemesElement} from 'chrome://resources/cr_components/customize_themes/customize_themes.js'; import {CustomizeThemesElement} from 'chrome://resources/cr_components/customize_themes/customize_themes.js';
import {ChromeTheme, CustomizeThemesClientCallbackRouter, CustomizeThemesHandlerInterface, ThemeType} from 'chrome://resources/cr_components/customize_themes/customize_themes.mojom-webui.js';
import {ThemeIconElement} from 'chrome://resources/cr_components/customize_themes/theme_icon.js'; import {ThemeIconElement} from 'chrome://resources/cr_components/customize_themes/theme_icon.js';
import {assertEquals, assertTrue} from '../chai_assert.js'; import {assertEquals, assertTrue} from '../chai_assert.js';
...@@ -24,7 +26,7 @@ function assertStyle(element, name, expected) { ...@@ -24,7 +26,7 @@ function assertStyle(element, name, expected) {
assertEquals(expected, actual); assertEquals(expected, actual);
} }
/** @implements {customizeThemes.mojom.CustomizeThemesHandlerInterface} */ /** @implements {CustomizeThemesHandlerInterface} */
class TestCustomizeThemesHandler extends TestBrowserProxy { class TestCustomizeThemesHandler extends TestBrowserProxy {
constructor() { constructor() {
super([ super([
...@@ -37,11 +39,11 @@ class TestCustomizeThemesHandler extends TestBrowserProxy { ...@@ -37,11 +39,11 @@ class TestCustomizeThemesHandler extends TestBrowserProxy {
'revertThemeChanges', 'revertThemeChanges',
]); ]);
/** @private {!Array<customizeThemes.mojom.ChromeTheme>} */ /** @private {!Array<ChromeTheme>} */
this.chromeThemes_ = []; this.chromeThemes_ = [];
} }
/** @param {!Array<customizeThemes.mojom.ChromeTheme>} chromeThemes */ /** @param {!Array<ChromeTheme>} chromeThemes */
setChromeThemes(chromeThemes) { setChromeThemes(chromeThemes) {
this.chromeThemes_ = chromeThemes; this.chromeThemes_ = chromeThemes;
} }
...@@ -91,9 +93,8 @@ class TestCustomizeThemesBrowserProxy extends TestBrowserProxy { ...@@ -91,9 +93,8 @@ class TestCustomizeThemesBrowserProxy extends TestBrowserProxy {
/** @type {TestCustomizeThemesHandler} */ /** @type {TestCustomizeThemesHandler} */
this.testHandler = new TestCustomizeThemesHandler(); this.testHandler = new TestCustomizeThemesHandler();
/** @private {customizeThemes.mojom.CustomizeThemesClientCallbackRouter} */ /** @private {CustomizeThemesClientCallbackRouter} */
this.callbackRouter_ = this.callbackRouter_ = new CustomizeThemesClientCallbackRouter();
new customizeThemes.mojom.CustomizeThemesClientCallbackRouter();
} }
/** @override */ /** @override */
...@@ -125,7 +126,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -125,7 +126,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
} }
/** /**
* @param {!Array<customizeThemes.mojom.ChromeTheme>} themes} * @param {!Array<ChromeTheme>} themes}
* @return {!CustomizeThemesElement} * @return {!CustomizeThemesElement}
*/ */
function createCustomizeThemesElementWithThemes(themes) { function createCustomizeThemesElementWithThemes(themes) {
...@@ -234,7 +235,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -234,7 +235,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Act. // Act.
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kAutogenerated, type: ThemeType.kAutogenerated,
info: { info: {
autogeneratedThemeColors: { autogeneratedThemeColors: {
frame: {value: 0xffff0000}, frame: {value: 0xffff0000},
...@@ -265,7 +266,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -265,7 +266,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Act. // Act.
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kDefault, type: ThemeType.kDefault,
info: {chromeThemeId: 0}, info: {chromeThemeId: 0},
}; };
await flushTasks(); await flushTasks();
...@@ -297,7 +298,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -297,7 +298,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Act. // Act.
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kChrome, type: ThemeType.kChrome,
info: {chromeThemeId: 0}, info: {chromeThemeId: 0},
}; };
await flushTasks(); await flushTasks();
...@@ -315,7 +316,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -315,7 +316,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Act. // Act.
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kThirdParty, type: ThemeType.kThirdParty,
info: { info: {
thirdPartyThemeInfo: { thirdPartyThemeInfo: {
id: 'foo', id: 'foo',
...@@ -339,7 +340,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -339,7 +340,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Arrange. // Arrange.
const customizeThemesElement = createCustomizeThemesElement(); const customizeThemesElement = createCustomizeThemesElement();
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kThirdParty, type: ThemeType.kThirdParty,
info: { info: {
thirdPartyThemeInfo: { thirdPartyThemeInfo: {
id: 'foo', id: 'foo',
...@@ -362,7 +363,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -362,7 +363,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Act. // Act.
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kDefault, type: ThemeType.kDefault,
info: {chromeThemeId: 0}, info: {chromeThemeId: 0},
}; };
...@@ -377,7 +378,7 @@ suite('CrComponentsCustomizeThemesTest', () => { ...@@ -377,7 +378,7 @@ suite('CrComponentsCustomizeThemesTest', () => {
// Arrange. // Arrange.
const customizeThemesElement = createCustomizeThemesElement(); const customizeThemesElement = createCustomizeThemesElement();
customizeThemesElement.selectedTheme = { customizeThemesElement.selectedTheme = {
type: customizeThemes.mojom.ThemeType.kThirdParty, type: ThemeType.kThirdParty,
info: { info: {
thirdPartyThemeInfo: { thirdPartyThemeInfo: {
id: 'foo', id: 'foo',
......
...@@ -6,7 +6,7 @@ import("//third_party/closure_compiler/compile_js.gni") ...@@ -6,7 +6,7 @@ import("//third_party/closure_compiler/compile_js.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + [ closure_flags = default_closure_args + mojom_js_args + [
"browser_resolver_prefix_replacements=\"chrome://new-tab-page/=../../chrome/browser/resources/new_tab_page/\"", "browser_resolver_prefix_replacements=\"chrome://new-tab-page/=../../chrome/browser/resources/new_tab_page/\"",
"browser_resolver_prefix_replacements=\"chrome://kaleidoscope/=../../chrome/browser/media/kaleidoscope/internal/resources\"", "browser_resolver_prefix_replacements=\"chrome://kaleidoscope/=../../chrome/browser/media/kaleidoscope/internal/resources\"",
] ]
......
...@@ -6,7 +6,7 @@ import("//third_party/closure_compiler/compile_js.gni") ...@@ -6,7 +6,7 @@ import("//third_party/closure_compiler/compile_js.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + [ closure_flags = default_closure_args + mojom_js_args + [
"browser_resolver_prefix_replacements=\"chrome://signin-dice-web-intercept/=../../chrome/browser/resources/signin/dice_web_signin_intercept/\"", "browser_resolver_prefix_replacements=\"chrome://signin-dice-web-intercept/=../../chrome/browser/resources/signin/dice_web_signin_intercept/\"",
"browser_resolver_prefix_replacements=\"chrome://profile-customization/=../../chrome/browser/resources/signin/profile_customization/\"", "browser_resolver_prefix_replacements=\"chrome://profile-customization/=../../chrome/browser/resources/signin/profile_customization/\"",
"browser_resolver_prefix_replacements=\"chrome://profile-picker/=../../chrome/browser/resources/signin/profile_picker/\"", "browser_resolver_prefix_replacements=\"chrome://profile-picker/=../../chrome/browser/resources/signin/profile_picker/\"",
......
...@@ -100,6 +100,8 @@ const std::map<int, std::string> CreateSkiaResourceIdToAliasMap() { ...@@ -100,6 +100,8 @@ const std::map<int, std::string> CreateSkiaResourceIdToAliasMap() {
"mojo/skia/public/mojom/image_info.mojom-lite.js"}, "mojo/skia/public/mojom/image_info.mojom-lite.js"},
{IDR_SKIA_SKCOLOR_MOJOM_LITE_JS, {IDR_SKIA_SKCOLOR_MOJOM_LITE_JS,
"mojo/skia/public/mojom/skcolor.mojom-lite.js"}, "mojo/skia/public/mojom/skcolor.mojom-lite.js"},
{IDR_SKIA_SKCOLOR_MOJOM_WEBUI_JS,
"mojo/skia/public/mojom/skcolor.mojom-webui.js"},
}; };
} }
......
...@@ -100,7 +100,7 @@ js_library("bindings_lite_sources") { ...@@ -100,7 +100,7 @@ js_library("bindings_lite_sources") {
# below. # below.
concatenate_files("bindings_uncompiled_module") { concatenate_files("bindings_uncompiled_module") {
inputs = [ inputs = [
"bindings_module_preamble.js.part", "bindings_uncompiled_module_preamble.js.part",
"bindings_lite.js", "bindings_lite.js",
"$root_gen_dir/mojo/public/interfaces/bindings/interface_control_messages.mojom-lite.js", "$root_gen_dir/mojo/public/interfaces/bindings/interface_control_messages.mojom-lite.js",
"interface_support.js", "interface_support.js",
...@@ -128,6 +128,7 @@ if (enable_mojom_closure_compile || enable_js_type_check) { ...@@ -128,6 +128,7 @@ if (enable_mojom_closure_compile || enable_js_type_check) {
concatenate_files("bindings_compiled_module") { concatenate_files("bindings_compiled_module") {
inputs = [ inputs = [
"bindings_module_preamble.js.part",
"$target_gen_dir/mojo_bindings_lite.js", "$target_gen_dir/mojo_bindings_lite.js",
"bindings_module_export.js.part", "bindings_module_export.js.part",
] ]
......
const mojoTmp = self['mojo']; const mojoTmp = self['mojo'];
delete self['mojo']; export {mojoTmp as mojo};
export const mojo = mojoTmp; if (preservedGlobalMojo) {
window.mojo = preservedGlobalMojo;
}
const mojo = { const preservedGlobalMojo = window && window.mojo;
internal: { interfaceSupport: {} },
interfaceControl: {}
};
const mojo = {
internal: { interfaceSupport: {} },
interfaceControl: {}
};
...@@ -1002,5 +1002,8 @@ grit("skia_resources") { ...@@ -1002,5 +1002,8 @@ grit("skia_resources") {
"skia_resources.pak", "skia_resources.pak",
] ]
deps = [ "public/mojom:mojom_js" ] deps = [
"//skia/public/mojom:mojom_js",
"//skia/public/mojom:mojom_webui_js",
]
} }
...@@ -110,4 +110,5 @@ mojom("mojom") { ...@@ -110,4 +110,5 @@ mojom("mojom") {
cpp_typemaps = shared_skia_cpp_typemaps cpp_typemaps = shared_skia_cpp_typemaps
blink_cpp_typemaps = shared_skia_cpp_typemaps blink_cpp_typemaps = shared_skia_cpp_typemaps
webui_module_path = "chrome://resources/mojo/skia/public/mojom/"
} }
...@@ -24,6 +24,10 @@ ...@@ -24,6 +24,10 @@
file="${root_gen_dir}/skia/public/mojom/skcolor.mojom-lite.js" file="${root_gen_dir}/skia/public/mojom/skcolor.mojom-lite.js"
use_base_dir="false" use_base_dir="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_SKIA_SKCOLOR_MOJOM_WEBUI_JS"
file="${root_gen_dir}/mojom-webui/skia/public/mojom/skcolor.mojom-webui.js"
use_base_dir="false"
type="BINDATA" />
</includes> </includes>
</release> </release>
</grit> </grit>
\ No newline at end of file
...@@ -56,8 +56,12 @@ js_modules_args = [ ...@@ -56,8 +56,12 @@ js_modules_args = [
] ]
mojom_js_args = [ mojom_js_args = [
"js_module_root=gen/mojo/public/js/", "js_module_root=" +
"js_module_root=gen/mojom-webui/", rebase_path("$root_gen_dir/mojo/public/js", root_build_dir),
"js_module_root=" + rebase_path("$root_gen_dir/mojom-webui", root_build_dir),
"js_module_root=" +
rebase_path("$root_gen_dir/mojom-webui/ui/webui/resources",
root_build_dir),
# Mojom WebUI JS modules load bindings.js which may be compiled and stripped # Mojom WebUI JS modules load bindings.js which may be compiled and stripped
# of type annotations. Rewrite these references to the uncompiled equivalent # of type annotations. Rewrite these references to the uncompiled equivalent
......
...@@ -10,6 +10,7 @@ import("//ui/webui/webui_features.gni") ...@@ -10,6 +10,7 @@ import("//ui/webui/webui_features.gni")
preprocess_folder = preprocess_folder =
"$root_gen_dir/ui/webui/resources/preprocessed/cr_components" "$root_gen_dir/ui/webui/resources/preprocessed/cr_components"
preprocess_gen_manifest = "preprocessed_gen_manifest.json" preprocess_gen_manifest = "preprocessed_gen_manifest.json"
preprocess_mojom_manifest = "preprocessed_mojom_manifest.json"
preprocess_polymer2_manifest = "preprocessed_polymer2_manifest.json" preprocess_polymer2_manifest = "preprocessed_polymer2_manifest.json"
preprocess_src_manifest = "preprocessed_src_manifest.json" preprocess_src_manifest = "preprocessed_src_manifest.json"
...@@ -19,6 +20,7 @@ generate_grd("build_grdp") { ...@@ -19,6 +20,7 @@ generate_grd("build_grdp") {
deps = [ ":preprocess" ] deps = [ ":preprocess" ]
manifest_files = [ manifest_files = [
"$target_gen_dir/$preprocess_gen_manifest", "$target_gen_dir/$preprocess_gen_manifest",
"$target_gen_dir/$preprocess_mojom_manifest",
"$target_gen_dir/$preprocess_polymer2_manifest", "$target_gen_dir/$preprocess_polymer2_manifest",
"$target_gen_dir/$preprocess_src_manifest", "$target_gen_dir/$preprocess_src_manifest",
] ]
...@@ -28,6 +30,7 @@ generate_grd("build_grdp") { ...@@ -28,6 +30,7 @@ generate_grd("build_grdp") {
group("preprocess") { group("preprocess") {
public_deps = [ public_deps = [
":preprocess_generated", ":preprocess_generated",
":preprocess_mojom",
":preprocess_polymer2", ":preprocess_polymer2",
":preprocess_src", ":preprocess_src",
] ]
...@@ -48,6 +51,15 @@ preprocess_grit("preprocess_src") { ...@@ -48,6 +51,15 @@ preprocess_grit("preprocess_src") {
} }
} }
preprocess_grit("preprocess_mojom") {
deps =
[ "//ui/webui/resources/cr_components/customize_themes:mojom_webui_js" ]
in_folder = "$root_gen_dir/mojom-webui/ui/webui/resources/cr_components"
out_folder = "$preprocess_folder"
out_manifest = "$target_gen_dir/$preprocess_mojom_manifest"
in_files = [ "customize_themes/customize_themes.mojom-webui.js" ]
}
preprocess_grit("preprocess_generated") { preprocess_grit("preprocess_generated") {
deps = [ ":polymer3_elements" ] deps = [ ":polymer3_elements" ]
in_folder = target_gen_dir in_folder = target_gen_dir
...@@ -55,7 +67,6 @@ preprocess_grit("preprocess_generated") { ...@@ -55,7 +67,6 @@ preprocess_grit("preprocess_generated") {
out_manifest = "$target_gen_dir/$preprocess_gen_manifest" out_manifest = "$target_gen_dir/$preprocess_gen_manifest"
in_files = [ in_files = [
"customize_themes/customize_themes.js", "customize_themes/customize_themes.js",
"customize_themes/customize_themes.mojom-lite.js",
"customize_themes/theme_icon.js", "customize_themes/theme_icon.js",
"managed_footnote/managed_footnote.m.js", "managed_footnote/managed_footnote.m.js",
"omnibox/cr_autocomplete_match_list.js", "omnibox/cr_autocomplete_match_list.js",
......
...@@ -8,7 +8,7 @@ import("//tools/polymer/html_to_js.gni") ...@@ -8,7 +8,7 @@ import("//tools/polymer/html_to_js.gni")
group("web_components") { group("web_components") {
public_deps = [ public_deps = [
":mojom_js", ":mojom_webui_js",
":web_components_local", ":web_components_local",
] ]
} }
...@@ -20,6 +20,8 @@ mojom("mojom") { ...@@ -20,6 +20,8 @@ mojom("mojom") {
"//mojo/public/mojom/base", "//mojo/public/mojom/base",
"//skia/public/mojom", "//skia/public/mojom",
] ]
webui_module_path = "chrome://resources/cr_components/customize_themes/"
} }
html_to_js("web_components_local") { html_to_js("web_components_local") {
...@@ -31,6 +33,7 @@ html_to_js("web_components_local") { ...@@ -31,6 +33,7 @@ html_to_js("web_components_local") {
js_type_check("closure_compile") { js_type_check("closure_compile") {
is_polymer3 = true is_polymer3 = true
closure_flags = default_closure_args + mojom_js_args
deps = [ deps = [
":browser_proxy", ":browser_proxy",
":customize_themes", ":customize_themes",
...@@ -41,9 +44,9 @@ js_type_check("closure_compile") { ...@@ -41,9 +44,9 @@ js_type_check("closure_compile") {
js_library("customize_themes") { js_library("customize_themes") {
deps = [ deps = [
":browser_proxy", ":browser_proxy",
":mojom_js_library_for_compile", ":mojom_webui_js",
":theme_icon", ":theme_icon",
"//skia/public/mojom:mojom_js_library_for_compile", "//skia/public/mojom:mojom_webui_js",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/cr_elements/cr_grid", "//ui/webui/resources/cr_elements/cr_grid",
"//ui/webui/resources/js:i18n_behavior.m", "//ui/webui/resources/js:i18n_behavior.m",
...@@ -58,7 +61,7 @@ js_library("theme_icon") { ...@@ -58,7 +61,7 @@ js_library("theme_icon") {
js_library("browser_proxy") { js_library("browser_proxy") {
deps = [ deps = [
":mojom_js_library_for_compile", ":mojom_webui_js",
"//ui/webui/resources/js:cr.m", "//ui/webui/resources/js:cr.m",
] ]
} }
...@@ -7,18 +7,16 @@ ...@@ -7,18 +7,16 @@
* interact with the browser. * interact with the browser.
*/ */
import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
import 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js';
import './customize_themes.mojom-lite.js';
import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
import {CustomizeThemesClientCallbackRouter, CustomizeThemesHandlerFactory, CustomizeThemesHandlerFactoryRemote, CustomizeThemesHandlerInterface, CustomizeThemesHandlerRemote} from './customize_themes.mojom-webui.js';
/** @interface */ /** @interface */
export class CustomizeThemesBrowserProxy { export class CustomizeThemesBrowserProxy {
/** @return {customizeThemes.mojom.CustomizeThemesHandlerInterface} */ /** @return {CustomizeThemesHandlerInterface} */
handler() {} handler() {}
/** @return {customizeThemes.mojom.CustomizeThemesClientCallbackRouter} */ /** @return {CustomizeThemesClientCallbackRouter} */
callbackRouter() {} callbackRouter() {}
/** @param {string} url */ /** @param {string} url */
...@@ -28,16 +26,14 @@ export class CustomizeThemesBrowserProxy { ...@@ -28,16 +26,14 @@ export class CustomizeThemesBrowserProxy {
/** @implements {CustomizeThemesBrowserProxy} */ /** @implements {CustomizeThemesBrowserProxy} */
export class CustomizeThemesBrowserProxyImpl { export class CustomizeThemesBrowserProxyImpl {
constructor() { constructor() {
/** @private {customizeThemes.mojom.CustomizeThemesHandlerRemote} */ /** @private {!CustomizeThemesHandlerRemote} */
this.handler_ = new customizeThemes.mojom.CustomizeThemesHandlerRemote(); this.handler_ = new CustomizeThemesHandlerRemote();
/** @private {customizeThemes.mojom.CustomizeThemesClientCallbackRouter} */ /** @private {!CustomizeThemesClientCallbackRouter} */
this.callbackRouter_ = this.callbackRouter_ = new CustomizeThemesClientCallbackRouter();
new customizeThemes.mojom.CustomizeThemesClientCallbackRouter();
/** @type {customizeThemes.mojom.CustomizeThemesHandlerFactoryRemote} */ /** @type {!CustomizeThemesHandlerFactoryRemote} */
const factory = const factory = CustomizeThemesHandlerFactory.getRemote();
customizeThemes.mojom.CustomizeThemesHandlerFactory.getRemote();
factory.createCustomizeThemesHandler( factory.createCustomizeThemesHandler(
this.callbackRouter_.$.bindNewPipeAndPassRemote(), this.callbackRouter_.$.bindNewPipeAndPassRemote(),
this.handler_.$.bindNewPipeAndPassReceiver()); this.handler_.$.bindNewPipeAndPassReceiver());
......
...@@ -7,11 +7,9 @@ import '../../cr_elements/cr_icon_button/cr_icon_button.m.js'; ...@@ -7,11 +7,9 @@ import '../../cr_elements/cr_icon_button/cr_icon_button.m.js';
import '../../cr_elements/cr_icons_css.m.js'; import '../../cr_elements/cr_icons_css.m.js';
import '../../cr_elements/cr_grid/cr_grid.js'; import '../../cr_elements/cr_grid/cr_grid.js';
import '../../cr_elements/shared_vars_css.m.js'; import '../../cr_elements/shared_vars_css.m.js';
import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
import 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js';
import './customize_themes.mojom-lite.js';
import './theme_icon.js'; import './theme_icon.js';
import {SkColor} from 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js';
import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {assert} from '../../js/assert.m.js'; import {assert} from '../../js/assert.m.js';
...@@ -19,6 +17,7 @@ import {hexColorToSkColor, skColorToRgba} from '../../js/color_utils.js'; ...@@ -19,6 +17,7 @@ import {hexColorToSkColor, skColorToRgba} from '../../js/color_utils.js';
import {I18nBehavior} from '../../js/i18n_behavior.m.js'; import {I18nBehavior} from '../../js/i18n_behavior.m.js';
import {CustomizeThemesBrowserProxyImpl} from './browser_proxy.js'; import {CustomizeThemesBrowserProxyImpl} from './browser_proxy.js';
import {ChromeTheme, CustomizeThemesClientCallbackRouter, CustomizeThemesHandlerRemote, Theme, ThemeType} from './customize_themes.mojom-webui.js';
/** /**
* Element that lets the user configure the autogenerated theme. * Element that lets the user configure the autogenerated theme.
...@@ -39,7 +38,7 @@ export class CustomizeThemesElement extends mixinBehaviors ...@@ -39,7 +38,7 @@ export class CustomizeThemesElement extends mixinBehaviors
return { return {
/** /**
* An object describing the currently selected theme. * An object describing the currently selected theme.
* @type {!customizeThemes.mojom.Theme} * @type {!Theme}
*/ */
selectedTheme: { selectedTheme: {
type: Object, type: Object,
...@@ -58,17 +57,17 @@ export class CustomizeThemesElement extends mixinBehaviors ...@@ -58,17 +57,17 @@ export class CustomizeThemesElement extends mixinBehaviors
value: false, value: false,
}, },
/** @private {!Array<!customizeThemes.mojom.ChromeTheme>} */ /** @private {!Array<!ChromeTheme>} */
chromeThemes_: Array, chromeThemes_: Array,
}; };
} }
constructor() { constructor() {
super(); super();
/** @private {customizeThemes.mojom.CustomizeThemesHandlerRemote} */ /** @private {CustomizeThemesHandlerRemote} */
this.handler_ = CustomizeThemesBrowserProxyImpl.getInstance().handler(); this.handler_ = CustomizeThemesBrowserProxyImpl.getInstance().handler();
/** @private {customizeThemes.mojom.CustomizeThemesClientCallbackRouter} */ /** @private {CustomizeThemesClientCallbackRouter} */
this.callbackRouter_ = this.callbackRouter_ =
CustomizeThemesBrowserProxyImpl.getInstance().callbackRouter(); CustomizeThemesBrowserProxyImpl.getInstance().callbackRouter();
...@@ -142,8 +141,7 @@ export class CustomizeThemesElement extends mixinBehaviors ...@@ -142,8 +141,7 @@ export class CustomizeThemesElement extends mixinBehaviors
/** @private */ /** @private */
onThemeChange_() { onThemeChange_() {
if (this.selectedTheme.type !== if (this.selectedTheme.type !== ThemeType.kAutogenerated) {
customizeThemes.mojom.ThemeType.kAutogenerated) {
return; return;
} }
const rgbaFrameColor = const rgbaFrameColor =
...@@ -188,14 +186,11 @@ export class CustomizeThemesElement extends mixinBehaviors ...@@ -188,14 +186,11 @@ export class CustomizeThemesElement extends mixinBehaviors
return false; return false;
} }
if (id === 'autogenerated') { if (id === 'autogenerated') {
return this.selectedTheme.type === return this.selectedTheme.type === ThemeType.kAutogenerated;
customizeThemes.mojom.ThemeType.kAutogenerated;
} else if (id === 'default') { } else if (id === 'default') {
return this.selectedTheme.type === return this.selectedTheme.type === ThemeType.kDefault;
customizeThemes.mojom.ThemeType.kDefault;
} else { } else {
return this.selectedTheme.type === return this.selectedTheme.type === ThemeType.kChrome &&
customizeThemes.mojom.ThemeType.kChrome &&
id === this.selectedTheme.info.chromeThemeId; id === this.selectedTheme.info.chromeThemeId;
} }
} }
...@@ -205,12 +200,11 @@ export class CustomizeThemesElement extends mixinBehaviors ...@@ -205,12 +200,11 @@ export class CustomizeThemesElement extends mixinBehaviors
* @private * @private
*/ */
isThirdPartyTheme_() { isThirdPartyTheme_() {
return this.selectedTheme.type === return this.selectedTheme.type === ThemeType.kThirdParty;
customizeThemes.mojom.ThemeType.kThirdParty;
} }
/** /**
* @param {skia.mojom.SkColor} skColor * @param {SkColor} skColor
* @return {string} * @return {string}
* @private * @private
*/ */
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
* @fileoverview Helper functions for color manipulations. * @fileoverview Helper functions for color manipulations.
*/ */
import 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-lite.js'; import {SkColor} from 'chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js';
/** /**
* Converts an SkColor object to a string in the form * Converts an SkColor object to a string in the form
* "rgba(<red>, <green>, <blue>, <alpha>)". * "rgba(<red>, <green>, <blue>, <alpha>)".
* @param {skia.mojom.SkColor} skColor The input color. * @param {SkColor} skColor The input color.
* @return {string} The rgba string. * @return {string} The rgba string.
*/ */
export function skColorToRgba(skColor) { export function skColorToRgba(skColor) {
...@@ -25,7 +25,7 @@ export function skColorToRgba(skColor) { ...@@ -25,7 +25,7 @@ export function skColorToRgba(skColor) {
/** /**
* Converts a string of the form "#rrggbb" to an SkColor object. * Converts a string of the form "#rrggbb" to an SkColor object.
* @param {string} hexColor The color string. * @param {string} hexColor The color string.
* @return {!skia.mojom.SkColor} The SkColor object, * @return {!SkColor} The SkColor object,
*/ */
export function hexColorToSkColor(hexColor) { export function hexColorToSkColor(hexColor) {
if (!/^#[0-9a-f]{6}$/.test(hexColor)) { if (!/^#[0-9a-f]{6}$/.test(hexColor)) {
......
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