Commit 1977a058 authored by dpapad's avatar dpapad Committed by Commit Bot

WebUI: Enable type-checking for auto-generated chrome://resources JS Modules.

Repro:
ninja -C out/<out>/ ui/webui/resources/js:closure_compile_modules

Bug: 970885
Change-Id: I2cb9a90b942e8f301f97501f613bbd442f405f5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1705053Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680629}
parent 35f8377f
...@@ -42,6 +42,9 @@ checking_closure_args = strict_error_checking_closure_args + [ ...@@ -42,6 +42,9 @@ checking_closure_args = strict_error_checking_closure_args + [
"polymer_pass", "polymer_pass",
"jscomp_off=duplicate", "jscomp_off=duplicate",
"js_module_root=../../ui/webui/resources/",
"js_module_root=gen/ui/webui/resources/",
] ]
# Additional closure arguments for minifying # Additional closure arguments for minifying
......
...@@ -10,4 +10,8 @@ group("closure_compile") { ...@@ -10,4 +10,8 @@ group("closure_compile") {
"cr_elements:closure_compile", "cr_elements:closure_compile",
"js:closure_compile", "js:closure_compile",
] ]
if (!optimize_webui) {
deps += [ "js:closure_compile_modules" ]
}
} }
...@@ -136,6 +136,8 @@ js_library("find_shortcut_behavior") { ...@@ -136,6 +136,8 @@ js_library("find_shortcut_behavior") {
] ]
} }
# Targets for auto-generating and type-checking JS Modules
if (!optimize_webui) { if (!optimize_webui) {
js_modulizer("modulize") { js_modulizer("modulize") {
input_files = [ input_files = [
...@@ -151,4 +153,93 @@ if (!optimize_webui) { ...@@ -151,4 +153,93 @@ if (!optimize_webui) {
"cr/ui:modulize", "cr/ui:modulize",
] ]
} }
js_type_check("closure_compile_modules") {
deps = [
":assert.m",
":cr.m",
":i18n_behavior.m",
":load_time_data.m",
":parse_html_subset.m",
":promise_resolver.m",
":util.m",
":web_ui_listener_behavior.m",
]
}
js_library("assert.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/assert.m.js",
]
extra_deps = [ ":modulize" ]
}
js_library("cr.m") {
deps = [
":promise_resolver.m",
]
externs_list = [ "$externs_path/chrome_send.js" ]
}
js_library("i18n_behavior.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/i18n_behavior.m.js",
]
deps = [
":load_time_data.m",
":parse_html_subset.m",
]
extra_deps = [ ":modulize" ]
}
js_library("load_time_data.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/load_time_data.m.js",
]
deps = [
":assert.m",
":parse_html_subset.m",
"//third_party/jstemplate:jstemplate",
]
extra_deps = [ ":modulize" ]
}
js_library("parse_html_subset.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/parse_html_subset.m.js",
]
extra_deps = [ ":modulize" ]
}
js_library("promise_resolver.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/promise_resolver.m.js",
]
deps = [
":assert.m",
]
extra_deps = [ ":modulize" ]
}
js_library("util.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/util.m.js",
]
deps = [
":assert.m",
":cr.m",
]
externs_list = [ "$externs_path/chrome_send.js" ]
extra_deps = [ ":modulize" ]
}
js_library("web_ui_listener_behavior.m") {
sources = [
"$root_gen_dir/ui/webui/resources/js/web_ui_listener_behavior.m.js",
]
deps = [
":cr.m",
]
extra_deps = [ ":modulize" ]
}
} }
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
*/ */
import {PromiseResolver} from './promise_resolver.m.js'; import {PromiseResolver} from './promise_resolver.m.js';
/** @typedef {{eventName: string, uid: number}} */
let WebUIListener;
/** /**
* Counter for use with createUid * Counter for use with createUid
* @type {number} * @type {number}
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
*/ */
// #import {parseHtmlSubset} from './parse_html_subset.m.js'; // #import {parseHtmlSubset} from './parse_html_subset.m.js';
// #import {loadTimeData} from './load_time_data.m.js'; // #import {loadTimeData, SanitizeInnerHtmlOpts} from './load_time_data.m.js';
/** @polymerBehavior */ /** @polymerBehavior */
/* #export */ const I18nBehavior = { /* #export */ const I18nBehavior = {
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
* tags: (Array<string>|undefined), * tags: (Array<string>|undefined),
* }} * }}
*/ */
let SanitizeInnerHtmlOpts; /* #export */ let SanitizeInnerHtmlOpts;
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
/* #export */ /** @type {!LoadTimeData} */ var loadTimeData; /* #export */ /** @type {!LoadTimeData} */ var loadTimeData;
......
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