# Copyright 2026 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("//third_party/jni_zero/jni_zero.gni") generate_jni("jni_headers") { sources = [ "//chrome/browser/glic/public/android/java/src/org/chromium/chrome/browser/glic/GlicEnabling.java", "//chrome/browser/glic/public/android/java/src/org/chromium/chrome/browser/glic/GlicKeyedServiceFactory.java", "java/src/org/chromium/chrome/browser/glic/ActorLoginPermission.java", "java/src/org/chromium/chrome/browser/glic/GlicActorLoginBridge.java", "java/src/org/chromium/chrome/browser/glic/GlicBottomSheetComponentProvider.java", "java/src/org/chromium/chrome/browser/glic/GlicHelper.java", "java/src/org/chromium/chrome/browser/glic/GlicInstanceHelper.java", "java/src/org/chromium/chrome/browser/glic/GlicKeyedServiceImpl.java", "java/src/org/chromium/chrome/browser/glic/GlicNavigationUtils.java", "java/src/org/chromium/chrome/browser/glic/GlicSidePanelComponentProvider.java", "java/src/org/chromium/chrome/browser/glic/GlicSplitButtonDelegateBridge.java", "java/src/org/chromium/chrome/browser/glic/GlicTabPickerBridge.java", ] } java_cpp_enum("java_enums_srcjar") { sources = [ "//chrome/browser/glic/browser_ui/glic_nudge_controller.h" ] } java_cpp_enum("glic_settings_enums_srcjar") { sources = [ "glic_navigation_utils_android.h" ] } android_resources("java_resources") { sources = [ "java/res/drawable/glic_keycap_background.xml", "java/res/drawable/glic_menu_dot.xml", "java/res/drawable/glic_menu_end_icon_needs_review.xml", "java/res/drawable/glic_menu_end_icon_standard.xml", "java/res/drawable/glic_menu_move_item_icon.xml", "java/res/drawable/glic_promo_logo.xml", "java/res/drawable/ic_hourglass_empty_24dp.xml", "java/res/drawable/ic_move_item_24dp.xml", "java/res/layout/glic_auto_browse.xml", "java/res/layout/glic_default_tab_access.xml", "java/res/layout/glic_promo_bottom_sheet.xml", "java/res/layout/glic_settings_extra_info.xml", "java/res/layout/glic_settings_extra_info_enterprise.xml", "java/res/layout/preference_widget_hotkey.xml", "java/res/layout/preference_widget_hotkey_navigation.xml", "java/res/layout/preference_widget_revoke.xml", "java/res/raw/glic_spinner.json", "java/res/values/dimens.xml", "java/res/values/styles.xml", "java/res/xml/glic_actor_login_permissions.xml", "java/res/xml/glic_settings.xml", ] deps = [ "//chrome/app:java_strings_grd", "//components/browser_ui/settings/android:java_resources", ] } android_library("helper_java") { sources = [ "java/src/org/chromium/chrome/browser/glic/GlicInstanceHelper.java" ] deps = [ ":jni_headers_java", "//base:base_java", "//chrome/browser/tab:java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", ] resources_package = "org.chromium.chrome.browser.glic" } android_library("menu_java") { resources_package = "org.chromium.chrome.browser.glic" sources = [ "java/src/org/chromium/chrome/browser/glic/GlicTaskMenuCoordinator.java", ] deps = [ ":common_java", ":java_resources", "//base:base_java", "//chrome/android:chrome_app_java_resources", "//chrome/browser/actor/android:java", "//chrome/browser/glic:public_java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/side_panel/android:java", "//chrome/browser/url_constants/android:java", "//components/browser_ui/widget/android:java", "//content/public/android:content_full_java", "//third_party/androidx:androidx_annotation_annotation_java", "//ui/android:ui_no_recycler_view_java", ] } android_library("common_java") { sources = [ "java/src/org/chromium/chrome/browser/glic/GlicButtonDelegate.java", "java/src/org/chromium/chrome/browser/glic/GlicButtonStateController.java", "java/src/org/chromium/chrome/browser/glic/GlicSplitButtonDelegate.java", "java/src/org/chromium/chrome/browser/glic/GlicSplitButtonDelegateBridge.java", ] srcjar_deps = [ ":java_enums_srcjar" ] deps = [ ":java_resources", ":jni_headers_java", "//base:base_java", "//base:unowned_user_data_java", "//chrome/android:chrome_app_java_resources", "//chrome/browser/actor/android:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/glic:public_java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/browser_window/public/android:java", "//components/browser_ui/widget/android:java", "//third_party/android_deps:com_airbnb_android_lottie_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", "//ui/android:ui_no_recycler_view_java", ] resources_package = "org.chromium.chrome.browser.glic" } android_library("java") { sources = [ "java/src/org/chromium/chrome/browser/glic/ActorLoginPermission.java", "java/src/org/chromium/chrome/browser/glic/ActorLoginPermissionPreference.java", "java/src/org/chromium/chrome/browser/glic/GlicActorLoginBridge.java", "java/src/org/chromium/chrome/browser/glic/GlicActorLoginPermissionsFragment.java", "java/src/org/chromium/chrome/browser/glic/GlicBottomSheetComponentProvider.java", "java/src/org/chromium/chrome/browser/glic/GlicBottomSheetContent.java", "java/src/org/chromium/chrome/browser/glic/GlicExtraInfoPreference.java", "java/src/org/chromium/chrome/browser/glic/GlicHelper.java", "java/src/org/chromium/chrome/browser/glic/GlicKeyedServiceImpl.java", "java/src/org/chromium/chrome/browser/glic/GlicNavigationUtils.java", "java/src/org/chromium/chrome/browser/glic/GlicPromoCoordinator.java", "java/src/org/chromium/chrome/browser/glic/GlicSettings.java", "java/src/org/chromium/chrome/browser/glic/GlicSidePanelComponentProvider.java", "java/src/org/chromium/chrome/browser/glic/GlicTabPickerBridge.java", "java/src/org/chromium/chrome/browser/glic/GlicToolbarButtonController.java", "java/src/org/chromium/chrome/browser/glic/GlicUiCoordinator.java", "java/src/org/chromium/chrome/browser/glic/GlicUiUtils.java", "java/src/org/chromium/chrome/browser/glic/GlicUtils.java", ] resources_package = "org.chromium.chrome.browser.glic" srcjar_deps = [ ":glic_settings_enums_srcjar" ] deps = [ ":common_java", ":helper_java", ":java_resources", ":jni_headers_java", ":menu_java", "//base:base_java", "//base:base_shared_preferences_java", "//base:supplier_java", "//build/android:build_java", "//chrome/android:chrome_app_java_resources", "//chrome/browser/actor/android:java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/feature_engagement:java", "//chrome/browser/flags:java", "//chrome/browser/glic:public_java", "//chrome/browser/preferences:java", "//chrome/browser/prefs/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/settings:factory_java", "//chrome/browser/settings:java", "//chrome/browser/signin/services/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/bottombar:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/signin:java", "//chrome/browser/ui/android/toolbar:adaptive_features_java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/android/toolbar:optional_button_java", "//chrome/browser/ui/browser_window/public/android:java", "//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/side_panel/android:java", "//chrome/browser/ui/side_ui/public:java", "//chrome/browser/url_constants/android:java", "//chrome/browser/user_education:java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/settings/android:java", "//components/browser_ui/styles/android:java", "//components/browser_ui/util/android:java", "//components/browser_ui/widget/android:java", "//components/embedder_support/android:util_java", "//components/favicon/android:java", "//components/feature_engagement/public:public_java", "//components/prefs/android:java", "//components/signin/public/android:java", "//components/user_prefs/android:java", "//content/public/android:content_full_java", "//google_apis/gaia/android:java", "//net/android:net_java", "//third_party/android_deps:com_airbnb_android_lottie_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_appcompat_appcompat_resources_java", "//third_party/androidx:androidx_core_core_java", "//third_party/androidx:androidx_fragment_fragment_java", "//third_party/androidx:androidx_preference_preference_java", "//third_party/androidx:androidx_recyclerview_recyclerview_java", "//third_party/jni_zero:jni_zero_java", "//ui/android:ui_no_recycler_view_java", "//url:url_java", ] } source_set("android") { sources = [ "glic_actor_login_bridge.cc", "glic_actor_login_bridge.h", "glic_enabling_android.cc", "glic_helper_android.cc", "glic_helper_android.h", "glic_keyed_service_android.cc", "glic_keyed_service_android.h", "glic_keyed_service_factory_android.cc", "glic_navigation_utils_android.cc", "glic_navigation_utils_android.h", "glic_tab_picker_bridge.cc", "glic_tab_picker_bridge.h", ] public_deps = [ ":jni_headers" ] deps = [ ":jni_headers", "//base", "//chrome/browser/affiliations", "//chrome/browser/android:tabs_public", "//chrome/browser/glic", "//chrome/browser/glic:mojo_bindings", "//chrome/browser/password_manager/actor_login:factories", "//chrome/browser/password_manager/factories", "//chrome/browser/sync", "//components/optimization_guide/core:features", "//components/password_manager/core/browser/actor_login:permissions_manager_impl", "//components/password_manager/core/browser/ui", "//skia", "//third_party/jni_zero", "//ui/android", ] } robolectric_library("junit") { sources = [ "java/src/org/chromium/chrome/browser/glic/GlicActorLoginPermissionsFragmentUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicBottomSheetContentUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicButtonStateControllerTest.java", "java/src/org/chromium/chrome/browser/glic/GlicHelperUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicNavigationUtilsUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicPromoCoordinatorUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicSettingsUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicTabPickerBridgeUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicTaskMenuCoordinatorUnitTest.java", "java/src/org/chromium/chrome/browser/glic/GlicToolbarButtonControllerTest.java", "java/src/org/chromium/chrome/browser/glic/GlicUiHelperUnitTest.java", ] deps = [ ":common_java", ":java", ":java_resources", ":jni_headers_java", ":menu_java", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", "//base:base_shared_preferences_java", "//cc:cc_java", "//chrome/browser/actor/android:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/context_sharing/tab_bottom_sheet/android:java", "//chrome/browser/educational_tip:java", "//chrome/browser/flags:java", "//chrome/browser/glic:public_java", "//chrome/browser/preferences:java", "//chrome/browser/prefs/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/settings:factory_java", "//chrome/browser/settings:search_java", "//chrome/browser/signin/services/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/actions:java", "//chrome/browser/ui/android/bottombar:config_java", "//chrome/browser/ui/android/bottombar:java", "//chrome/browser/ui/android/signin:java", "//chrome/browser/ui/android/toolbar:adaptive_features_java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/android/toolbar:optional_button_java", "//chrome/browser/ui/browser_window/public/android:java", "//chrome/browser/ui/messages/android:java", "//chrome/test/android:chrome_java_unit_test_support", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/settings/android:java", "//components/browser_ui/util/android:java", "//components/browser_ui/widget/android:java", "//components/favicon/android:java", "//components/feature_engagement/public:public_java", "//components/prefs/android:java", "//components/signin/public/android:java", "//components/signin/public/android:signin_java_test_support", "//components/user_prefs/android:java", "//content/public/android:content_full_java", "//google_apis/gaia/android:java", "//net/android:net_java", "//third_party/android_deps:com_airbnb_android_lottie_java", "//third_party/androidx:androidx_fragment_fragment_java", "//third_party/androidx:androidx_lifecycle_lifecycle_common_jvm_java", "//third_party/androidx:androidx_preference_preference_java", "//third_party/androidx:androidx_test_core_java", "//third_party/androidx:androidx_test_ext_junit_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java_test_support", "//ui/android:ui_no_recycler_view_java", "//url:gurl_junit_test_support", "//url:url_java", ] } android_library("javatests") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/glic/GlicActorLoginPermissionsFragmentRenderTest.java", "java/src/org/chromium/chrome/browser/glic/GlicAndroidMojoIntegrationTest.java", "java/src/org/chromium/chrome/browser/glic/GlicToolbarButtonRenderTest.java", ] deps = [ ":common_java", ":java", ":java_resources", ":jni_headers_java", ":test_support_java", "//base:base_java", "//base:base_java_test_support", "//base:base_shared_preferences_java", "//chrome/android:chrome_java", "//chrome/browser/actor/android:java", "//chrome/browser/flags:java", "//chrome/browser/glic:public_java", "//chrome/browser/preferences:java", "//chrome/browser/profiles/android:java", "//chrome/browser/settings:factory_java", "//chrome/browser/settings:java", "//chrome/browser/tab:java", "//chrome/browser/ui/android/toolbar:adaptive_features_java", "//chrome/browser/ui/android/toolbar:optional_button_java", "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_test_support_common", "//chrome/test/android:chrome_java_transit", "//components/browser_ui/settings/android:java", "//components/browser_ui/settings/android:test_support_java", "//components/browser_ui/widget/android:java", "//components/favicon/android:java", "//components/prefs/android:java", "//components/user_prefs/android:java", "//content/public/android:content_full_java", "//content/public/test/android:content_java_test_support", "//net/android:net_java", "//net/android:net_java_test_support", "//third_party/android_deps:espresso_java", "//third_party/androidx:androidx_fragment_fragment_java", "//third_party/androidx:androidx_preference_preference_java", "//third_party/androidx:androidx_recyclerview_recyclerview_java", "//third_party/androidx:androidx_test_espresso_espresso_core_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/hamcrest:hamcrest_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java", "//ui/android:ui_java_test_support", "//url:url_java", ] data_deps = [ "//chrome/test/data/webui/glic:generate_test_files" ] } generate_jni("test_support_jni_headers") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/glic/GlicTestEnvironmentAndroid.java", ] } android_library("test_support_java") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/glic/GlicTestEnvironmentAndroid.java", "java/src/org/chromium/chrome/test/transit/GlicTransitTestRule.java", ] deps = [ ":test_support_jni_headers_java", "//base:tasks_java", "//chrome/browser/glic:public_java", "//chrome/test/android:chrome_java_test_support_common", "//chrome/test/android:chrome_java_transit", "//content/public/android:content_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", "//third_party/junit", "//ui/android:ui_no_recycler_view_java", ] }