chromium/components/cast_receiver/browser/BUILD.gn

# Copyright 2022 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/cast.gni")

if (enable_cast_receiver) {
  source_set("browser") {
    public = [
      "public/application_config.h",
      "public/application_state_observer.h",
      "public/content_browser_client_mixins.h",
      "public/content_window_controls.h",
      "public/embedder_application.h",
      "public/message_port_service.h",
      "public/runtime_application.h",
      "public/runtime_application_dispatcher.h",
      "public/streaming_config_manager.h",
      "public/streaming_resolution_observer.h",
    ]
    sources = [
      "application_client.cc",
      "application_client.h",
      "application_config.cc",
      "bindings_manager.cc",
      "bindings_manager.h",
      "bindings_message_port_connector.cc",
      "bindings_message_port_connector.h",
      "content_browser_client_mixins_impl.cc",
      "content_browser_client_mixins_impl.h",
      "content_window_controls.cc",
      "embedder_application.cc",
      "page_state_observer.cc",
      "page_state_observer.h",
      "runtime_application.cc",
      "runtime_application_base.cc",
      "runtime_application_base.h",
      "runtime_application_dispatcher_impl.h",
      "streaming_config_manager.cc",
      "streaming_controller.h",
      "streaming_controller_base.cc",
      "streaming_controller_base.h",
      "streaming_controller_mirroring.cc",
      "streaming_controller_mirroring.h",
      "streaming_controller_remoting.cc",
      "streaming_controller_remoting.h",
      "streaming_receiver_session_client.cc",
      "streaming_receiver_session_client.h",
      "streaming_runtime_application.cc",
      "streaming_runtime_application.h",
      "web_runtime_application.cc",
      "web_runtime_application.h",
    ]
    public_deps = [
      "//components/cast_streaming/browser",
      "//third_party/blink/public/common:headers",
    ]
    deps = [
      ":permissions_manager",
      "//base",
      "//components/cast/api_bindings:manager",
      "//components/cast/message_port",
      "//components/cast/message_port:blink_message_port_adapter",
      "//components/cast/message_port:message_port_cast",
      "//components/cast/named_message_port_connector",
      "//components/cast_receiver/common",
      "//components/cast_streaming/common",
      "//components/cast_streaming/common:mojom",
      "//components/media_control/browser",
      "//components/on_load_script_injector/browser",
      "//components/url_rewrite/browser",
      "//components/url_rewrite/common",
      "//components/url_rewrite/mojom",
      "//content/public/browser",
      "//content/public/common",
      "//media",
      "//media/mojo/mojom",
      "//mojo/public/cpp/bindings",
      "//net",
      "//third_party/abseil-cpp:absl",
      "//ui/base",
      "//url",
    ]
    friend = [ ":unit_tests" ]
  }
}

source_set("permissions_manager") {
  public = [ "public/permissions_manager.h" ]
  sources = [
    "permissions_manager_impl.cc",
    "permissions_manager_impl.h",
  ]
  public_deps = [
    "//third_party/blink/public/common:headers",
    "//url",
  ]
  deps = [
    "//base",
    "//content",
  ]
  friend = [ ":unit_tests" ]
  if (enable_cast_receiver) {
    friend += [ ":browser" ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [ "permissions_manager_impl_unittest.cc" ]
  deps = [
    ":permissions_manager",
    "//base/test:test_support",
    "//media",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/gfx/geometry",
  ]

  if (enable_cast_receiver) {
    deps += [ ":browser" ]
    sources += [
      "application_client_unittest.cc",
      "streaming_receiver_session_client_unittest.cc",
    ]
  }
}