# Copyright 2015 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.

strict_error_checking_closure_args = [
  "jscomp_error=accessControls",
  "jscomp_error=checkTypes",
  "jscomp_error=checkVars",
  "jscomp_error=constantProperty",
  "jscomp_error=deprecated",
  "jscomp_error=externsValidation",
  "jscomp_error=globalThis",
  "jscomp_error=invalidCasts",
  "jscomp_error=misplacedTypeAnnotation",
  "jscomp_error=missingProperties",
  "jscomp_error=missingReturn",
  "jscomp_error=nonStandardJsDocs",
  "jscomp_error=suspiciousCode",
  "jscomp_error=undefinedNames",
  "jscomp_error=undefinedVars",
  "jscomp_error=unknownDefines",
  "jscomp_error=uselessCode",
  "jscomp_error=visibility",
]

# Additional closure args for performing full checks.
default_closure_args = strict_error_checking_closure_args + [
                         "compilation_level=SIMPLE_OPTIMIZATIONS",
                         "generate_exports=false",

                         "extra_annotation_name=attribute",
                         "extra_annotation_name=demo",
                         "extra_annotation_name=element",

                         "language_in=ECMASCRIPT_2017",
                         "language_out=ECMASCRIPT5_STRICT",

                         "jscomp_off=duplicate",
                       ]

legacy_modules_args = [
  "chrome_pass",
  "polymer_version=1",
]

js_modules_args = [
  "js_module_root=../../ui/webui/resources/",
  "js_module_root=gen/ui/webui/resources/",

  # chrome://resources maps to root, since both ../../ui/webui/resources and
  # gen/ui/webui/resources are js_module_roots.
  "module_resolution=BROWSER_WITH_TRANSFORMED_PREFIXES",
  "browser_resolver_prefix_replacements=\"chrome://resources/=./\"",
  "browser_resolver_prefix_replacements=\"//resources/=./\"",
]

mojom_js_args = [
  "js_module_root=" +
      rebase_path("$root_gen_dir/mojo/public/js", root_build_dir),
  "js_module_root=" + rebase_path("$root_gen_dir/mojom-webui", root_build_dir),
  "js_module_root=" +
      rebase_path("$root_gen_dir/mojom-webui/ui/webui/resources",
                  root_build_dir),

  # Mojom WebUI JS modules load bindings.js which may be compiled and stripped
  # of type annotations. Rewrite these references to the uncompiled equivalent
  # for compilation and type-checking.
  "browser_resolver_prefix_replacements=\"//resources/mojo/mojo/public/js/bindings.js=/bindings_uncompiled.js\"",

  # Shared Mojom WebUI JS modules are by convention exposed through URLs like
  # chrome://resources/mojo/<path-to-module>. At build time these will be given
  # as gen/<path-to-module> for compilation, so we can rewrite them as absolute
  # paths.
  "browser_resolver_prefix_replacements=\"chrome://resources/mojo/=/\"",
]

polymer3_args = [
  "browser_resolver_prefix_replacements=\"../polymer/polymer_bundled.min.js=../polymer/polymer_bundled.js\"",
  "browser_resolver_prefix_replacements=\"chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js=../../third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js\"",
  "browser_resolver_prefix_replacements=\"//resources/polymer/v3_0/polymer/polymer_bundled.min.js=../../third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js\"",
  "browser_resolver_prefix_replacements=\"chrome://resources/polymer/v3_0/=../../third_party/polymer/v3_0/components-chromium/\"",
  "browser_resolver_prefix_replacements=\"//resources/polymer/v3_0/=../../third_party/polymer/v3_0/components-chromium/\"",

  "hide_warnings_for=externs.zip",

  # TODO(crbug.com/1093048): Add the leading '../../' back to
  # the path once the CrOS chroot no longer uses symlinks when
  # building chrome.
  "hide_warnings_for=third_party/polymer/v3_0/components-chromium/",

  # Note: "2" is counter-intuitively the correct value to use for Polymer 3.
  "polymer_version=2",
]

default_disabled_closure_args = [ "jscomp_off=duplicate" ]