BUILD.gn 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. # Copyright 2018 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//chrome/browser/resources/tools/optimize_webui.gni")
  5. import("//third_party/closure_compiler/compile_js.gni")
  6. import("//third_party/closure_compiler/js_unit_tests.gni")
  7. import("//ui/file_manager/base/gn/js_test_type_check.gni")
  8. js_type_check("closure_compile_jsmodules") {
  9. closure_flags = default_closure_args + [
  10. "language_in=ECMASCRIPT_2020",
  11. "jscomp_error=strictCheckTypes",
  12. "js_module_root=gen/ui/file_manager/",
  13. "js_module_root=../../ui/file_manager/",
  14. "browser_resolver_prefix_replacements=\"chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/=./file_manager/\"",
  15. ]
  16. deps = [
  17. ":background",
  18. ":cache",
  19. ":image_loader_client",
  20. ":image_loader_util",
  21. ":image_request_task",
  22. ":load_image_request",
  23. ":piex_loader",
  24. ":scheduler",
  25. ]
  26. }
  27. js_library("background") {
  28. }
  29. js_library("cache") {
  30. }
  31. js_unittest("cache_unittest") {
  32. deps = [
  33. ":load_image_request",
  34. "//chrome/test/data/webui:chai_assert",
  35. ]
  36. }
  37. # TODO(b/199451464): Remove this and dependencies.
  38. copy("copy_from_filesapp") {
  39. sources = [
  40. "../file_manager/common/js/lru_cache.js",
  41. "../file_manager/foreground/js/metadata/image_orientation.js",
  42. ]
  43. outputs = [ "$target_gen_dir/{{source_file_part}}" ]
  44. }
  45. js_library("image_orientation") {
  46. sources =
  47. [ "$root_gen_dir/ui/file_manager/image_loader/image_orientation.js" ]
  48. extra_deps = [ ":copy_from_filesapp" ]
  49. }
  50. js_library("lru_cache") {
  51. sources = [ "$root_gen_dir/ui/file_manager/image_loader/lru_cache.js" ]
  52. extra_deps = [ ":copy_from_filesapp" ]
  53. }
  54. js_library("image_loader") {
  55. deps = [
  56. ":cache",
  57. ":image_orientation",
  58. ":image_request_task",
  59. ":load_image_request",
  60. ":scheduler",
  61. "//ui/webui/resources/js:assert.m",
  62. ]
  63. }
  64. js_unittest("image_loader_unittest") {
  65. deps = [
  66. ":image_loader_util",
  67. ":image_orientation",
  68. ":load_image_request",
  69. "//chrome/test/data/webui:chai_assert",
  70. ]
  71. extra_deps = [ ":copy_from_filesapp" ]
  72. }
  73. js_library("image_loader_util") {
  74. deps = [
  75. ":load_image_request",
  76. "//ui/webui/resources/js:assert.m",
  77. ]
  78. }
  79. js_library("load_image_request") {
  80. deps = [
  81. ":image_orientation",
  82. "//ui/webui/resources/js:assert.m",
  83. ]
  84. }
  85. js_library("image_loader_client") {
  86. deps = [
  87. ":load_image_request",
  88. ":lru_cache",
  89. ]
  90. externs_list = [
  91. "$externs_path/chrome.js",
  92. "$externs_path/chrome_extensions.js",
  93. "$externs_path/metrics_private.js",
  94. ]
  95. }
  96. js_unittest("image_loader_client_unittest") {
  97. deps = [
  98. ":image_loader_client",
  99. ":load_image_request",
  100. "//chrome/test/data/webui:chai_assert",
  101. "//ui/file_manager/file_manager/common/js:test_error_reporting",
  102. ]
  103. }
  104. js_library("piex_loader") {
  105. externs_list = [ "//ui/file_manager/file_manager/externs/platform.js" ]
  106. }
  107. js_library("image_request_task") {
  108. deps = [
  109. ":cache",
  110. ":image_loader_util",
  111. ":image_orientation",
  112. ":load_image_request",
  113. ":piex_loader",
  114. "//ui/file_manager/file_manager/common/js:file_type",
  115. "//ui/webui/resources/js:assert.m",
  116. ]
  117. externs_list = [
  118. "$externs_path/file_manager_private.js",
  119. "$externs_path/file_system_provider.js",
  120. "$externs_path/chrome_extensions.js",
  121. "$externs_path/chrome.js",
  122. ]
  123. }
  124. js_library("scheduler") {
  125. deps = [ ":image_request_task" ]
  126. }
  127. js_unittest("scheduler_unittest") {
  128. deps = [
  129. ":image_request_task",
  130. ":scheduler",
  131. "//chrome/test/data/webui:chai_assert",
  132. ]
  133. }
  134. js_test_type_check("js_test_type_check") {
  135. deps = [
  136. ":cache_unittest",
  137. ":image_loader_client_unittest",
  138. ":image_loader_unittest",
  139. ":scheduler_unittest",
  140. ]
  141. closure_flags = strict_error_checking_closure_args + [
  142. "language_in=ECMASCRIPT_2020",
  143. "js_module_root=./gen/ui",
  144. "js_module_root=../../ui/file_manager/",
  145. "js_module_root=./gen/ui/file_manager/",
  146. "browser_resolver_prefix_replacements=\"chrome://webui-test/=./\"",
  147. "browser_resolver_prefix_replacements=\"chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/=./file_manager/\"",
  148. ]
  149. }
  150. group("closure_compile") {
  151. testonly = true
  152. deps = [
  153. ":closure_compile_jsmodules",
  154. ":js_test_type_check",
  155. ]
  156. }
  157. group("js_modules") {
  158. deps = [
  159. ":cache",
  160. ":image_loader",
  161. ":image_loader_client",
  162. ":image_loader_util",
  163. ":image_orientation",
  164. ":image_request_task",
  165. ":load_image_request",
  166. ":lru_cache",
  167. ":piex_loader",
  168. ":scheduler",
  169. ]
  170. }
  171. preprocess_folder =
  172. rebase_path("$target_gen_dir/../preprocessed/image_loader", root_build_dir)
  173. files_app_path =
  174. rebase_path("$root_gen_dir/ui/file_manager/preprocessed/file_manager",
  175. root_build_dir)
  176. image_loader_path =
  177. rebase_path("$root_gen_dir/ui/file_manager/preprocessed/image_loader",
  178. root_build_dir)
  179. optimize_webui("build") {
  180. host = "image_loader"
  181. input = preprocess_folder
  182. js_module_in_files = [ "background.js" ]
  183. js_out_files = [ "background.rollup.js" ]
  184. external_paths = [
  185. "chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj|$files_app_path",
  186. "chrome-extension://pmfjbimdmchhbnneeidfognadeopoehp|$image_loader_path",
  187. ]
  188. deps = [
  189. ":background",
  190. "//ui/file_manager:preprocess_generated",
  191. "//ui/file_manager:preprocess_generated_image_loader",
  192. "//ui/file_manager:preprocess_static",
  193. "//ui/file_manager:preprocess_static_image_loader",
  194. "//ui/webui/resources:preprocess",
  195. ]
  196. }