1# Copyright 2019 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")
6
7js_type_check("closure_compile") {
8  closure_flags =
9      default_closure_args + [
10        "language_in=ECMASCRIPT_2018",
11        "jscomp_error=lintChecks",
12        "jscomp_error=strictCheckTypes",
13        "conformance_configs=" +
14            rebase_path("externs/conformance_config.textproto", root_build_dir),
15        "jscomp_error=conformanceViolations",
16        "hide_warnings_for=mojo/public/js/",
17        "hide_warnings_for=gen/",
18        "hide_warnings_for=js/lib/",
19      ]
20  deps = [ ":compile_resources" ]
21}
22
23js_library("compile_resources") {
24  sources = [
25    "app_window.js",
26    "async_job_queue.js",
27    "background.js",
28    "background_ops.js",
29    "browser_proxy/browser_proxy.js",
30    "browser_proxy/browser_proxy_interface.js",
31    "browser_proxy/webui_browser_proxy.js",
32    "chrome_util.js",
33    "device/camera3_device_info.js",
34    "device/constraints_preferrer.js",
35    "device/device_info_updater.js",
36    "dom.js",
37    "error.js",
38    "gallerybutton.js",
39    "init.js",
40    "intent.js",
41    "lib/comlink.js",
42    "lib/ffmpeg.js",
43    "main.js",
44    "metrics.js",
45    "models/async_writer.js",
46    "models/chrome_file_system_entry.js",
47    "models/file_namer.js",
48    "models/file_system.js",
49    "models/file_system_entry.js",
50    "models/file_util.js",
51    "models/lazy_directory_entry.js",
52    "models/mp4_video_processor.js",
53    "models/native_file_system_entry.js",
54    "models/result_saver.js",
55    "models/video_processor_interface.js",
56    "models/video_saver.js",
57    "mojo/chrome_helper.js",
58    "mojo/device_operator.js",
59    "mojo/image_capture.js",
60    "nav.js",
61    "perf.js",
62    "sound.js",
63    "state.js",
64    "test_bridge.js",
65    "toast.js",
66    "tooltip.js",
67    "type.js",
68    "untrusted_ga_helper.js",
69    "untrusted_helper_interfaces.js",
70    "untrusted_script_loader.js",
71    "untrusted_video_processor_helper.js",
72    "util.js",
73    "views/camera.js",
74    "views/camera/layout.js",
75    "views/camera/mode/index.js",
76    "views/camera/mode/mode_base.js",
77    "views/camera/mode/photo.js",
78    "views/camera/mode/portrait.js",
79    "views/camera/mode/record_time.js",
80    "views/camera/mode/square.js",
81    "views/camera/mode/video.js",
82    "views/camera/options.js",
83    "views/camera/preview.js",
84    "views/camera/review_result.js",
85    "views/camera/timertick.js",
86    "views/camera_intent.js",
87    "views/dialog.js",
88    "views/settings.js",
89    "views/view.js",
90    "views/warning.js",
91    "waitable_event.js",
92    "window_controller/mojo_window_controller.js",
93    "window_controller/window_controller.js",
94    "window_controller/window_controller_interface.js",
95  ]
96  deps = [
97    "//chromeos/components/camera_app_ui:mojo_bindings_js_library_for_compile",
98    "//components/arc/mojom:camera_intent_js_library_for_compile",
99    "//media/capture/mojom:image_capture_js_library_for_compile",
100    "//media/capture/video/chromeos/mojom:cros_camera_js_library_for_compile",
101    "//third_party/blink/public/mojom:mojom_platform_js_library_for_compile",
102  ]
103  externs_list = [
104    "externs/chrome.js",
105    "externs/swa.js",
106    "externs/universal_analytics_api.js",
107    "externs/w3c_api.js",
108    "$externs_path/chrome_extensions.js",
109    "$externs_path/file_manager_private.js",
110    "$externs_path/file_system_provider.js",
111    "$externs_path/metrics_private.js",
112
113    # TODO(crbug.com/980846): Remove it once it is upstreamed to the closure
114    # compiler.
115    "//chromeos/components/web_applications/externs/file_handling.externs.js",
116  ]
117}
118