| # Copyright 2018 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("//chrome/common/features.gni") |
| import("//third_party/closure_compiler/compile_js.gni") |
| import("//tools/grit/grit_rule.gni") |
| import("//tools/polymer/html_to_js.gni") |
| import("../optimize_webui.gni") |
| |
| if (optimize_webui) { |
| downloads_pak_file = "downloads_resources.pak" |
| unpak_folder = "downloads_resources.unpak" |
| |
| optimize_webui("build") { |
| host = "downloads" |
| input = rebase_path("$target_gen_dir/$unpak_folder", root_build_dir) |
| js_out_files = [ "downloads.rollup.js" ] |
| js_module_in_files = [ "downloads.js" ] |
| excludes = [ |
| "chrome://resources/js/cr.m.js", |
| "chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js", |
| "downloads.mojom-lite.js", |
| ] |
| |
| deps = [ |
| ":unpak", |
| "../../../../ui/webui/resources:modulize", |
| ] |
| } |
| |
| unpak("unpak") { |
| pak_file = downloads_pak_file |
| out_folder = unpak_folder |
| |
| deps = [ ":flattened_resources" ] |
| } |
| |
| grit("flattened_resources") { |
| source = "downloads_resources.grd" |
| |
| defines = chrome_grit_defines |
| outputs = [ |
| "grit/downloads_resources.h", |
| "grit/downloads_resources_map.cc", |
| "grit/downloads_resources_map.h", |
| downloads_pak_file, |
| ] |
| deps = [ |
| ":web_components", |
| "//chrome/browser/ui/webui/downloads:mojo_bindings_js", |
| ] |
| grit_flags = [ |
| "-E", |
| "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), |
| ] |
| output_dir = "$root_gen_dir/chrome/browser/resources/downloads" |
| } |
| } |
| |
| js_type_check("closure_compile") { |
| is_polymer3 = true |
| deps = [ |
| ":browser_proxy", |
| ":constants", |
| ":item", |
| ":manager", |
| ":search_service", |
| ":toolbar", |
| ] |
| } |
| |
| js_library("browser_proxy") { |
| deps = [ |
| "//chrome/browser/ui/webui/downloads:mojo_bindings_js_library_for_compile", |
| "//ui/webui/resources/js:cr.m", |
| ] |
| externs_list = [ "externs.js" ] |
| } |
| |
| js_library("constants") { |
| } |
| |
| js_library("icon_loader") { |
| deps = [ |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:cr.m", |
| "//ui/webui/resources/js:icon.m", |
| "//ui/webui/resources/js:promise_resolver.m", |
| ] |
| } |
| |
| js_library("item") { |
| deps = [ |
| ":browser_proxy", |
| ":constants", |
| ":icon_loader", |
| "//ui/webui/resources/cr_elements/cr_toast:cr_toast_manager.m", |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| "//ui/webui/resources/js:util.m", |
| "//ui/webui/resources/js/cr/ui:focus_row_behavior.m", |
| "//ui/webui/resources/js/cr/ui:focus_without_ink.m", |
| ] |
| } |
| |
| js_library("manager") { |
| deps = [ |
| ":browser_proxy", |
| ":item", |
| ":search_service", |
| ":toolbar", |
| "//third_party/polymer/v3_0/components-chromium/iron-a11y-announcer", |
| "//third_party/polymer/v3_0/components-chromium/iron-list", |
| "//ui/webui/resources/cr_elements/cr_toast:cr_toast_manager.m", |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:find_shortcut_behavior.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| "//ui/webui/resources/js:promise_resolver.m", |
| "//ui/webui/resources/js:util.m", |
| ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("search_service") { |
| deps = [ |
| ":browser_proxy", |
| "//ui/webui/resources/js:cr.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| ] |
| } |
| |
| js_library("toolbar") { |
| deps = [ |
| ":browser_proxy", |
| ":search_service", |
| "//ui/webui/resources/cr_elements/cr_action_menu:cr_action_menu.m", |
| "//ui/webui/resources/cr_elements/cr_toast:cr_toast_manager.m", |
| "//ui/webui/resources/cr_elements/cr_toolbar:cr_toolbar.m", |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| "//ui/webui/resources/js:util.m", |
| ] |
| } |
| |
| html_to_js("web_components") { |
| js_files = [ |
| "icons.js", |
| "item.js", |
| "manager.js", |
| "toolbar.js", |
| ] |
| } |