# 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("//extensions/buildflags/buildflags.gni")

assert(!is_android)

source_set("picture_in_picture") {
  public = [
    "document_pip_contents_view.h",
    "document_pip_dialog_manager_delegate.h",
    "document_pip_frame_view.h",
    "document_pip_host.h",
    "document_pip_widget_delegate.h",
    "picture_in_picture_bounds_change_animation.h",
    "picture_in_picture_tucker.h",
    "pip_child_dialog_observer_helper.h",
    "pip_top_bar_animation_controller.h",
  ]

  sources = [
    "document_pip_contents_view.cc",
    "document_pip_dialog_manager_delegate.cc",
    "document_pip_frame_view.cc",
    "document_pip_host.cc",
    "document_pip_widget_delegate.cc",
    "picture_in_picture_bounds_change_animation.cc",
    "picture_in_picture_tucker.cc",
    "pip_child_dialog_observer_helper.cc",
    "pip_top_bar_animation_controller.cc",
  ]

  public_deps = [
    "//base",
    "//components/web_modal",
    "//content/public/browser",
    "//third_party/blink/public/common:headers",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/views",
  ]

  deps = [
    "//chrome/app:generated_resources",
    "//chrome/browser/content_settings",
    "//chrome/browser/media/webrtc",
    "//chrome/browser/picture_in_picture",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui/color:color_headers",
    "//chrome/browser/ui/content_settings",
    "//chrome/browser/ui/toolbar",
    "//chrome/browser/ui/views:layout_provider",
    "//chrome/browser/ui/views/location_bar",
    "//chrome/browser/ui/views/page_info",
    "//components/content_settings/browser",
    "//components/javascript_dialogs",
    "//components/omnibox/browser:location_bar",
    "//components/page_load_metrics/browser",
    "//components/permissions",
    "//components/security_state/content",
    "//components/security_state/core",
    "//components/strings:components_strings",
    "//components/url_formatter",
    "//components/vector_icons",
    "//components/webapps/isolated_web_apps:scheme",
    "//extensions/buildflags",
    "//media",
    "//ui/base",
    "//ui/base/metadata",
    "//ui/compositor",
    "//ui/display",
    "//ui/strings",
    "//ui/views/controls/webview",
  ]

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

  if (is_mac) {
    public += [ "document_pip_native_widget_mac.h" ]
    sources += [ "document_pip_native_widget_mac.mm" ]
    deps += [ "//components/remote_cocoa/common:mojo" ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "document_pip_contents_view_unittest.cc",
    "document_pip_dialog_manager_delegate_unittest.cc",
    "document_pip_frame_view_unittest.cc",
    "document_pip_host_unittest.cc",
    "document_pip_widget_delegate_unittest.cc",
    "picture_in_picture_bounds_change_animation_unittest.cc",
    "picture_in_picture_tucker_unittest.cc",
  ]

  deps = [
    ":picture_in_picture",
    "//base",
    "//chrome/browser/content_settings",
    "//chrome/browser/picture_in_picture",
    "//chrome/browser/ssl",
    "//chrome/browser/ui/views/location_bar",
    "//chrome/browser/ui/views/page_info",
    "//chrome/test:test_support",
    "//components/content_settings/browser",
    "//components/input",
    "//components/javascript_dialogs",
    "//components/permissions",
    "//components/web_modal",
    "//content/public/browser",
    "//content/test:test_support",
    "//testing/gtest",
    "//third_party/blink/public/common:headers",
    "//ui/base",
    "//ui/display",
    "//ui/display:test_support",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/views",
    "//ui/views:test_support",
    "//ui/views/controls/webview",
    "//url",
  ]
}
