# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD - style license that can be
# found in the LICENSE file.

assert(is_win || is_mac || is_linux || is_chromeos)

import("//chrome/common/features.gni")
import("//extensions/buildflags/buildflags.gni")

source_set("side_panel") {
  sources = [
    "bookmarks/bookmarks_side_panel_coordinator.cc",
    "bookmarks/bookmarks_side_panel_coordinator.h",
    "comments/comments_side_panel_coordinator.cc",
    "comments/comments_side_panel_coordinator.h",
    "extensions/extension_side_panel_action_item_util.cc",
    "extensions/extension_side_panel_action_item_util.h",
    "extensions/extension_side_panel_coordinator.cc",
    "extensions/extension_side_panel_coordinator.h",
    "extensions/extension_side_panel_manager.cc",
    "extensions/extension_side_panel_manager.h",
    "history/history_side_panel_coordinator.cc",
    "history/history_side_panel_coordinator.h",
    "history_clusters/history_clusters_side_panel_controller.cc",
    "history_clusters/history_clusters_side_panel_controller.h",
    "history_clusters/history_clusters_side_panel_controller_utils.cc",
    "history_clusters/history_clusters_side_panel_controller_utils.h",
    "history_clusters/history_clusters_side_panel_coordinator.cc",
    "history_clusters/history_clusters_side_panel_coordinator.h",
    "history_clusters/history_clusters_side_panel_utils.cc",
    "history_clusters/history_clusters_side_panel_utils.h",
    "history_clusters/history_clusters_tab_helper.cc",
    "history_clusters/history_clusters_tab_helper.h",
    "reading_list/read_later_side_panel_web_view.cc",
    "reading_list/read_later_side_panel_web_view.h",
    "reading_list/reading_list_side_panel_coordinator.cc",
    "reading_list/reading_list_side_panel_coordinator.h",
    "side_panel.cc",
    "side_panel.h",
    "side_panel_animation_content_view.cc",
    "side_panel_animation_content_view.h",
    "side_panel_coordinator.cc",
    "side_panel_coordinator.h",
    "side_panel_header.cc",
    "side_panel_header.h",
    "side_panel_header_controller.cc",
    "side_panel_header_controller.h",
    "side_panel_helper.cc",
    "side_panel_helper.h",
    "side_panel_resize_area.cc",
    "side_panel_resize_area.h",
    "side_panel_toolbar_pinning_controller.cc",
    "side_panel_toolbar_pinning_controller.h",
    "side_panel_web_ui_view.cc",
    "side_panel_web_ui_view.h",
    "tabs_from_other_devices/tabs_from_other_devices_side_panel_coordinator.cc",
    "tabs_from_other_devices/tabs_from_other_devices_side_panel_coordinator.h",
    "tabs_from_other_devices/tabs_from_other_devices_side_panel_metrics.cc",
    "tabs_from_other_devices/tabs_from_other_devices_side_panel_metrics.h",
  ]
  public_deps = [
    "//base",
    "//chrome/browser:browser_public_dependencies",
    "//chrome/browser:primitives",
    "//chrome/browser/history_clusters",
    "//chrome/browser/optimization_guide",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui/actions:actions_headers",
    "//chrome/browser/ui/color:color_headers",
    "//chrome/browser/ui/tabs:tab_model",
    "//chrome/browser/ui/toolbar/pinned_toolbar",
    "//chrome/browser/ui/webui/new_tab_footer",
    "//chrome/browser/ui/webui/side_panel/reading_list",
    "//chrome/common",
    "//chrome/common/read_anything:mojo_bindings",
    "//components/omnibox/browser",
    "//components/prefs",
    "//components/search_engines",
    "//content/public/browser",
    "//ui/actions:actions_headers",
    "//ui/base",
    "//ui/base/mojom:ui_base_types",
    "//ui/base/unowned_user_data",
    "//ui/color:color_headers",
    "//ui/gfx",
    "//ui/gfx/animation",
    "//ui/gfx/geometry",
    "//ui/views",
    "//ui/views/controls/webview",

    # TODO(crbug.com/345487716): This is needed here because of the
    # dependency in history_clusters_side_panel_ui.h; that file is
    # part of //chrome/browser/ui:ui, but we can't depend on that
    # because that depends on this.
    "//ui/webui/resources/cr_components/history:mojo_bindings",
    "//ui/webui/resources/cr_components/history_embeddings:mojo_bindings",
    "//url",
  ]
  deps = [
    "//base:i18n",
    "//chrome/app:generated_resources",
    "//chrome/app:generated_resources_grit",
    "//chrome/app/vector_icons",
    "//chrome/browser/contextual_tasks",
    "//chrome/browser/favicon",
    "//chrome/browser/glic",
    "//chrome/browser/media/webrtc",
    "//chrome/browser/new_tab_page",
    "//chrome/browser/performance_manager",
    "//chrome/browser/profiles",
    "//chrome/browser/resources:component_extension_resources",
    "//chrome/browser/resources:component_extension_resources_grit",
    "//chrome/browser/search",
    "//chrome/browser/search/background",
    "//chrome/browser/search_engines",
    "//chrome/browser/tab_group_sync:factories",
    "//chrome/browser/themes",
    "//chrome/browser/ui:browser_actions",
    "//chrome/browser/ui:browser_element_identifiers",
    "//chrome/browser/ui:ui_features",
    "//chrome/browser/ui/actions",
    "//chrome/browser/ui/animation",
    "//chrome/browser/ui/bookmarks",
    "//chrome/browser/ui/browser_window",
    "//chrome/browser/ui/extensions",
    "//chrome/browser/ui/side_panel",
    "//chrome/browser/ui/tabs:tab_strip",
    "//chrome/browser/ui/tabs:tabs_public",
    "//chrome/browser/ui/tabs/saved_tab_groups",
    "//chrome/browser/ui/user_education",
    "//chrome/browser/ui/views:layout_provider",
    "//chrome/browser/ui/views/animations",
    "//chrome/browser/ui/views/interaction",
    "//chrome/browser/ui/views/toolbar",
    "//chrome/browser/ui/webui:webui_util",
    "//chrome/browser/ui/webui/side_panel/bookmarks",
    "//chrome/browser/ui/webui/side_panel/comments",
    "//chrome/browser/ui/webui/side_panel/history",
    "//chrome/browser/ui/webui/side_panel/history_clusters",
    "//chrome/browser/ui/webui/side_panel/tabs_from_other_devices",
    "//chrome/browser/ui/webui/top_chrome",
    "//chrome/browser/ui/webui_browser:headers",
    "//chrome/common",
    "//chrome/common:constants",
    "//components/accessibility:reading",
    "//components/download/content/factory",
    "//components/download/content/public",
    "//components/favicon_base",
    "//components/feature_engagement/public",
    "//components/google/core/common",
    "//components/history_clusters/core",
    "//components/keyed_service/core",
    "//components/language/core/browser",
    "//components/language/core/common",
    "//components/omnibox/browser:vector_icons",
    "//components/optimization_guide/core:features",
    "//components/performance_manager",
    "//components/pref_registry",
    "//components/search",
    "//components/strings:components_strings",
    "//components/strings:components_strings_grit",
    "//components/translate/core/browser",
    "//components/translate/core/common",
    "//components/user_education/common",
    "//components/vector_icons",
    "//components/web_modal",
    "//extensions/buildflags",
    "//net",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/metrics/public/cpp:ukm_builders",
    "//skia",
    "//third_party/abseil-cpp:absl",
    "//third_party/blink/public/common",
    "//ui/accessibility:ax_base",
    "//ui/accessibility/mojom",
    "//ui/base",
    "//ui/compositor",
    "//ui/gfx:color_utils",
    "//ui/gfx/geometry:geometry_skia",
    "//ui/webui",
  ]

  if (enable_extensions_core) {
    public_deps += [
      "//extensions/browser",
      "//extensions/common",
    ]
    deps += [ "//chrome/common/extensions/api" ]
  }

  allow_circular_includes_from = [ "//chrome/browser/glic" ]
}
