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
5import("//third_party/closure_compiler/compile_js.gni")
6import("//third_party/closure_compiler/js_unit_tests.gni")
7import("//ui/file_manager/base/gn/js_test_gen_html.gni")
8import("//ui/webui/resources/js/cr.gni")
9import("//ui/webui/resources/tools/js_modulizer.gni")
10
11# TODO(tapted): This folder should be restricted to file_manager, but related
12# apps currently depend on background_base, which depends on
13# volume_manager_factory, and that pulls in nearly everything else. For now,
14# document externally-exposed targets visible with this helper, and hide
15# transitive dependencies (but note those transitive dependencies should move
16# elsewhere too).
17related_apps = [
18  "//ui/file_manager/audio_player/*",
19  "//ui/file_manager/file_manager/*",
20  "//ui/file_manager/gallery/*",
21  "//ui/file_manager/video_player/*",
22]
23
24group("closure_compile") {
25  testonly = true
26  deps = [
27    ":closure_compile_jsmodules",
28    ":closure_compile_module",
29    ":js_test_gen_html_type_check_auto",
30    ":test_support_modules_type_check",
31    ":test_support_type_check",
32  ]
33}
34
35# Default to private.
36visibility = [ ":*" ]
37
38js_type_check("closure_compile_module") {
39  deps = [
40    ":app_window_wrapper",
41    ":app_windows",
42    ":background",
43    ":background_base",
44    ":closure_compile_externs",
45    ":crostini",
46    ":device_handler",
47    ":drive_sync_handler",
48    ":duplicate_finder",
49    ":entry_location_impl",
50    ":file_operation_handler",
51    ":file_operation_manager",
52    ":file_operation_util",
53    ":import_history",
54    ":launcher",
55    ":launcher_search",
56    ":media_import_handler",
57    ":media_scanner",
58    ":metadata_proxy",
59    ":mount_metrics",
60    ":progress_center",
61    ":runtime_loaded_test_util",
62    ":task_queue",
63    ":test_util_base",
64    ":volume_info_impl",
65    ":volume_info_list_impl",
66    ":volume_manager_factory",
67    ":volume_manager_impl",
68    ":volume_manager_util",
69  ]
70}
71
72js_type_check("closure_compile_jsmodules") {
73  uses_js_modules = true
74  deps = [
75    ":app_window_wrapper.m",
76    ":app_windows.m",
77    ":background_base.m",
78    ":entry_location_impl.m",
79    ":test_util_base.m",
80    ":volume_info_impl.m",
81    ":volume_info_list_impl.m",
82    ":volume_manager_factory.m",
83    ":volume_manager_impl.m",
84    ":volume_manager_util.m",
85  ]
86}
87
88js_type_check("test_support_modules_type_check") {
89  testonly = true
90  uses_js_modules = true
91  deps = [ ":mock_volume_manager.m" ]
92}
93
94js_type_check("test_support_type_check") {
95  testonly = true
96  deps = [
97    ":mock_crostini",
98    ":mock_drive_sync_handler",
99    ":mock_file_operation_manager",
100    ":mock_media_scanner",
101    ":mock_progress_center",
102    ":mock_volume_manager",
103    ":test_import_history",
104  ]
105}
106
107js_library("closure_compile_externs") {
108  sources = []
109  externs_list = [
110    "$externs_path/metrics_private.js",
111    "//ui/file_manager/externs/background/crostini.js",
112    "//ui/file_manager/externs/background/drive_sync_handler.js",
113    "//ui/file_manager/externs/background/file_browser_background.js",
114    "//ui/file_manager/externs/background/file_browser_background_full.js",
115    "//ui/file_manager/externs/background/file_operation_manager.js",
116    "//ui/file_manager/externs/background/import_history.js",
117    "//ui/file_manager/externs/background/import_runner.js",
118    "//ui/file_manager/externs/background/media_import_handler.js",
119    "//ui/file_manager/externs/background/media_scanner.js",
120    "//ui/file_manager/externs/background/progress_center.js",
121    "//ui/file_manager/externs/background_window.js",
122    "//ui/file_manager/externs/css_rule.js",
123    "//ui/file_manager/externs/file_operation_progress_event.js",
124    "//ui/file_manager/externs/launcher_search_provider.js",
125    "//ui/file_manager/externs/platform.js",
126    "//ui/file_manager/externs/progress_center_panel.js",
127    "//ui/file_manager/externs/background/task_queue.js",
128    "//ui/file_manager/externs/background/duplicate_finder.js",
129  ]
130}
131
132js_library("app_window_wrapper") {
133  visibility += related_apps
134  deps = [
135    ":app_windows",
136    "//ui/file_manager/base/js:app_util",
137    "//ui/file_manager/file_manager/common/js:async_util",
138  ]
139}
140
141js_library("app_window_wrapper.m") {
142  visibility += related_apps
143  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/app_window_wrapper.m.js" ]
144  deps = [
145    ":app_windows.m",
146    "//ui/file_manager/base/js:app_util.m",
147    "//ui/file_manager/file_manager/common/js:async_util.m",
148    "//ui/webui/resources/js:assert.m",
149  ]
150
151  extra_deps = [ ":modulize" ]
152}
153
154js_library("app_windows") {
155}
156
157js_library("app_windows.m") {
158  sources = [
159    "$root_gen_dir/ui/file_manager/file_manager/background/js/app_windows.m.js",
160  ]
161
162  extra_deps = [ ":modulize" ]
163}
164
165js_library("background") {
166  deps = [
167    ":app_windows",
168    ":background_base",
169    ":crostini",
170    ":device_handler",
171    ":drive_sync_handler",
172    ":duplicate_finder",
173    ":file_operation_handler",
174    ":file_operation_manager",
175    ":import_history",
176    ":launcher",
177    ":launcher_search",
178    ":media_import_handler",
179    ":mount_metrics",
180    ":progress_center",
181    ":trash",
182    "//ui/file_manager/base/js:volume_manager_types",
183    "//ui/file_manager/file_manager/common/js:files_app_entry_types",
184    "//ui/file_manager/file_manager/common/js:metrics",
185    "//ui/file_manager/file_manager/common/js:util",
186  ]
187}
188
189js_library("background_base") {
190  visibility += related_apps
191  deps = [
192    ":app_windows",
193    ":volume_manager_factory",
194    "//ui/file_manager/file_manager/common/js:util",
195    "//ui/webui/resources/js:assert",
196    "//ui/webui/resources/js:load_time_data",
197  ]
198}
199
200js_library("background_base.m") {
201  visibility += related_apps
202  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/background_base.m.js" ]
203  deps = [
204    ":volume_manager_factory.m",
205    "//ui/file_manager/file_manager/common/js:util.m",
206    "//ui/webui/resources/js:assert.m",
207    "//ui/webui/resources/js:load_time_data.m",
208  ]
209
210  extra_deps = [ ":modulize" ]
211}
212
213js_library("crostini") {
214  deps = [
215    "//ui/file_manager/base/js:volume_manager_types",
216    "//ui/file_manager/externs:volume_manager",
217    "//ui/file_manager/file_manager/common/js:metrics",
218  ]
219  externs_list = [ "//ui/file_manager/externs/background/crostini.js" ]
220}
221
222js_library("mock_crostini") {
223  testonly = true
224  deps = [ ":crostini" ]
225  externs_list = [ "//ui/file_manager/externs/background/crostini.js" ]
226  visibility = []
227  visibility = [ "//ui/file_manager/file_manager/*" ]
228}
229
230js_unittest("crostini_unittest") {
231  deps = [
232    ":mock_crostini",
233    "//ui/file_manager/file_manager/common/js:mock_entry",
234    "//ui/webui/resources/js:webui_resource_test",
235  ]
236}
237
238js_library("device_handler") {
239  deps = [
240    ":progress_center",
241    ":volume_manager_factory",
242    "//ui/file_manager/file_manager/common/js:async_util",
243    "//ui/file_manager/file_manager/common/js:importer_common",
244    "//ui/file_manager/file_manager/common/js:progress_center_common",
245    "//ui/webui/resources/js:cr",
246    "//ui/webui/resources/js/cr:event_target",
247  ]
248}
249
250js_unittest("device_handler_unittest") {
251  deps = [
252    ":device_handler",
253    ":mock_progress_center",
254    ":mock_volume_manager",
255    "//ui/file_manager/base/js:mock_chrome",
256    "//ui/file_manager/base/js:test_error_reporting",
257    "//ui/file_manager/file_manager/common/js:test_importer_common",
258  ]
259}
260
261js_library("mock_drive_sync_handler") {
262  testonly = true
263  deps = [ "//ui/webui/resources/js/cr:event_target" ]
264  externs_list =
265      [ "//ui/file_manager/externs/background/drive_sync_handler.js" ]
266  visibility = []
267  visibility = [ "//ui/file_manager/file_manager/*" ]
268}
269
270js_library("drive_sync_handler") {
271  deps = [
272    ":progress_center",
273    "//ui/file_manager/file_manager/common/js:async_util",
274    "//ui/webui/resources/js/cr:event_target",
275  ]
276  externs_list =
277      [ "//ui/file_manager/externs/background/drive_sync_handler.js" ]
278}
279
280js_unittest("drive_sync_handler_unittest") {
281  deps = [
282    ":drive_sync_handler",
283    ":file_operation_util",
284    ":mock_progress_center",
285    "//ui/file_manager/base/js:mock_chrome",
286    "//ui/file_manager/base/js:test_error_reporting",
287  ]
288}
289
290js_library("duplicate_finder") {
291  deps = [
292    ":import_history",
293    ":volume_manager_factory",
294    "//ui/file_manager/file_manager/common/js:importer_common",
295    "//ui/file_manager/file_manager/common/js:lru_cache",
296    "//ui/file_manager/file_manager/common/js:metrics",
297  ]
298  externs_list = [ "//ui/file_manager/externs/background/duplicate_finder.js" ]
299}
300
301js_unittest("duplicate_finder_unittest") {
302  deps = [
303    ":duplicate_finder",
304    ":mock_volume_manager",
305    ":test_import_history",
306    "//ui/file_manager/base/js:mock_chrome",
307    "//ui/file_manager/file_manager/common/js:mock_entry",
308    "//ui/file_manager/file_manager/common/js:test_importer_common",
309  ]
310}
311
312js_library("entry_location_impl") {
313  deps = [ "//ui/file_manager/base/js:volume_manager_types" ]
314  externs_list = [ "//ui/file_manager/externs/entry_location.js" ]
315}
316
317js_library("entry_location_impl.m") {
318  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/entry_location_impl.m.js" ]
319  deps = [
320    "//ui/file_manager/base/js:volume_manager_types.m",
321    "//ui/file_manager/externs:entry_location.m",
322    "//ui/file_manager/externs:volume_info.m",
323    "//ui/file_manager/file_manager/common/js:util.m",
324  ]
325
326  extra_deps = [ ":modulize" ]
327}
328
329js_library("file_operation_handler") {
330  deps = [
331    ":file_operation_manager",
332    ":progress_center",
333  ]
334}
335
336js_unittest("file_operation_handler_unittest") {
337  deps = [
338    ":file_operation_handler",
339    ":mock_file_operation_manager",
340    ":mock_progress_center",
341    "//ui/file_manager/base/js:test_error_reporting",
342  ]
343}
344
345js_library("mock_file_operation_manager") {
346  testonly = true
347  deps = [
348    ":file_operation_manager",
349    "//ui/webui/resources/js/cr:event_target",
350  ]
351  externs_list =
352      [ "//ui/file_manager/externs/background/file_operation_manager.js" ]
353}
354
355js_library("file_operation_manager") {
356  deps = [
357    ":file_operation_util",
358    ":trash",
359    ":volume_manager_factory",
360    "//ui/webui/resources/js:cr",
361    "//ui/webui/resources/js/cr:event_target",
362  ]
363  externs_list =
364      [ "//ui/file_manager/externs/background/file_operation_manager.js" ]
365}
366
367js_unittest("file_operation_manager_unittest") {
368  deps = [
369    ":file_operation_manager",
370    ":metadata_proxy",
371    "//ui/file_manager/base/js:mock_chrome",
372    "//ui/file_manager/base/js:test_error_reporting",
373    "//ui/file_manager/file_manager/common/js:mock_entry",
374  ]
375}
376
377js_library("file_operation_util") {
378  deps = [
379    ":metadata_proxy",
380    "//ui/file_manager/file_manager/common/js:async_util",
381    "//ui/file_manager/file_manager/common/js:util",
382  ]
383  externs_list =
384      [ "//ui/file_manager/externs/file_operation_progress_event.js" ]
385}
386
387js_library("metadata_proxy") {
388  deps = [ "//ui/file_manager/file_manager/common/js:lru_cache" ]
389}
390
391js_unittest("metadata_proxy_unittest") {
392  deps = [
393    ":metadata_proxy",
394    "//ui/file_manager/base/js:test_error_reporting",
395    "//ui/file_manager/file_manager/common/js:mock_entry",
396  ]
397}
398
399js_library("import_history") {
400  deps = [
401    ":metadata_proxy",
402    "//ui/file_manager/file_manager/common/js:importer_common",
403    "//ui/file_manager/file_manager/common/js:util",
404  ]
405  externs_list = [ "//ui/file_manager/externs/background/import_history.js" ]
406}
407
408js_unittest("import_history_unittest") {
409  deps = [
410    ":import_history",
411    "//ui/file_manager/file_manager/common/js:mock_entry",
412    "//ui/file_manager/file_manager/common/js:test_importer_common",
413  ]
414}
415
416js_library("launcher") {
417  deps = [
418    ":app_window_wrapper",
419    ":app_windows",
420  ]
421}
422
423js_library("launcher_search") {
424  deps = [
425    ":launcher",
426    ":volume_manager_factory",
427    "//ui/file_manager/file_manager/common/js:file_type",
428    "//ui/file_manager/file_manager/common/js:util",
429  ]
430}
431
432js_library("media_import_handler") {
433  deps = [
434    ":drive_sync_handler",
435    ":import_history",
436    ":media_scanner",
437    ":progress_center",
438    ":task_queue",
439    "//ui/file_manager/file_manager/common/js:importer_common",
440    "//ui/file_manager/file_manager/common/js:metrics",
441  ]
442  externs_list = [
443    "//ui/file_manager/externs/background/import_runner.js",
444    "//ui/file_manager/externs/background/duplicate_finder.js",
445    "//ui/file_manager/externs/background/task_queue.js",
446    "//ui/file_manager/externs/background/media_import_handler.js",
447  ]
448}
449
450js_unittest("media_import_handler_unittest") {
451  deps = [
452    ":file_operation_util",
453    ":media_import_handler",
454    ":mock_drive_sync_handler",
455    ":mock_media_scanner",
456    ":mock_progress_center",
457    ":mock_volume_manager",
458    ":test_import_history",
459    "//ui/file_manager/base/js:mock_chrome",
460    "//ui/file_manager/base/js:test_error_reporting",
461    "//ui/file_manager/file_manager/common/js:mock_entry",
462    "//ui/file_manager/file_manager/common/js:test_importer_common",
463  ]
464}
465
466js_library("mock_media_scanner") {
467  testonly = true
468  deps = [
469    ":media_scanner",
470    ":test_import_history",
471  ]
472  externs_list = [ "//ui/file_manager/externs/background/media_scanner.js" ]
473  visibility = []
474  visibility = [ "//ui/file_manager/file_manager/*" ]
475}
476
477js_library("media_scanner") {
478  deps = [
479    ":file_operation_util",
480    "//ui/file_manager/file_manager/common/js:importer_common",
481  ]
482  externs_list = [ "//ui/file_manager/externs/background/media_scanner.js" ]
483}
484
485js_unittest("media_scanner_unittest") {
486  deps = [
487    ":media_scanner",
488    ":mock_media_scanner",
489    "//ui/file_manager/file_manager/common/js:test_importer_common",
490  ]
491}
492
493js_library("mock_volume_manager") {
494  visibility += related_apps
495  deps = [
496    ":volume_info_impl",
497    ":volume_info_list_impl",
498    ":volume_manager_factory",
499    ":volume_manager_impl",
500    "//ui/file_manager/file_manager/common/js:mock_entry",
501  ]
502}
503
504js_library("mock_volume_manager.m") {
505  visibility += related_apps
506  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/mock_volume_manager.m.js" ]
507  deps = [
508    ":entry_location_impl.m",
509    ":volume_info_impl.m",
510    ":volume_info_list_impl.m",
511    ":volume_manager_factory.m",
512    ":volume_manager_impl.m",
513    "//ui/file_manager/base/js:volume_manager_types.m",
514    "//ui/file_manager/externs:entry_location.m",
515    "//ui/file_manager/externs:files_app_entry_interfaces.m",
516    "//ui/file_manager/externs:volume_info.m",
517    "//ui/file_manager/externs:volume_info_list.m",
518    "//ui/file_manager/externs:volume_manager.m",
519    "//ui/file_manager/file_manager/common/js:mock_entry.m",
520    "//ui/file_manager/file_manager/common/js:util.m",
521    "//ui/webui/resources/js:assert.m",
522  ]
523
524  extra_deps = [ ":modulize" ]
525}
526
527js_library("mock_progress_center") {
528  testonly = true
529  deps = [
530    ":progress_center",
531    "//ui/webui/resources/js/cr:event_target",
532  ]
533  visibility +=
534      [ "//ui/file_manager/file_manager/foreground/js:file_tasks_unittest" ]
535}
536
537js_library("progress_center") {
538  deps = [
539    "//ui/file_manager/file_manager/common/js:async_util",
540    "//ui/file_manager/file_manager/common/js:progress_center_common",
541    "//ui/file_manager/file_manager/common/js:util",
542    "//ui/webui/resources/js/cr:event_target",
543  ]
544  externs_list = [
545    "//ui/file_manager/externs/background/progress_center.js",
546    "//ui/file_manager/externs/progress_center_panel.js",
547  ]
548}
549
550js_library("runtime_loaded_test_util") {
551  # TODO(tapted): Move this target to //ui/file_manager/base. It is used in the
552  # background page of all |related_apps|, but loaded at runtime by
553  # :test_util_base via extension messaging, so doesn't need to be depended on
554  # except by the closure compilation target. The exception is the "unpacked"
555  # test framework, which copies some testing functions into its test context.
556  visibility += [
557    "//ui/file_manager/file_manager/test/js:test_util",
558    "//ui/file_manager/integration_tests:remote_call",
559  ]
560
561  deps = [
562    ":app_windows",
563    ":file_operation_util",
564    ":test_util_base",
565    ":volume_manager_factory",
566    "//ui/file_manager/base/js:error_counter",
567    "//ui/file_manager/file_manager/common/js:importer_common",
568    "//ui/file_manager/file_manager/common/js:metrics",
569    "//ui/file_manager/file_manager/common/js:progress_center_common",
570  ]
571  externs_list = [
572    "$externs_path/webview_tag.js",
573    "//ui/file_manager/externs/foreground_window.js",
574    "//ui/file_manager/externs/background/progress_center.js",
575    "//ui/file_manager/externs/background/media_import_handler.js",
576    "//ui/file_manager/externs/background/task_queue.js",
577    "//ui/file_manager/externs/background/duplicate_finder.js",
578    "//ui/file_manager/externs/background/crostini.js",
579    "//ui/file_manager/externs/progress_center_panel.js",
580    "//ui/file_manager/externs/background/media_scanner.js",
581    "//ui/file_manager/externs/background/drive_sync_handler.js",
582    "//ui/file_manager/externs/background_window.js",
583    "//ui/file_manager/externs/background/file_operation_manager.js",
584    "//ui/file_manager/externs/background/import_history.js",
585    "//ui/file_manager/externs/background/import_runner.js",
586    "//ui/file_manager/externs/background/file_browser_background.js",
587    "//ui/file_manager/externs/background/file_browser_background_full.js",
588  ]
589}
590
591js_library("volume_info_impl") {
592  deps = [ "//ui/file_manager/base/js:volume_manager_types" ]
593  externs_list = [ "//ui/file_manager/externs/volume_info.js" ]
594}
595
596js_library("volume_info_impl.m") {
597  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/volume_info_impl.m.js" ]
598  deps = [
599    "//ui/file_manager/base/js:volume_manager_types.m",
600    "//ui/file_manager/externs:files_app_entry_interfaces.m",
601    "//ui/file_manager/externs:volume_info.m",
602    "//ui/file_manager/file_manager/common/js:files_app_entry_types.m",
603    "//ui/file_manager/file_manager/common/js:util.m",
604    "//ui/webui/resources/js:assert.m",
605  ]
606
607  extra_deps = [ ":modulize" ]
608}
609
610js_library("task_queue") {
611  deps = [ "//ui/file_manager/file_manager/common/js:importer_common" ]
612  externs_list = [ "//ui/file_manager/externs/background/task_queue.js" ]
613}
614
615js_unittest("task_queue_unittest") {
616  deps = [
617    ":task_queue",
618    "//ui/file_manager/base/js:test_error_reporting",
619    "//ui/file_manager/base/js:volume_manager_types",
620    "//ui/file_manager/file_manager/common/js:importer_common",
621    "//ui/file_manager/file_manager/common/js:progress_center_common",
622    "//ui/webui/resources/js:assert",
623    "//ui/webui/resources/js:cr",
624    "//ui/webui/resources/js/cr:event_target",
625  ]
626  externs_list = [ "//ui/file_manager/externs/background/task_queue.js" ]
627}
628
629js_library("test_util_base") {
630}
631
632js_library("test_util_base.m") {
633  visibility += related_apps
634  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/test_util_base.m.js" ]
635  extra_deps = [ ":modulize" ]
636}
637
638js_library("test_import_history") {
639  testonly = true
640  deps = [
641    ":import_history",
642    "//ui/webui/resources/js:webui_resource_test",
643  ]
644}
645
646js_library("trash") {
647  deps = [
648    ":file_operation_util",
649    "//ui/file_manager/base/js:volume_manager_types",
650    "//ui/file_manager/externs:volume_manager",
651  ]
652}
653
654js_unittest("trash_unittest") {
655  deps = [
656    ":mock_volume_manager",
657    ":trash",
658    "//ui/file_manager/file_manager/common/js:mock_entry",
659    "//ui/webui/resources/js:webui_resource_test",
660  ]
661}
662
663js_library("volume_info_list_impl") {
664  deps = [
665    ".:volume_info_impl",
666    "//ui/file_manager/file_manager/common/js:util",
667    "//ui/webui/resources/js:cr",
668    "//ui/webui/resources/js/cr:ui",
669    "//ui/webui/resources/js/cr/ui:array_data_model",
670  ]
671  externs_list = [ "//ui/file_manager/externs/volume_info_list.js" ]
672}
673
674js_library("volume_info_list_impl.m") {
675  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/volume_info_list_impl.m.js" ]
676  deps = [
677    "//ui/file_manager/externs:volume_info.m",
678    "//ui/file_manager/externs:volume_info_list.m",
679    "//ui/webui/resources/js/cr/ui:array_data_model.m",
680  ]
681
682  extra_deps = [ ":modulize" ]
683}
684
685js_library("mount_metrics") {
686  deps = [ "//ui/file_manager/file_manager/common/js:metrics" ]
687}
688
689js_unittest("mount_metrics_unittest") {
690  deps = [
691    ":mount_metrics",
692    "//ui/file_manager/base/js:mock_chrome",
693    "//ui/file_manager/base/js:test_error_reporting",
694    "//ui/file_manager/base/js:volume_manager_types",
695  ]
696}
697
698js_library("volume_manager_impl") {
699  deps = [
700    ":entry_location_impl",
701    ":volume_info_list_impl",
702    ":volume_manager_util",
703    "//ui/file_manager/file_manager/common/js:async_util",
704  ]
705  externs_list = [ "//ui/file_manager/externs/volume_manager.js" ]
706}
707
708js_library("volume_manager_impl.m") {
709  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/volume_manager_impl.m.js" ]
710  deps = [
711    ":entry_location_impl.m",
712    ":volume_info_list_impl.m",
713    ":volume_manager_util.m",
714    "//ui/file_manager/base/js:volume_manager_types.m",
715    "//ui/file_manager/externs:volume_info.m",
716    "//ui/file_manager/externs:volume_manager.m",
717    "//ui/file_manager/file_manager/common/js:async_util.m",
718    "//ui/file_manager/file_manager/common/js:util.m",
719    "//ui/webui/resources/js:assert.m",
720    "//ui/webui/resources/js:cr.m",
721    "//ui/webui/resources/js/cr:event_target.m",
722  ]
723
724  extra_deps = [ ":modulize" ]
725}
726
727js_library("volume_manager_factory") {
728  deps = [ ":volume_manager_impl" ]
729}
730
731js_library("volume_manager_factory.m") {
732  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/volume_manager_factory.m.js" ]
733  deps = [
734    ":volume_manager_impl.m",
735    "//ui/file_manager/externs:volume_manager.m",
736  ]
737
738  extra_deps = [ ":modulize" ]
739}
740
741js_unittest("volume_manager_unittest") {
742  deps = [
743    ":volume_manager_factory",
744    "//ui/file_manager/base/js:mock_chrome",
745    "//ui/file_manager/base/js:test_error_reporting",
746    "//ui/file_manager/file_manager/common/js:mock_entry",
747  ]
748}
749
750js_library("volume_manager_util") {
751  deps = [
752    ":volume_info_impl",
753    "//ui/file_manager/base/js:volume_manager_types",
754    "//ui/file_manager/file_manager/common/js:metrics",
755    "//ui/file_manager/file_manager/common/js:util",
756  ]
757}
758
759js_library("volume_manager_util.m") {
760  sources = [ "$root_gen_dir/ui/file_manager/file_manager/background/js/volume_manager_util.m.js" ]
761  deps = [
762    ":volume_info_impl.m",
763    "//ui/file_manager/base/js:volume_manager_types.m",
764    "//ui/file_manager/externs:volume_info.m",
765    "//ui/file_manager/file_manager/common/js:util.m",
766  ]
767
768  extra_deps = [ ":modulize" ]
769}
770
771js_test_gen_html("js_test_gen_html") {
772  deps = [
773    ":crostini_unittest",
774    ":device_handler_unittest",
775    ":drive_sync_handler_unittest",
776    ":duplicate_finder_unittest",
777    ":file_operation_handler_unittest",
778    ":file_operation_manager_unittest",
779    ":import_history_unittest",
780    ":media_import_handler_unittest",
781    ":media_scanner_unittest",
782    ":metadata_proxy_unittest",
783    ":mount_metrics_unittest",
784    ":task_queue_unittest",
785    ":trash_unittest",
786    ":volume_manager_unittest",
787  ]
788}
789
790js_modulizer("modulize") {
791  input_files = [
792    "app_windows.js",
793    "app_window_wrapper.js",
794    "background_base.js",
795    "entry_location_impl.js",
796    "mock_volume_manager.js",
797    "test_util_base.js",
798    "volume_info_impl.js",
799    "volume_info_list_impl.js",
800    "volume_manager_factory.js",
801    "volume_manager_impl.js",
802    "volume_manager_util.js",
803  ]
804
805  namespace_rewrites = cr_namespace_rewrites
806}
807