features.gni 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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/chrome_build.gni")
  5. import("//build/config/chromeos/ui_mode.gni")
  6. import("//build/config/compiler/compiler.gni")
  7. import("//build/config/dcheck_always_on.gni")
  8. import("//build/config/features.gni")
  9. import("//components/feed/features.gni")
  10. import("//components/nacl/features.gni")
  11. import("//components/safe_browsing/buildflags.gni")
  12. import("//crypto/features.gni")
  13. import("//device/vr/buildflags/buildflags.gni")
  14. import("//extensions/buildflags/buildflags.gni")
  15. import("//media/media_options.gni")
  16. import("//net/features.gni")
  17. import("//pdf/features.gni")
  18. import("//ppapi/buildflags/buildflags.gni")
  19. import("//printing/buildflags/buildflags.gni")
  20. import("//ui/base/ui_features.gni")
  21. import("//ui/webui/webui_features.gni")
  22. assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")
  23. # Please keep features in alphabetical order.
  24. declare_args() {
  25. # Platforms where the BuiltinCertificateVerifierEnabled enterprise policy is
  26. # supported. This must must match the supported_on list of the policy in
  27. # policy_templates.json and be a subset of the
  28. # builtin_cert_verifier_feature_supported platforms.
  29. # See crbug.com/410574. This can be removed when the builtin verifier is
  30. # unconditionally enabled on all platforms.
  31. builtin_cert_verifier_policy_supported = is_mac
  32. # Platforms where the ChromeRootStoreEnabled enterprise policy is
  33. # supported. This must must match the supported_on/future_on list of the
  34. # policy in policy_templates.json and be a subset of the
  35. # chrome_root_store_supported platforms.
  36. # See https://crbug.com/1228958. This can be removed when the Chrome Root
  37. # Store is unconditionally enabled on all platforms.
  38. chrome_root_store_policy_supported = is_mac || is_win
  39. # Enables support for background apps.
  40. enable_background_contents = !is_android
  41. enable_background_mode = !is_android && !is_chromeos
  42. # Enable the printing system dialog for platforms that support printing
  43. # and have a system dialog.
  44. enable_basic_print_dialog = enable_basic_printing && !is_chromeos
  45. # Enables usage of notifications via Chrome's MessageCenter.
  46. enable_chrome_notifications = is_mac || is_win || is_linux || is_fuchsia
  47. # Disable Click to Call on Fuchsia.
  48. enable_click_to_call = !is_fuchsia
  49. # Hangout services is an extension that adds extra features to Hangouts.
  50. # It is enableable separately to facilitate testing.
  51. enable_hangout_services_extension = is_chrome_branded
  52. enable_service_discovery = (enable_mdns && !is_android) || is_mac
  53. # Enables use of the session service, which is enabled by default.
  54. # Android stores them separately on the Java side.
  55. enable_session_service = !is_android
  56. # Enables usage of the system-provided notification center.
  57. enable_system_notifications =
  58. is_android || is_mac || is_win || (is_linux && use_dbus) || is_chromeos
  59. # Indicates if Wayland display server support is enabled.
  60. enable_wayland_server = is_chromeos_ash
  61. # Enables the webui certificate viewer dialog.
  62. enable_webui_certificate_viewer = toolkit_views
  63. # optimize_webui was moved to ui/base/ui_features.gni
  64. }
  65. # Enables supervision for Family Link users.
  66. # Supervision is only supported on Chrome OS and Android.
  67. enable_supervised_users = is_chromeos || is_android
  68. # Use brlapi from brltty for braille display support.
  69. use_brlapi = is_chromeos_ash
  70. # Every grit target in //chrome should apply these defines so that the
  71. # proper build flags can be set.
  72. chrome_grit_defines = [
  73. "chrome_root_store_supported=$chrome_root_store_supported",
  74. "enable_arcore=$enable_arcore",
  75. "enable_background_mode=$enable_background_mode",
  76. "enable_background_contents=$enable_background_contents",
  77. "enable_basic_printing=$enable_basic_printing",
  78. "enable_extensions=$enable_extensions",
  79. "enable_hangout_services_extension=$enable_hangout_services_extension",
  80. "enable_nacl=$enable_nacl",
  81. "enable_plugins=$enable_plugins",
  82. "enable_pdf=$enable_pdf",
  83. "enable_print_preview=$enable_print_preview",
  84. "enable_service_discovery=$enable_service_discovery",
  85. "enable_supervised_users=$enable_supervised_users",
  86. "enable_vr=$enable_vr",
  87. "enable_webui_certificate_viewer=$enable_webui_certificate_viewer",
  88. "enable_webui_tab_strip=$enable_webui_tab_strip",
  89. "safe_browsing_mode=$safe_browsing_mode",
  90. "optimize_webui=$optimize_webui",
  91. "enable_feed_v2=$enable_feed_v2",
  92. "use_nss_certs=$use_nss_certs",
  93. ]