closure_args.gni 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # Copyright 2015 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("//build/config/chromeos/ui_mode.gni")
  5. strict_error_checking_closure_args = [
  6. "jscomp_error=accessControls",
  7. "jscomp_error=checkTypes",
  8. "jscomp_error=checkVars",
  9. "jscomp_error=constantProperty",
  10. "jscomp_error=deprecated",
  11. "jscomp_error=externsValidation",
  12. "jscomp_error=globalThis",
  13. "jscomp_error=invalidCasts",
  14. "jscomp_error=misplacedTypeAnnotation",
  15. "jscomp_error=missingProperties",
  16. "jscomp_error=missingReturn",
  17. "jscomp_error=nonStandardJsDocs",
  18. "jscomp_error=suspiciousCode",
  19. "jscomp_error=undefinedNames",
  20. "jscomp_error=undefinedVars",
  21. "jscomp_error=unknownDefines",
  22. "jscomp_error=uselessCode",
  23. "jscomp_error=visibility",
  24. ]
  25. # Additional closure args for performing full checks.
  26. default_closure_args = strict_error_checking_closure_args + [
  27. "compilation_level=SIMPLE_OPTIMIZATIONS",
  28. "generate_exports=false",
  29. "extra_annotation_name=attribute",
  30. "extra_annotation_name=demo",
  31. "extra_annotation_name=element",
  32. "language_in=ECMASCRIPT_2017",
  33. "language_out=ECMASCRIPT5_STRICT",
  34. "jscomp_off=duplicate",
  35. ]
  36. legacy_modules_args = [
  37. "chrome_pass",
  38. "polymer_version=1",
  39. ]
  40. js_modules_args = [
  41. "js_module_root=../../ui/webui/resources/",
  42. "js_module_root=gen/ui/webui/resources/",
  43. # chrome://resources maps to root, since both ../../ui/webui/resources and
  44. # gen/ui/webui/resources are js_module_roots.
  45. "module_resolution=BROWSER_WITH_TRANSFORMED_PREFIXES",
  46. "browser_resolver_prefix_replacements=\"chrome://resources/=./\"",
  47. "browser_resolver_prefix_replacements=\"//resources/=./\"",
  48. ]
  49. if (is_chromeos_ash) {
  50. js_modules_args += [
  51. "js_module_root=../../ash/webui/common/resources/",
  52. "js_module_root=gen/ash/webui/common/resources/",
  53. "browser_resolver_prefix_replacements=\"chrome://resources/ash/common/=./\"",
  54. "browser_resolver_prefix_replacements=\"//resources/ash/common/=./\"",
  55. ]
  56. }
  57. mojom_js_args = [
  58. "js_module_root=" +
  59. rebase_path("$root_gen_dir/mojo/public/js", root_build_dir),
  60. "js_module_root=" + rebase_path("$root_gen_dir/mojom-webui", root_build_dir),
  61. "js_module_root=" +
  62. rebase_path("$root_gen_dir/mojom-webui/ui/webui/resources",
  63. root_build_dir),
  64. # Mojom WebUI JS modules load bindings.js which may be compiled and stripped
  65. # of type annotations. Rewrite these references to the uncompiled equivalent
  66. # for compilation and type-checking.
  67. "browser_resolver_prefix_replacements=\"//resources/mojo/mojo/public/js/bindings.js=/bindings_uncompiled.js\"",
  68. # Shared Mojom WebUI JS modules are by convention exposed through URLs like
  69. # chrome://resources/mojo/<path-to-module>. At build time these will be given
  70. # as gen/<path-to-module> for compilation, so we can rewrite them as absolute
  71. # paths.
  72. "browser_resolver_prefix_replacements=\"chrome://resources/mojo/=/\"",
  73. ]
  74. polymer3_args = [
  75. "browser_resolver_prefix_replacements=\"../polymer/polymer_bundled.min.js=../polymer/polymer_bundled.js\"",
  76. "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\"",
  77. "browser_resolver_prefix_replacements=\"//resources/polymer/v3_0/polymer/polymer_bundled.min.js=../../third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js\"",
  78. "browser_resolver_prefix_replacements=\"chrome://resources/polymer/v3_0/=../../third_party/polymer/v3_0/components-chromium/\"",
  79. "browser_resolver_prefix_replacements=\"//resources/polymer/v3_0/=../../third_party/polymer/v3_0/components-chromium/\"",
  80. "hide_warnings_for=externs.zip",
  81. # TODO(crbug.com/1093048): Add the leading '../../' back to
  82. # the path once the CrOS chroot no longer uses symlinks when
  83. # building chrome.
  84. "hide_warnings_for=third_party/polymer/v3_0/components-chromium/",
  85. # Note: "2" is counter-intuitively the correct value to use for Polymer 3.
  86. "polymer_version=2",
  87. ]
  88. default_disabled_closure_args = [ "jscomp_off=duplicate" ]