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

import("//chromecast/chromecast.gni")
import("//tools/grit/grit_rule.gni")

grit("extensions_resources") {
  source = "resources/extensions_renderer_resources.grd"
  output_dir = "$root_gen_dir/chromecast/renderer"
  output_name = "extensions_renderer_resources"
  outputs = [
    "grit/extensions_renderer_resources.h",
    "extensions_renderer_resources.pak",
  ]
  grit_flags = [
    "-E",
    "mojom_root=" + rebase_path(root_gen_dir, root_build_dir),
  ]
  deps = [
    "//net/interfaces:interfaces_js",
    "//url/mojom:url_mojom_gurl_js",
    "//url/mojom:url_mojom_origin_js",
  ]
}

cast_source_set("renderer") {
  sources = [
    "cast_content_renderer_client.cc",
    "cast_content_renderer_client.h",
    "cast_media_load_deferrer.cc",
    "cast_media_load_deferrer.h",
  ]

  public_deps = [
    "//chromecast/renderer/media",
  ]

  if (chromecast_branding == "public") {
    sources += [ "cast_content_renderer_client_simple.cc" ]
  }

  if (use_playready) {
    configs += [ "//chromecast:playready_config" ]
  }

  deps = [
    "//base",
    "//chromecast:chromecast_buildflags",
    "//chromecast/base",
    "//chromecast/common",
    "//chromecast/common/media",
    "//chromecast/common/mojom",
    "//chromecast/media",
    "//components/network_hints/renderer",
    "//content/public/common",
    "//content/public/renderer",
    "//crypto",
    "//ipc",
    "//media",
    "//services/service_manager/public/cpp",
  ]

  if (!is_fuchsia) {
    # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
    deps += [ "//chromecast/crash" ]
  }

  if (!is_android) {
    sources += [
      "memory_pressure_observer_impl.cc",
      "memory_pressure_observer_impl.h",
    ]

    deps += [
      "//chromecast/common/mojom",
      "//mojo/public/cpp/bindings",
    ]
  }

  if (enable_chromecast_extensions) {
    sources += [
      "cast_extensions_dispatcher_delegate.cc",
      "cast_extensions_dispatcher_delegate.g",
      "cast_extensions_renderer_client.cc",
      "cast_extensions_renderer_client.h",
      "extensions/automation_ax_tree_wrapper.cc",
      "extensions/automation_ax_tree_wrapper.h",
      "extensions/automation_internal_custom_bindings.cc",
      "extensions/automation_internal_custom_bindings.h",
    ]

    deps += [
      "//chromecast/common",
      "//chromecast/common/extensions_api:api",
      "//chromecast/renderer:extensions_resources",
      "//components/version_info:version_info",
      "//extensions/common",
      "//extensions/renderer",
      "//gin:gin",
    ]
  }
}
