# 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") source_set("android") { sources = [ "co_browse_container_type.h", "co_browse_views_bridge.cc", "co_browse_views_bridge.h", "tab_bottom_sheet_bridge.cc", "tab_bottom_sheet_bridge.h", "tab_bottom_sheet_client_type.h", ] deps = [ ":jni_headers", "//base", "//chrome/browser/android:tabs_public", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:jni_headers", "//components/zoom", "//content/public/browser", "//ui/android", ] } generate_jni("jni_headers") { sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/CoBrowseViewFactory.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/CoBrowseViews.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetNativeInterface.java", ] } android_resources("java_resources") { sources = [ "java/res/layout/tab_bottom_sheet.xml", "java/res/layout/tab_bottom_sheet_peek_layout.xml", "java/res/layout/tab_bottom_sheet_resizing_view.xml", "java/res/values-night/colors.xml", "java/res/values/colors.xml", "java/res/values/dimens.xml", ] deps = [ "//chrome/app:java_strings_grd", "//components/browser_ui/bottomsheet/android:java_resources", "//components/browser_ui/styles/android:java_resources", "//ui/android:ui_java_resources", ] } android_library("java") { srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/CoBrowseViewFactory.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/CoBrowseViews.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/DefaultResizingStrategy.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/DragDirectionResizingStrategy.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/ResizingStrategy.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/ResizingStrategyFactory.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetCoordinator.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetManagerImpl.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetMediator.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetMetrics.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetNativeInterface.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetPeekView.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetPeekViewBinder.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetProperties.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetSuppressionController.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetUtils.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetViewBinder.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetWebUi.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetWebUiContainer.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetWebUiLinkOpener.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/WebViewResizingHelper.java", ] resources_package = "org.chromium.chrome.browser.context_sharing" deps = [ ":java_resources", "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", "//chrome/browser/android/intents:java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/back_press/android:java", "//chrome/browser/bookmarks/android:java", "//chrome/browser/browser_controls/android:java", "//chrome/browser/commerce/price_tracking/android:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/flags:java", "//chrome/browser/glic:metrics_java", "//chrome/browser/incognito:incognito_utils_java", "//chrome/browser/keyboard_accessory/android/java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/edge_to_edge:java", "//chrome/browser/ui/android/ephemeraltab:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/multiwindow:java", "//chrome/browser/ui/android/omnibox:java", "//chrome/browser/ui/android/page_info:java", "//chrome/browser/ui/android/strings:ui_strings_grd", "//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/side_panel/android:java", "//components/bookmarks/common/android:bookmarks_java", "//components/browser_ui/accessibility/android:lib_java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/styles/android:java", "//components/browser_ui/widget/android:java", "//components/embedder_support/android:content_view_java", "//components/embedder_support/android:context_menu_java", "//components/embedder_support/android:util_java", "//components/embedder_support/android:web_contents_delegate_java", "//components/omnibox/browser:browser_java", "//components/security_state/core:security_state_enums_java", "//components/thin_webview:factory_java", "//components/thin_webview:java", "//components/thin_webview/internal:internal_java", "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_core_core_java", "//third_party/jni_zero:jni_zero_java", "//third_party/metrics_proto:metrics_proto_java", "//ui/android:ui_java", "//url:gurl_java", ] } robolectric_library("junit") { sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/CoBrowseViewsUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/DefaultResizingStrategyUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/DragDirectionResizingStrategyUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetCoordinatorUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetMediatorUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetPeekViewBinderTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetSuppressionControllerUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetWebUiUnitTest.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/WebViewResizingHelperUnitTest.java", ] deps = [ ":java", ":java_resources", ":test_support_java", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", "//chrome/android:chrome_app_java_resources", "//chrome/android/javatests:common_unit_test_deps_java", "//chrome/browser/android/intents:java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/glic:metrics_java", "//chrome/browser/keyboard_accessory/android/java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/side_panel/android:java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/widget/android:java", "//components/embedder_support/android:content_view_java", "//components/embedder_support/android:web_contents_delegate_java", "//components/thin_webview:factory_java", "//components/thin_webview:java", "//components/thin_webview/internal:internal_java", "//content/public/android:content_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/google-truth:google_truth_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java", "//ui/android:ui_java_test_support", ] } android_library("javatests") { testonly = true resources_package = "org.chromium.chrome.browser.context_sharing" sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TabBottomSheetManagerTest.java" ] deps = [ ":java", ":java_resources", ":test_support_java", "//base:base_java", "//base:base_java_test_support", "//chrome/android:chrome_java", "//chrome/android/javatests:chrome_test_java_helper", "//chrome/browser/android/content:java", "//chrome/browser/android/lifecycle:java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/flags:java", "//chrome/browser/keyboard_accessory/android/java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/messages/android:java", "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_transit", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/widget/android:java", "//content/public/android:content_full_java", "//content/public/test/android:content_java_test_support", "//services/device/public/java:geolocation_java_test_support", "//third_party/androidx:androidx_test_core_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/hamcrest:hamcrest_core_java", "//third_party/hamcrest:hamcrest_library_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java", "//url:url_java", ] } source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "co_browse_views_bridge_browsertest.cc", "tab_bottom_sheet_browsertest.cc", "tab_bottom_sheet_test_feature.cc", "tab_bottom_sheet_test_feature.h", ] deps = [ ":android", ":test_jni_headers", "//base", "//chrome/browser/profiles:profile", "//chrome/browser/tab_list", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/test:test_support", "//content/test:test_support", "//testing/gtest", ] } android_library("test_support_java") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TestCoBrowseComponentProvider.java", "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TestTabBottomSheetContent.java", ] deps = [ ":java", "//base:base_java", "//chrome/browser/context_sharing/tab_bottom_sheet/public/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/widget/android:java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", ] } generate_jni("test_jni_headers") { testonly = true sources = [ "java/src/org/chromium/chrome/browser/tab_bottom_sheet/TestCoBrowseComponentProvider.java" ] }