# 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/features.gni") import("//build/config/ui.gni") # This component depends on content::WebContents so it can't be used in iOS on # WebKit. iOS on Blink uses content::WebContents, so assert `use_blink`. assert(use_blink) source_set("enum") { sources = [ "public/tab_alert.h", "public/tab_context_menu_command.h", "public/tab_network_state.h", ] } source_set("public") { sources = [ "public/direct_child_walker.h", "public/pinned_tab_collection.h", "public/split_tab_collection.h", "public/split_tab_data.h", "public/supports_handles.h", "public/tab_collection.h", "public/tab_collection_observer.h", "public/tab_collection_types.h", "public/tab_group.h", "public/tab_group_tab_collection.h", "public/tab_handle_factory.h", "public/tab_interface.h", "public/tab_strip_collection.h", "public/unpinned_tab_collection.h", ] # TODO(crbug.com/404296389): Move to the non-public target and refactor # tab_collection.h to only require a forward declaration for testing. sources += [ "public/tab_collection_storage.h" ] public_deps = [ ":enum", "//base", "//components/split_tabs", "//components/tab_groups", "//content/public/browser", ] deps = [ "//ui/gfx/range" ] } source_set("impl") { sources = [ "impl/pinned_tab_collection.cc", "impl/split_tab_collection.cc", "impl/split_tab_data.cc", "impl/supports_handles.cc", "impl/tab_collection.cc", "impl/tab_collection_storage.cc", "impl/tab_group.cc", "impl/tab_group_tab_collection.cc", "impl/tab_handle_factory.cc", "impl/tab_interface.cc", "impl/tab_network_state.cc", "impl/tab_strip_collection.cc", "impl/unpinned_tab_collection.cc", ] deps = [ "//components/split_tabs" ] public_deps = [ ":public" ] } source_set("test_support") { testonly = true sources = [ "impl/mock_tab_group.cc", "impl/mock_tab_interface.cc", "public/mock_tab_group.h", "public/mock_tab_interface.h", ] deps = [ ":public", "//testing/gmock", ] public_deps = [ "//ui/base/unowned_user_data" ] } source_set("unit_tests") { testonly = true # Move unit tests for tab collections here once decoupled from # chrome/browser/ui/tabs/. Specifically: # TODO(crbug.com/415963447): tab_collection_unittest.cc # TODO(crbug.com/415965103): tab_collection_storage_unittest.cc # TODO(crbug.com/415965106): tab_iterator_unittest.cc sources = [ "public/direct_child_walker_unittest.cc", "public/supports_handles_unittest.cc", "public/tab_collection_observer_unittest.cc", "public/tab_handle_factory_unittest.cc", ] public_deps = [ "//base" ] deps = [ ":impl", ":public", ":test_support", "//components/split_tabs", "//testing/gmock", "//testing/gtest", "//ui/gfx/range", ] }