# Copyright 2020 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/android/rules.gni") import("//extensions/buildflags/buildflags.gni") import("//third_party/jni_zero/jni_zero.gni") android_library("java") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] public_deps = [ "//components/cached_flags:java" ] deps = [ "//base:base_java", "//base/version_info/android:version_constants_java", "//build:android_buildflags", "//build:chromeos_buildflags", "//build/android:build_java", "//chrome/browser/preferences:java", "//content/public/android:content_main_dex_java", "//third_party/android_deps:guava_android_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", ] srcjar_deps = [ ":chrome_android_java_switches_srcjar", ":chrome_browser_flags_enums_srcjar", ":jni_headers", ] } generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] } static_library("flags_android") { sources = [ "android/chrome_feature_list.h", "android/chrome_session_state.cc", "android/chrome_session_state.h", ] deps = [ ":jni_headers", "//base", "//chrome/browser:browser_process", "//components/prefs", "//content/public/browser", "//content/public/common", "//extensions/buildflags", ] } static_library("flags_android_impl") { sources = [ "android/chrome_feature_list.cc" ] deps = [ ":chrome_browser_flags_enums_srcjar", ":flags_android", ":jni_headers", "//base", "//build:android_buildflags", "//chrome/browser:browser_features", "//chrome/browser/android/webapk:webapk_sources", "//chrome/browser/finds/core", "//chrome/browser/glic/public:features", "//chrome/browser/notifications/chime/android", "//chrome/browser/predictors", "//chrome/browser/task_manager/common", "//chrome/browser/ui:ui_features", "//chrome/common:chrome_features", "//components/android_autofill/browser:features", "//components/autofill/core/common:features", "//components/browser_sync:switches", "//components/browser_ui/bottomsheet/android", "//components/browser_ui/photo_picker/android", "//components/browsing_data/core", "//components/collaboration/public:features", "//components/commerce/core:feature_list", "//components/content_capture/common", "//components/content_settings/core/common:features", "//components/contextual_tasks/public:feature_list", "//components/credential_management/android:features", "//components/data_sharing/public:features", "//components/download/public/common:public", "//components/embedder_support/android:util", "//components/enterprise/data_controls/core/browser:features", "//components/enterprise/data_protection", "//components/facilitated_payments/core/features", "//components/feature_engagement/public:feature_constants", "//components/feed:feature_list", "//components/history/core/browser:features", "//components/history_clusters/core", "//components/language/core/common", "//components/lens:features", "//components/ntp_tiles", "//components/offline_pages/core:switches", "//components/omnibox/common", "//components/optimization_guide/core:features", "//components/page_info/core", "//components/paint_preview/features", "//components/password_manager/core/browser/features:password_features", "//components/password_manager/core/common:features", "//components/permissions:permissions_common", "//components/policy/core/common", "//components/privacy_sandbox:features", "//components/push_messaging", "//components/regional_capabilities", "//components/safe_browsing/core/common:features", "//components/safety_check:features", "//components/saved_tab_groups/public:features", "//components/search", "//components/search_engines:search_engines_switches", "//components/security_interstitials/core", "//components/segmentation_platform/public", "//components/send_tab_to_self", "//components/sensitive_content:features", "//components/shared_highlighting/core/common", "//components/signin/public/base", "//components/site_isolation", "//components/subresource_filter/core/browser", "//components/supervised_user/core/common:features", "//components/sync/base:features", "//components/sync_preferences:features", "//components/sync_sessions", "//components/tab_groups", "//components/themes/cross_device:features", "//components/touch_to_search/core/browser", "//components/universal_optout:features", "//components/visited_url_ranking/public", "//components/viz/common", "//components/webapps/browser", "//content/public/common", "//extensions/buildflags", "//media", "//services/device/public/cpp:device_features", "//services/network/public/cpp:flags_and_switches", "//third_party/blink/public/common:headers", "//ui/base:features", ] if (enable_extensions_core) { deps += [ "//extensions/common:extension_features" ] } } java_cpp_strings("chrome_android_java_switches_srcjar") { sources = [ "//chrome/common/chrome_switches.cc" ] template = "android/java_templates/ChromeSwitches.java.tmpl" } java_cpp_enum("chrome_browser_flags_enums_srcjar") { sources = [ "android/chrome_session_state.h" ] } robolectric_library("flags_junit_tests") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlagsAnnotationUnitTest.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListUnitTest.java", ] deps = [ ":java", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", "//base/test:test_support_java", "//chrome/browser/preferences:java", "//chrome/test/android:chrome_java_unit_test_support", "//third_party/android_deps:guava_android_java", "//third_party/junit", "//third_party/mockito:mockito_java", ] } android_library("javatests") { testonly = true sources = [ "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListInstrumentationTest.java", "android/java/src/org/chromium/chrome/browser/flags/FieldTrialsInstrumentationTest.java", ] deps = [ ":java", "//base:base_java", "//base:base_java_test_support", "//base/test:test_support_java", "//chrome/android:chrome_java", "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_transit", "//third_party/android_sdk:android_test_mock_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/junit", "//third_party/mockito:mockito_java", ] }