# 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/ui.gni")

assert(toolkit_views)

source_set("tab_sharing") {
  public = [
    "tab_capture_contents_border_helper.h",
    "tab_sharing_infobar.h",
    "tab_sharing_status_message_view.h",
    "tab_sharing_ui_views.h",
  ]

  sources = [
    "tab_capture_contents_border_helper.cc",
    "tab_sharing_infobar.cc",
    "tab_sharing_status_message_view.cc",
    "tab_sharing_ui_views.cc",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/ui/browser_window",
    "//chrome/browser/ui/tab_sharing",
    "//chrome/browser/ui/tabs:tab_strip",
    "//chrome/browser/ui/views:screen_sharing_util",
    "//chrome/browser/ui/views/infobars",
    "//components/infobars/core",
    "//content/public/browser",
    "//ui/base/metadata",
    "//ui/views",
  ]

  deps = [
    "//chrome/app:generated_resources",
    "//chrome/browser/media/webrtc",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui:sad_tab",
    "//chrome/browser/ui:ui_features",
    "//chrome/browser/ui/color:color_headers",
    "//chrome/browser/ui/views:layout_provider",
    "//components/infobars/content",
    "//components/tabs:public",
    "//components/url_formatter",
    "//media/capture:capture_switches",
    "//ui/base",
    "//ui/gfx",
  ]

  if (is_chromeos) {
    deps += [ "//chrome/browser/chromeos/policy/dlp" ]
  }
}

source_set("test_support") {
  testonly = true

  sources = [
    "tab_sharing_test_utils.cc",
    "tab_sharing_test_utils.h",
  ]

  deps = [ "//ui/views" ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "tab_sharing_infobar_unittest.cc",
    "tab_sharing_status_message_view_unittest.cc",
  ]

  configs += [ "//build/config/compiler:no_exit_time_destructors" ]

  deps = [
    ":tab_sharing",
    ":test_support",
    "//chrome/browser/ui/tab_sharing:test_support",
    "//chrome/browser/ui/views:layout_provider",
    "//content/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/views",
  ]
}

source_set("browser_tests") {
  testonly = true
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  sources = [ "tab_sharing_ui_views_browsertest.cc" ]

  configs += [ "//build/config/compiler:no_exit_time_destructors" ]

  deps = [
    ":tab_sharing",
    ":test_support",
    "//chrome/browser:browser_features",
    "//chrome/browser/media/webrtc",
    "//chrome/browser/ui/tabs:tab_strip",
    "//chrome/browser/ui/views/frame",
    "//chrome/common",
    "//chrome/test:test_support",
    "//components/infobars/content",
    "//components/infobars/core",
    "//components/url_formatter",
    "//components/vector_icons",
    "//content/public/browser",
    "//content/test:test_support",
    "//net:test_support",
    "//testing/gmock",
    "//ui/base",
    "//ui/gfx",
    "//ui/views",
  ]

  if (is_chromeos) {
    deps += [ "//chrome/browser/chromeos/policy/dlp" ]
  }
}

source_set("interactive_ui_tests") {
  testonly = true
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  sources = [ "tab_sharing_ui_interactive_uitest.cc" ]

  deps = [
    ":tab_sharing",
    "//chrome/browser:browser_features",
    "//chrome/browser/ui:browser_element_identifiers",
    "//chrome/browser/ui:ui_features",
    "//chrome/browser/ui/views/frame",
    "//chrome/test:test_support",
    "//content/public/browser",
    "//content/test:test_support",
    "//net:test_support",
  ]
}
