# Copyright 2025 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/chromeos/args.gni") import("//build/config/ui.gni") assert(toolkit_views) source_set("tab_drag_target") { public = [ "tab_drag_target.h" ] public_deps = [ "//base", "//ui/gfx", ] } source_set("dragging") { public = [ "drag_session_data.h", "dragging_tabs_session.h", "tab_drag_context.h", "tab_drag_controller.h", "window_finder.h", ] public_deps = [ ":tab_drag_target", "//base", "//chrome/browser/ui/views", "//chrome/browser/ui/views/tabs:base", "//components/saved_tab_groups/public", "//components/tab_groups", "//components/webapps/common", "//content/public/browser", "//ui/base", "//ui/base/dragdrop/mojom", "//ui/base/metadata", "//ui/gfx", "//ui/gfx:native_ui_types", "//ui/gfx/geometry", "//ui/views", ] if (use_aura) { public_deps += [ "//ui/aura" ] } } source_set("impl") { sources = [ "drag_session_data.cc", "dragging_tabs_session.cc", "tab_drag_context.cc", "tab_drag_controller.cc", "window_finder.cc", ] deps = [ ":dragging", "//base", "//chrome/browser/tab_group_sync:factories", "//chrome/browser/ui:browser_element_identifiers", "//chrome/browser/ui:browser_init_state", "//chrome/browser/ui:layout_constants", "//chrome/browser/ui:sad_tab", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/browser/ui/tabs", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/ui/tabs:tab_group", "//chrome/browser/ui/tabs:tab_model", "//chrome/browser/ui/tabs:tab_strip", "//chrome/browser/ui/tabs:tab_strip_model_observer", "//chrome/browser/ui/waap:window_metrics_manager", "//chrome/browser/ui/web_applications", "//chrome/browser/ui/web_applications:launch_utils", "//chrome/browser/ui/window_feature_controller", "//chrome/browser/web_applications", "//components/tab_groups", "//components/tabs:public", "//components/viz/common", "//content/public/browser", "//content/public/common", "//ui/base", "//ui/base/clipboard", "//ui/base/dragdrop:types", "//ui/base/metadata", "//ui/base/mojom:ui_base_types", "//ui/compositor", "//ui/display", "//ui/events", "//ui/events/types:headers", "//ui/gfx", "//ui/gfx/geometry", "//ui/gfx/range", "//ui/views", ] if (is_chromeos) { deps += [ "//ash/public/cpp", "//chrome/browser/ash/boca/on_task", "//chromeos/ui/base", ] } if (is_mac) { deps += [ "//components/remote_cocoa/browser" ] } public_deps = [ "//chrome/browser:browser_public_dependencies" ] } if (!is_android) { source_set("tab_drag_controller_interactive_test_mixin") { testonly = true public = [ "tab_drag_controller_interactive_test_mixin.h" ] public_deps = [ "//base", "//chrome/test:test_support_ui", "//chrome/test/interaction", "//ui/base:test_support", "//ui/base/interaction:test_support", "//ui/gfx", "//ui/views", ] } } source_set("test_support") { testonly = true sources = [ "test/mock_tab_drag_context.cc", "test/mock_tab_drag_context.h", ] public_deps = [ ":dragging", "//testing/gmock", "//ui/base/interaction", "//ui/base/metadata", ] } source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "dragging_tabs_session_browsertest.cc" ] deps = [ ":dragging", "//chrome/browser/ui", "//chrome/browser/ui/tabs:tab_strip", "//chrome/test:test_support", "//components/tabs:public", "//content/test:test_support", "//ui/base", "//ui/gfx:test_support", "//ui/gfx/geometry", "//ui/views", ] } if (!is_chromeos_device) { source_set("interactive_ui_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "tab_drag_controller_interactive_uitest.cc", "tab_drag_controller_interactive_uitest.h", ] deps = [ ":dragging", ":tab_drag_controller_interactive_test_mixin", "//base/test:test_support", "//chrome/browser/profiles:profile", "//chrome/browser/ui", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/browser/ui/tabs", "//chrome/browser/ui/tabs:features", "//chrome/browser/ui/views/interaction", "//chrome/browser/web_applications", "//chrome/browser/web_applications:web_applications_test_support", "//chrome/common:constants", "//chrome/test:test_support", "//components/constrained_window", "//components/prefs", "//components/split_tabs", "//components/tab_groups", "//components/tabs:public", "//content/public/browser", "//content/public/common", "//content/test:test_support", "//testing/gmock", "//third_party/blink/public/common:headers", "//ui/base:features", "//ui/base:ozone_buildflags", "//ui/base:test_support", "//ui/base/mojom:ui_base_types", "//ui/compositor", "//ui/display", "//ui/events:gesture_detection", "//ui/gfx:test_support", "//ui/views", "//ui/views:test_support", ] if (is_chromeos) { deps += [ "//ash:test_support", "//chrome/browser/ash/boca/on_task", "//chrome/browser/ash/system_web_apps/test_support", "//chromeos/ui/base", "//chromeos/ui/frame:test_support", "//ui/display:test_support", "//ui/display/manager", ] } if (is_linux) { deps += [ "//chrome/common:non_code_constants", "//ui/base/dragdrop:types", "//ui/linux:linux_ui", ] } if (use_aura) { deps += [ "//ui/aura" ] } if (use_ozone) { deps += [ "//ui/ozone" ] } } }