Commit cceefec6 authored by Giovanni Ortuño Urquidi's avatar Giovanni Ortuño Urquidi Committed by Commit Bot

mojo: Add a externs_js_library target for js_libraries that type check

Some interfaces depend on many other interfaces. Before this patch users
would have to manually add externs for every interface used.

This CL introduces a new target that js_libraries can use to include
all the necessary externs to use an interface.

Bug: 849993
Change-Id: I97acb7bbbd604e7ebeb1cb5fe814e4afecefe2d6
Reviewed-on: https://chromium-review.googlesource.com/c/1369485Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarcalamity <calamity@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615441}
parent 304d00ba
......@@ -25,8 +25,8 @@ if (!is_android) {
js_library("browser_proxy") {
deps = [
":externs",
":fake_page_handler",
"//chrome/browser/ui/webui/app_management:mojo_bindings_js_externs",
"//ui/webui/resources/js:cr",
]
}
......@@ -34,26 +34,9 @@ if (!is_android) {
js_library("constants") {
}
js_library("externs") {
sources = []
extra_deps = [ "//chrome/browser/ui/webui/app_management:mojo_bindings_js" ]
# TODO(calamity): This list should be built by the mojo_bindings_js target
# above.
externs_list = [
"$externs_path/mojo.js",
"$root_gen_dir/chrome/browser/ui/webui/app_management/app_management.mojom-lite.externs.js",
"$root_gen_dir/chrome/services/app_service/public/mojom/types.mojom-lite.externs.js",
"$root_gen_dir/mojo/public/mojom/base/big_buffer.mojom-lite.externs.js",
"$root_gen_dir/skia/public/interfaces/bitmap.mojom-lite.externs.js",
"$root_gen_dir/skia/public/interfaces/image_info.mojom-lite.externs.js",
"$root_gen_dir/ui/gfx/image/mojo/image.mojom-lite.externs.js",
]
}
js_library("fake_page_handler") {
deps = [
":externs",
"//chrome/browser/ui/webui/app_management:mojo_bindings_js_externs",
"//ui/webui/resources/js:cr",
]
}
......
......@@ -25,7 +25,6 @@ js_type_check("closure_compile") {
":browser_proxy",
":constants",
":downloads",
":externs",
":item",
":manager",
":search_service",
......@@ -35,9 +34,10 @@ js_type_check("closure_compile") {
js_library("browser_proxy") {
deps = [
":externs",
"//chrome/browser/ui/webui/md_downloads:mojo_bindings_js_externs",
"//ui/webui/resources/js:cr",
]
externs_list = [ "externs.js" ]
}
js_library("constants") {
......@@ -53,14 +53,6 @@ js_library("downloads") {
]
}
js_library("externs") {
extra_deps = [ "//chrome/browser/ui/webui/md_downloads:mojo_bindings_js" ]
externs_list = [
"$root_gen_dir/chrome/browser/ui/webui/md_downloads/md_downloads.mojom-lite.externs.js",
"$externs_path/mojo.js",
]
}
js_library("icon_loader") {
deps = [
"//ui/webui/resources/js:assert",
......@@ -73,7 +65,6 @@ js_library("item") {
deps = [
":browser_proxy",
":constants",
":externs",
":icon_loader",
"//third_party/polymer/v1_0/components-chromium/paper-behaviors:paper-inky-focus-behavior-extracted",
"//ui/webui/resources/js:cr",
......@@ -85,7 +76,6 @@ js_library("item") {
js_library("manager") {
deps = [
":browser_proxy",
":externs",
":item",
":search_service",
":toolbar",
......@@ -102,7 +92,6 @@ js_library("manager") {
js_library("search_service") {
deps = [
":browser_proxy",
":externs",
"//ui/webui/resources/js:cr",
"//ui/webui/resources/js:load_time_data",
]
......
......@@ -1286,6 +1286,28 @@ template("mojom") {
}
}
}
js_externs_target_suffix = "_js_externs"
js_externs_target_name = "${target_name}${js_externs_target_suffix}"
if (defined(invoker.sources)) {
js_library(js_externs_target_name) {
sources = []
extra_public_deps = [ ":$generator_js_target_name" ]
externs_list = [ "${externs_path}/mojo.js" ]
externs_list += process_file_template(
invoker.sources,
[ "{{source_gen_dir}}/{{source_name_part}}.mojom-lite.externs.js" ])
deps = []
foreach(d, all_deps) {
full_name = get_label_info(d, "label_no_toolchain")
deps += [ "${full_name}${js_externs_target_suffix}" ]
}
}
} else {
group(js_externs_target_name) {
}
}
}
}
......
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