# 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") android_library("java") { sources = [ "java/src/org/chromium/chrome/browser/actor/ActorBroadcastReceiver.java", "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceController.java", "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceManager.java", "java/src/org/chromium/chrome/browser/actor/ActorKeyedService.java", "java/src/org/chromium/chrome/browser/actor/ActorKeyedServiceFactory.java", "java/src/org/chromium/chrome/browser/actor/ActorMetrics.java", "java/src/org/chromium/chrome/browser/actor/ActorNotificationFactory.java", "java/src/org/chromium/chrome/browser/actor/ActorNotificationService.java", "java/src/org/chromium/chrome/browser/actor/ActorPictureInPictureController.java", "java/src/org/chromium/chrome/browser/actor/ActorServiceTabUtils.java", "java/src/org/chromium/chrome/browser/actor/ActorTabStateHelper.java", "java/src/org/chromium/chrome/browser/actor/ActorTask.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskHelper.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskId.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskTimeoutManager.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskTimeoutParameters.java", "java/src/org/chromium/chrome/browser/actor/ActorUtils.java", "java/src/org/chromium/chrome/browser/actor/BackgroundPoolTab.java", "java/src/org/chromium/chrome/browser/actor/BackgroundSession.java", "java/src/org/chromium/chrome/browser/actor/BackgroundTabDataStore.java", "java/src/org/chromium/chrome/browser/actor/ColdBackgroundTab.java", "java/src/org/chromium/chrome/browser/actor/LiveBackgroundTab.java", "java/src/org/chromium/chrome/browser/actor/NoOpActorForegroundServiceController.java", "java/src/org/chromium/chrome/browser/actor/OffscreenRenderingManager.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorControlCoordinator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorControlMediator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorControlStateTracker.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorNavigationConfirmationDialog.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayCoordinator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayMediator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayProperties.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayView.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayViewBinder.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayCoordinator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayMediator.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayProperties.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayView.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayViewBinder.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorUiTabController.java", "java/src/org/chromium/chrome/browser/actor/ui/InnerGlowDrawable.java", "java/src/org/chromium/chrome/browser/actor/ui/PeekViewUiState.java", ] deps = [ ":java_resources", "//base:base_java", "//base:callback_java", "//base:service_loader_java", "//base:supplier_java", "//build/android:build_java", "//chrome/android:chrome_app_java_resources", "//chrome/app:java_strings_grd", "//chrome/browser/android/lifecycle:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/flags:java", "//chrome/browser/glic:metrics_java", "//chrome/browser/glic:public_java", "//chrome/browser/glic/android:helper_java", "//chrome/browser/glic/android:java_resources", "//chrome/browser/notifications:java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/tabwindow:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/theme:java_resources", "//chrome/browser/ui/browser_window/public/android:java", "//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/side_ui/public:java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/notifications/android:java", "//components/browser_ui/notifications/android:utils_java", "//components/browser_ui/styles/android:java_resources", "//components/browser_ui/widget/android:java", "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_activity_activity_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_core_core_pip_java", "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", "//third_party/jni_zero:jni_zero_java", "//ui/android:ui_java", "//url:url_java", ] srcjar_deps = [ ":jni_headers", "//chrome/browser/actor:enums_java", "//chrome/browser/actor/ui:enums_java", ] resources_package = "org.chromium.chrome.browser.actor.ui" } generate_jni("jni_headers") { visibility = [ ":*" ] sources = [ "java/src/org/chromium/chrome/browser/actor/ActorKeyedService.java", "java/src/org/chromium/chrome/browser/actor/ActorKeyedServiceFactory.java", "java/src/org/chromium/chrome/browser/actor/ActorTask.java", "java/src/org/chromium/chrome/browser/actor/OffscreenRenderingManager.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorUiTabController.java", ] } source_set("android") { sources = [ "actor_keyed_service_android.cc", "actor_keyed_service_android.h", "actor_task_android.cc", "actor_task_android.h", "offscreen_rendering_manager_android.cc", "offscreen_rendering_manager_android.h", "ui/actor_ui_tab_controller_android.cc", "ui/actor_ui_tab_controller_android.h", ] deps = [ ":jni_headers", "//base", "//cc/slim", "//chrome/browser/actor", "//chrome/browser/actor/ui", "//chrome/browser/android:tabs_public", "//chrome/browser/profiles", "//chrome/browser/tab", "//components/tabs:public", "//content/public/browser", "//ui/android", "//ui/base/unowned_user_data", ] } android_resources("java_resources") { sources = [ "java/res/drawable/actor_gts_tab_indicator_background.xml", "java/res/drawable/actor_thumbnail_overlay_outline.xml", "java/res/layout/actor_gts_tab_indicator.xml", "java/res/layout/actor_overlay.xml", "java/res/layout/actor_picture_in_picture_overlay.xml", "java/res/values-night/colors.xml", "java/res/values/colors.xml", "java/res/values/dimens.xml", "java/res/values/styles.xml", ] deps = [ "//chrome/app:java_strings_grd", "//chrome/browser/ui/android/strings:ui_strings_grd", ] } robolectric_library("junit") { sources = [ "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceManagerTest.java", "java/src/org/chromium/chrome/browser/actor/ActorMetricsTest.java", "java/src/org/chromium/chrome/browser/actor/ActorNotificationFactoryTest.java", "java/src/org/chromium/chrome/browser/actor/ActorNotificationServiceTest.java", "java/src/org/chromium/chrome/browser/actor/ActorPictureInPictureControllerTest.java", "java/src/org/chromium/chrome/browser/actor/ActorTabStateHelperTest.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskHelperTest.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskTimeoutManagerTest.java", "java/src/org/chromium/chrome/browser/actor/ActorTaskTimeoutParametersTest.java", "java/src/org/chromium/chrome/browser/actor/BackgroundTabDataStoreTest.java", "java/src/org/chromium/chrome/browser/actor/BackgroundTabPoolManagerTest.java", "java/src/org/chromium/chrome/browser/actor/BackgroundTabPoolTest.java", "java/src/org/chromium/chrome/browser/actor/BackgroundTabRestorationHelperTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorControlCoordinatorTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorNavigationConfirmationDialogTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayCoordinatorTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorPictureInPictureOverlayCoordinatorTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorUiTabControllerTest.java", ] deps = [ ":java", ":java_resources", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", "//chrome/android:chrome_java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/flags:java", "//chrome/browser/glic:metrics_java", "//chrome/browser/glic:public_java", "//chrome/browser/glic/android:helper_java", "//chrome/browser/glic/android:java_resources", "//chrome/browser/notifications:java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/side_ui/public:java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/notifications/android:java", "//components/browser_ui/notifications/android:test_support_java", "//components/browser_ui/notifications/android:utils_java", "//components/browser_ui/styles/android:java", "//components/browser_ui/styles/android:java_resources", "//components/browser_ui/theme/android:java_resources", "//components/browser_ui/widget/android:java", "//content/public/android:content_full_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_activity_activity_java", "//third_party/androidx:androidx_core_core_java", "//third_party/androidx:androidx_core_core_pip_java", "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java", "//ui/android:ui_java_resources", "//ui/android:ui_java_test_support", "//url:url_java", ] resources_package = "org.chromium.chrome.browser.actor.ui" } android_library("unit_device_javatests") { resources_package = "org.chromium.chrome.browser.actor" testonly = true sources = [ "java/src/org/chromium/chrome/browser/actor/ui/ActorNavigationConfirmationDialogRenderTest.java", "java/src/org/chromium/chrome/browser/actor/ui/ActorOverlayViewRenderTest.java", ] deps = [ ":java", ":java_resources", "//base:base_java", "//base:base_java_test_support", "//base:tasks_java", "//chrome/app:java_strings_grd", "//chrome/browser/browser_controls/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/side_ui/public:java", "//chrome/test/android:chrome_java_test_support_common", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/modaldialog/android:java", "//components/browser_ui/widget/android:java", "//third_party/android_deps:espresso_java", "//third_party/androidx:androidx_annotation_annotation_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", "//ui/android:ui_utils_java", ] } android_library("javatests") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/actor/ActorNotificationClickIntegrationTest.java", "java/src/org/chromium/chrome/browser/actor/ActorPictureInPictureIntegrationTest.java", "java/src/org/chromium/chrome/browser/actor/ActorTabStateHelperIntegrationTest.java", ] deps = [ ":java", "//base:base_java", "//base:base_java_test_support", "//chrome/android:chrome_java", "//chrome/browser/flags:java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/tabwindow:java", "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_test_support_common", "//components/browser_ui/notifications/android:java", "//content/public/android:content_java", "//third_party/androidx:androidx_activity_activity_java", "//third_party/androidx:androidx_core_core_pip_java", "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java", ] }