# 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") import("//crypto/features.gni") assert(toolkit_views) source_set("global_media_controls") { public = [ "cast_device_footer_view.h", "cast_device_selector_view.h", "media_dialog_view.h", "media_dialog_view_observer.h", "media_item_ui_cast_footer_view.h", "media_item_ui_device_selector_view.h", "media_item_ui_helper.h", "media_item_ui_legacy_cast_footer_view.h", "media_notification_device_entry_ui.h", "media_toolbar_button.h", "media_toolbar_button_contextual_menu.h", "media_toolbar_button_view.h", ] public_deps = [ "//base", "//chrome/browser/ui/global_media_controls", "//chrome/browser/ui/media_router", "//chrome/browser/ui/views/controls", "//chrome/browser/ui/views/location_bar:icon_label_bubble", "//chrome/browser/ui/views/media_router", "//chrome/browser/ui/views/toolbar", "//components/global_media_controls", "//components/media_message_center", "//components/soda", "//components/soda:constants", "//content/public/browser", "//media", "//ui/base", "//ui/color:color_headers", "//ui/menus", "//ui/views", ] } source_set("impl") { sources = [ "cast_device_footer_view.cc", "cast_device_selector_view.cc", "media_dialog_view.cc", "media_item_ui_cast_footer_view.cc", "media_item_ui_device_selector_view.cc", "media_item_ui_helper.cc", "media_item_ui_legacy_cast_footer_view.cc", "media_notification_device_entry_ui.cc", "media_toolbar_button_contextual_menu.cc", "media_toolbar_button_view.cc", ] deps = [ ":global_media_controls", "//chrome/browser/feature_engagement", "//chrome/browser/feedback", "//chrome/browser/language", "//chrome/browser/media/router:media_router_feature", "//chrome/browser/ui:browser_element_identifiers", "//chrome/browser/ui/navigator", "//chrome/browser/ui/views:layout_provider", "//components/language/core/browser", "//components/live_caption:constants", "//components/live_caption:utils", "//components/media_message_center/vector_icons", "//components/prefs", "//components/soda:constants", "//components/strings:components_strings", "//components/sync_preferences", "//components/vector_icons", "//ui/strings:ui_strings", ] public_deps = [ "//chrome/browser:browser_public_dependencies" ] } source_set("test_support") { testonly = true public = [ "media_dialog_ui_for_test.h" ] sources = [ "media_dialog_ui_for_test.cc" ] deps = [ ":global_media_controls", "//chrome/browser/media/router:test_support", "//chrome/browser/ui", "//chrome/browser/ui/global_media_controls", "//chrome/browser/ui/views", "//chrome/browser/ui/views/toolbar", "//chrome/test:test_support_ui", "//components/global_media_controls", "//components/media_message_center", "//components/media_router/browser:test_support", "//testing/gtest", "//ui/base:test_support", "//ui/views", "//ui/views:test_support", ] } source_set("unit_tests") { testonly = true sources = [ "cast_device_footer_view_unittest.cc", "cast_device_selector_view_unittest.cc", "media_item_ui_device_selector_view_unittest.cc", "media_item_ui_legacy_cast_footer_view_unittest.cc", "media_toolbar_button_contextual_menu_unittest.cc", ] deps = [ ":global_media_controls", ":test_support", "//base", "//chrome/browser/ui", "//chrome/browser/ui/global_media_controls", "//chrome/test:test_support", "//components/global_media_controls", "//components/global_media_controls:test_support", "//components/media_message_center", "//components/media_router/browser:test_support", "//testing/gmock", "//testing/gtest", "//ui/base", "//ui/events", "//ui/views", "//ui/views:test_support", ] if (is_linux || is_win || is_mac) { sources += [ "media_dialog_view_unittest.cc" ] deps += [ "//chrome/browser/accessibility" ] } if (use_nss_certs && is_chromeos) { sources += [ "media_item_ui_cast_footer_view_unittest.cc" ] deps += [ "//chromeos/ash/components/kcer" ] } # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "media_toolbar_button_contextual_menu_browsertest.cc" ] deps = [ ":global_media_controls", "//base", "//build:branding_buildflags", "//chrome/app:command_ids", "//chrome/browser/ui", "//chrome/test:test_support", "//content/test:test_support", ] # The dump-accessibility-events browser test is not built on ChromeOS: # DumpAccessibilityEventsViewsTestBase::EventTestPasses() is empty there, # which would leave the parameterized suite uninstantiated and fail the # test launcher. This mirrors the original !is_chromeos guard the test # had in //chrome/test:browser_tests. if (!is_chromeos) { sources += [ "media_item_ui_device_selector_view_dump_accessibility_events_browsertest.cc" ] deps += [ "//chrome/browser/ui/global_media_controls", "//chrome/browser/ui/views/accessibility:dump_accessibility_events_views_browsertest_base", "//components/global_media_controls", "//components/global_media_controls:test_support", "//components/media_message_center", "//ui/accessibility", "//ui/views", ] } } source_set("interactive_ui_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "media_dialog_view_interactive_browsertest.cc" ] deps = [ ":global_media_controls", ":test_support", "//base", "//base/i18n:test_support", "//chrome/browser/ui", "//chrome/browser/ui/global_media_controls", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//components/global_media_controls", "//components/live_caption:constants", "//components/live_caption:utils", "//components/media_message_center", "//components/media_router/browser:test_support", "//components/soda:constants", "//content/test:test_support", "//ui/views", "//ui/views:test_support", ] }