|  | # Copyright 2018 The Chromium Authors | 
|  | # 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("//third_party/closure_compiler/js_unit_tests.gni") | 
|  | import("//ui/file_manager/base/gn/js_test_type_check.gni") | 
|  | import("//ui/webui/resources/tools/optimize_webui.gni") | 
|  |  | 
|  | js_type_check("closure_compile_jsmodules") { | 
|  | closure_flags = default_closure_args + [ | 
|  | "language_in=ECMASCRIPT_2020", | 
|  | "jscomp_error=strictCheckTypes", | 
|  | "js_module_root=gen/ui/file_manager/", | 
|  | "js_module_root=" + | 
|  | rebase_path("//ui/file_manager/", root_build_dir), | 
|  | "browser_resolver_prefix_replacements=\"chrome://file-manager/=./file_manager/\"", | 
|  | ] | 
|  | deps = [ | 
|  | ":background", | 
|  | ":cache", | 
|  | ":image_loader_client", | 
|  | ":image_loader_util", | 
|  | ":image_orientation", | 
|  | ":image_request_task", | 
|  | ":load_image_request", | 
|  | ":piex_loader", | 
|  | ":scheduler", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("background") { | 
|  | } | 
|  |  | 
|  | js_library("cache") { | 
|  | } | 
|  |  | 
|  | js_unittest("cache_unittest") { | 
|  | deps = [ | 
|  | ":load_image_request", | 
|  | "//chrome/test/data/webui/chromeos:chai_assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("image_loader") { | 
|  | deps = [ | 
|  | ":cache", | 
|  | ":image_orientation", | 
|  | ":image_request_task", | 
|  | ":load_image_request", | 
|  | ":scheduler", | 
|  | "//ash/webui/common/resources:assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_unittest("image_loader_unittest") { | 
|  | deps = [ | 
|  | ":image_loader_util", | 
|  | ":image_orientation", | 
|  | ":load_image_request", | 
|  | "//chrome/test/data/webui/chromeos:chai_assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("image_loader_util") { | 
|  | deps = [ | 
|  | ":load_image_request", | 
|  | "//ash/webui/common/resources:assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("load_image_request") { | 
|  | deps = [ | 
|  | ":image_orientation", | 
|  | "//ash/webui/common/resources:assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("image_loader_client") { | 
|  | deps = [ | 
|  | ":load_image_request", | 
|  | "//ui/file_manager/file_manager/common/js:lru_cache", | 
|  | ] | 
|  | externs_list = [ | 
|  | "$externs_path/chrome.js", | 
|  | "$externs_path/chrome_extensions.js", | 
|  | "$externs_path/metrics_private.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_unittest("image_loader_client_unittest") { | 
|  | deps = [ | 
|  | ":image_loader_client", | 
|  | ":load_image_request", | 
|  | "//chrome/test/data/webui/chromeos:chai_assert", | 
|  | "//ui/file_manager/file_manager/common/js:test_error_reporting", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("image_orientation") { | 
|  | } | 
|  |  | 
|  | js_unittest("image_orientation_unittest") { | 
|  | deps = [ | 
|  | ":image_orientation", | 
|  | "//chrome/test/data/webui/chromeos:chai_assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("piex_loader") { | 
|  | externs_list = [ "//ui/file_manager/file_manager/externs/platform.js" ] | 
|  | } | 
|  |  | 
|  | js_library("image_request_task") { | 
|  | deps = [ | 
|  | ":cache", | 
|  | ":image_loader_util", | 
|  | ":image_orientation", | 
|  | ":load_image_request", | 
|  | ":piex_loader", | 
|  | "//ash/webui/common/resources:assert", | 
|  | "//ui/file_manager/file_manager/common/js:file_type", | 
|  | ] | 
|  | externs_list = [ | 
|  | "$externs_path/file_manager_private.js", | 
|  | "$externs_path/file_system_provider.js", | 
|  | "$externs_path/chrome_extensions.js", | 
|  | "$externs_path/chrome.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_library("scheduler") { | 
|  | deps = [ ":image_request_task" ] | 
|  | } | 
|  |  | 
|  | js_unittest("scheduler_unittest") { | 
|  | deps = [ | 
|  | ":image_request_task", | 
|  | ":scheduler", | 
|  | "//chrome/test/data/webui/chromeos:chai_assert", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_test_type_check("js_test_type_check") { | 
|  | deps = [ | 
|  | ":cache_unittest", | 
|  | ":image_loader_client_unittest", | 
|  | ":image_loader_unittest", | 
|  | ":image_orientation_unittest", | 
|  | ":scheduler_unittest", | 
|  | ] | 
|  |  | 
|  | closure_flags = strict_error_checking_closure_args + [ | 
|  | "language_in=ECMASCRIPT_2020", | 
|  | "js_module_root=./gen/ui", | 
|  | "js_module_root=" + | 
|  | rebase_path("//ui/file_manager/", root_build_dir), | 
|  | "js_module_root=./gen/ui/file_manager/", | 
|  | "browser_resolver_prefix_replacements=\"chrome://webui-test/=./\"", | 
|  | "browser_resolver_prefix_replacements=\"chrome://file-manager/=./file_manager/\"", | 
|  | ] | 
|  | } | 
|  |  | 
|  | group("closure_compile") { | 
|  | testonly = true | 
|  | deps = [ | 
|  | ":closure_compile_jsmodules", | 
|  | ":js_test_type_check", | 
|  | ] | 
|  | } | 
|  |  | 
|  | group("js_modules") { | 
|  | deps = [ | 
|  | ":cache", | 
|  | ":image_loader", | 
|  | ":image_loader_client", | 
|  | ":image_loader_util", | 
|  | ":image_orientation", | 
|  | ":image_request_task", | 
|  | ":load_image_request", | 
|  | ":piex_loader", | 
|  | ":scheduler", | 
|  | ] | 
|  | } | 
|  |  | 
|  | preprocess_folder = | 
|  | rebase_path("$target_gen_dir/../preprocessed/image_loader", root_build_dir) | 
|  |  | 
|  | files_app_path = | 
|  | rebase_path("$root_gen_dir/ui/file_manager/preprocessed/file_manager", | 
|  | root_build_dir) | 
|  | image_loader_path = | 
|  | rebase_path("$root_gen_dir/ui/file_manager/preprocessed/image_loader", | 
|  | root_build_dir) | 
|  |  | 
|  | optimize_webui("build") { | 
|  | host = "image_loader" | 
|  |  | 
|  | input = preprocess_folder | 
|  | js_module_in_files = [ "background.js" ] | 
|  |  | 
|  | external_paths = [ | 
|  | "chrome://file-manager|$files_app_path", | 
|  | "chrome-extension://pmfjbimdmchhbnneeidfognadeopoehp|$image_loader_path", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":background", | 
|  | "//ui/file_manager:preprocess_generated", | 
|  | "//ui/file_manager:preprocess_static", | 
|  | "//ui/file_manager:preprocess_static_image_loader", | 
|  | ] | 
|  | } |