# 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("//build/config/ui.gni")
import("//chromecast/chromecast.gni")
import("//media/media_options.gni")
import("//services/service_manager/public/service_manifest.gni")
import("//testing/test.gni")
import("//tools/grit/grit_rule.gni")

if (is_android) {
  import("//build/config/android/rules.gni")
}

cast_source_set("browser") {
  sources = [
    "application_media_capabilities.cc",
    "application_media_capabilities.h",
    "bluetooth/cast_bluetooth_chooser.cc",
    "bluetooth/cast_bluetooth_chooser.h",
    "cast_browser_context.cc",
    "cast_browser_context.h",
    "cast_browser_main_parts.cc",
    "cast_browser_main_parts.h",
    "cast_browser_process.cc",
    "cast_browser_process.h",
    "cast_content_browser_client.cc",
    "cast_content_browser_client.h",
    "cast_download_manager_delegate.cc",
    "cast_download_manager_delegate.h",
    "cast_gesture_dispatcher.cc",
    "cast_gesture_dispatcher.h",
    "cast_http_user_agent_settings.cc",
    "cast_http_user_agent_settings.h",
    "cast_media_blocker.cc",
    "cast_media_blocker.h",
    "cast_navigation_ui_data.cc",
    "cast_navigation_ui_data.h",
    "cast_net_log.cc",
    "cast_net_log.h",
    "cast_network_delegate.cc",
    "cast_network_delegate.h",
    "cast_network_request_interceptor.cc",
    "cast_network_request_interceptor.h",
    "cast_permission_manager.cc",
    "cast_permission_manager.h",
    "cast_quota_permission_context.cc",
    "cast_quota_permission_context.h",
    "cast_resource_dispatcher_host_delegate.cc",
    "cast_resource_dispatcher_host_delegate.h",
    "cast_web_contents_manager.cc",
    "cast_web_contents_manager.h",
    "cast_web_view_default.cc",
    "cast_web_view_default.h",
    "cast_web_view_factory.cc",
    "cast_web_view_factory.h",
    "devtools/cast_devtools_manager_delegate.cc",
    "devtools/cast_devtools_manager_delegate.h",
    "devtools/remote_debugging_server.cc",
    "devtools/remote_debugging_server.h",
    "lru_renderer_cache.cc",
    "lru_renderer_cache.h",
    "media/media_caps_impl.cc",
    "media/media_caps_impl.h",
    "media/supported_codec_finder.cc",
    "media/supported_codec_finder.h",
    "metrics/cast_metrics_prefs.cc",
    "metrics/cast_metrics_prefs.h",
    "metrics/cast_metrics_service_client.cc",
    "metrics/cast_metrics_service_client.h",
    "metrics/cast_stability_metrics_provider.cc",
    "metrics/cast_stability_metrics_provider.h",
    "network_context_manager.cc",
    "network_context_manager.h",
    "pref_service_helper.cc",
    "pref_service_helper.h",
    "renderer_config.cc",
    "renderer_config.h",
    "renderer_prelauncher.cc",
    "renderer_prelauncher.h",
    "service/cast_service_simple.cc",
    "service/cast_service_simple.h",
    "tts/tts_controller.h",
    "tts/tts_controller_impl.cc",
    "tts/tts_controller_impl.h",
    "tts/tts_platform.cc",
    "tts/tts_platform.h",
    "tts/tts_platform_stub.cc",
    "tts/tts_platform_stub.h",
    "url_request_context_factory.cc",
    "url_request_context_factory.h",
  ]

  if (chromecast_branding == "public") {
    sources += [
      "cast_browser_main_parts_simple.cc",
      "cast_content_browser_client_simple.cc",
      "cast_network_request_interceptor_simple.cc",
      "pref_service_helper_simple.cc",
    ]
  }

  public_deps = [
    ":public",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//cc",
    "//chromecast:chromecast_buildflags",
    "//chromecast/app:cast_crash_client",
    "//chromecast/app:chromecast_settings",
    "//chromecast/app:resources",
    "//chromecast/base",
    "//chromecast/base:cast_sys_info",
    "//chromecast/base:cast_version",
    "//chromecast/browser:resources",
    "//chromecast/browser/bluetooth/public/mojom",
    "//chromecast/common",
    "//chromecast/common/media",
    "//chromecast/common/mojom",
    "//chromecast/graphics",
    "//chromecast/media",
    "//chromecast/media:libcast_media",
    "//chromecast/media/base:video_plane_controller",
    "//chromecast/media/service",
    "//chromecast/net",
    "//chromecast/service",
    "//components/download/public/common:public",
    "//components/metrics",
    "//components/metrics:gpu",
    "//components/metrics:net",

    # TODO(gfhuang): Eliminate this dependency if ScreenInfoMetricsProvider
    # isn't needed. crbug.com/541577
    "//components/metrics:ui",
    "//components/network_hints/browser",
    "//components/network_session_configurator/common",
    "//components/prefs",
    "//components/proxy_config",
    "//components/viz/service",
    "//content",
    "//content/public/browser",
    "//content/public/common",
    "//content/public/common:service_names",
    "//content/public/utility",
    "//device/bluetooth",
    "//gpu",
    "//ipc",
    "//media",
    "//net",
    "//services/network:network_service",
    "//ui/base",
    "//ui/compositor",
    "//ui/display",
    "//ui/events",
    "//ui/events/devices",
    "//ui/gl",
  ]

  if (is_android) {
    sources += [
      "android/cast_content_window_android.cc",
      "android/cast_content_window_android.h",
      "android/cast_metrics_helper_android.cc",
      "android/cast_web_contents_surface_helper.cc",
      "android/cast_web_contents_surface_helper.h",
    ]
    deps += [
      ":jni_headers",
      "//components/cdm/browser",
      "//components/embedder_support/android:view",
    ]
  } else {
    sources += [
      "cast_display_configurator.cc",
      "cast_display_configurator.h",
      "cast_touch_device_manager.cc",
      "cast_touch_device_manager.h",
    ]

    deps += [
      "//mojo/public/cpp/bindings",
      "//ui/aura",
    ]
  }

  if (is_linux) {
    sources += [
      "cast_memory_pressure_monitor.cc",
      "cast_memory_pressure_monitor.h",
      "memory_pressure_controller_impl.cc",
      "memory_pressure_controller_impl.h",
      "metrics/external_metrics.cc",
      "metrics/external_metrics.h",
    ]

    deps += [
      "//components/metrics:serialization",
      "//third_party/fontconfig",
    ]
  }

  if (use_aura) {
    sources += [
      "cast_content_window_aura.cc",
      "cast_content_window_aura.h",
    ]
  }

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

  if (use_ozone) {
    deps += [ "//ui/ozone" ]
  }

  if (enable_mojo_media) {
    deps += [
      "//media/mojo/interfaces:constants",
      "//media/mojo/services",
    ]
  }

  if (enable_chromecast_extensions) {
    sources += [
      "cast_extension_host.cc",
      "cast_extension_host.h",
      "cast_extension_message_filter.cc",
      "cast_extension_message_filter.h",
      "cast_web_view_extension.cc",
      "cast_web_view_extension.h",
      "extension_request_protocol_handler.cc",
      "extension_request_protocol_handler.h",
      "extensions/api/accessibility_private/accessibility_extension_api.cc",
      "extensions/api/accessibility_private/accessibility_extension_api.h",
      "extensions/api/automation_internal/automation_event_router.cc",
      "extensions/api/automation_internal/automation_event_router.h",
      "extensions/api/automation_internal/automation_internal_api.cc",
      "extensions/api/automation_internal/automation_internal_api.h",
      "extensions/api/bookmarks/bookmarks_api.cc",
      "extensions/api/bookmarks/bookmarks_api.h",
      "extensions/api/braille_display_private/braille_display_private_api.cc",
      "extensions/api/braille_display_private/braille_display_private_api.h",
      "extensions/api/history/history_api.cc",
      "extensions/api/history/history_api.h",
      "extensions/api/i18n/i18n_api.cc",
      "extensions/api/i18n/i18n_api.h",
      "extensions/api/identity/identity_api.cc",
      "extensions/api/identity/identity_api.h",
      "extensions/api/module/module.cc",
      "extensions/api/module/module.h",
      "extensions/api/notifications/notifications_api.cc",
      "extensions/api/notifications/notifications_api.h",
      "extensions/api/tabs/tabs_api.cc",
      "extensions/api/tabs/tabs_api.h",
      "extensions/api/tabs/tabs_constants.cc",
      "extensions/api/tabs/tabs_constants.h",
      "extensions/api/tts/tts_extension_api.cc",
      "extensions/api/tts/tts_extension_api.h",
      "extensions/api/tts/tts_extension_api_constants.cc",
      "extensions/api/tts/tts_extension_api_constants.h",
      "extensions/cast_display_info_provider.cc",
      "extensions/cast_display_info_provider.h",
      "extensions/cast_extension_host_delegate.cc",
      "extensions/cast_extension_host_delegate.h",
      "extensions/cast_extension_system.cc",
      "extensions/cast_extension_system.h",
      "extensions/cast_extension_system_factory.cc",
      "extensions/cast_extension_system_factory.h",
      "extensions/cast_extension_web_contents_observer.cc",
      "extensions/cast_extension_web_contents_observer.h",
      "extensions/cast_extensions_api_client.cc",
      "extensions/cast_extensions_api_client.h",
      "extensions/cast_extensions_browser_client.cc",
      "extensions/cast_extensions_browser_client.h",
      "extensions/cast_prefs.cc",
      "extensions/cast_prefs.h",
      "extensions/stub_storage_monitor.cc",
    ]
    if (use_aura) {
      sources += [
        "accessibility/accessibility_manager.cc",
        "accessibility/accessibility_manager.h",
        "accessibility/touch_exploration_controller.cc",
        "accessibility/touch_exploration_controller.h",
        "accessibility/touch_exploration_manager.cc",
        "accessibility/touch_exploration_manager.h",
        "cast_web_view_extension.h",
        "cast_web_view_extension.h",
        "ui/aura/accessibility/automation_manager_aura.cc",
        "ui/aura/accessibility/automation_manager_aura.h",
        "ui/aura/accessibility/ax_root_obj_wrapper.cc",
        "ui/aura/accessibility/ax_root_obj_wrapper.h",
        "ui/aura/accessibility/ax_tree_source_aura.cc",
        "ui/aura/accessibility/ax_tree_source_aura.h",
      ]
    }

    deps += [
      "//chromecast/common/extensions_api:api_registration_bundle_generator_registration",
      "//chromecast/common/extensions_api:api_schema_generator",
      "//components/guest_view/browser",
      "//components/keyed_service/content",
      "//components/pref_registry",
      "//components/storage_monitor",
      "//components/user_prefs:user_prefs",
      "//components/version_info",
      "//components/zoom",
      "//extensions/browser",
      "//extensions/common",
      "//extensions/common/api",
      "//google_apis:google_apis",
      "//ui/events:gesture_detection",
      "//ui/views:views",
      "//ui/wm/public:public",
    ]
  }

  configs += [ "//media/audio:platform_config" ]
}

# Lightweight target for Cast interfaces that wrap //content/public/browser.
# This target should only include interfaces which are required for unit tests.
cast_source_set("public") {
  sources = [
    "cast_content_window.h",
    "cast_web_view.cc",
    "cast_web_view.h",
  ]

  # Need to expose this so that internal public_configs are propagated.
  public_deps = [
    "//content/public/browser",
  ]

  deps = [
    "//base",
    "//chromecast/graphics",
    "//content",
    "//ui/events",
    "//url",
  ]
}

# This target generates an "overlay" interface spec, allowing the Cast build to
# declare specific behavior and requirements for the "content_browser" service.
# This is accomplished by generating a JSON file, which is packed into
# cast_shell.pak, and loaded at runtime. This can be used to host additional
# interfaces in "content_browser".
#
# NOTE: Do not add packaged_services here! packaged_services should instead be
# added to "cast_content_packaged_services_manifest_overlay" below or
# its internal counterpart. Please see that target for more details.
service_manifest("cast_content_browser_manifest_overlay") {
  source = "cast_content_browser_manifest_overlay.json"

  if (chromecast_branding != "public") {
    overlays = [ "//chromecast/internal/shell/browser:cast_content_browser_internal_manifest_overlay" ]
  }
}

# This target generates an "overlay" interface spec, allowing the Cast build to
# declare specific behavior and requirements for the "content_renderer" service.
# This is accomplished by generating a JSON file, which is packed into
# cast_shell.pak, and loaded at runtime. This can be used to host additional
# interfaces in "content_renderer".
service_manifest("cast_content_renderer_manifest_overlay") {
  source = "cast_content_renderer_manifest_overlay.json"
}

# This target is for packaged services that will run in the main (browser)
# process. To host an embedded service, add the service's manifest target to the
# list of "packaged_services" in this target, like so:
#
#   package_services += [ "//path/to/foo/service:foo_manifest" ]
#
# You must also register the "foo" service with the content client. See
# CastContentBrowserClient::RegisterInProcessServices() for details.
#
# NOTE: If your service's manifest is in chromecast/internal, do not add it
# here! Instead, add the service to the internal counterpart, which is
# referenced below.
service_manifest("cast_content_packaged_services_manifest_overlay") {
  source = "cast_content_packaged_services_manifest_overlay.json"

  packaged_services = [ "//media/mojo/services:media_manifest" ]

  if (chromecast_branding != "public") {
    overlays = [ "//chromecast/internal/shell/browser:cast_content_packaged_services_internal_manifest_overlay" ]
  }
}

grit("resources") {
  visibility = [
    ":browser",
    "//chromecast:cast_shell_pak",
  ]
  source = "cast_browser_resources.grd"
  output_dir = "$root_gen_dir/chromecast/browser"
  outputs = [
    "grit/cast_browser_resources.h",
    "cast_browser_resources.pak",
  ]

  deps = [
    ":cast_content_browser_manifest_overlay",
    ":cast_content_packaged_services_manifest_overlay",
    ":cast_content_renderer_manifest_overlay",
  ]
}

cast_source_set("test_support") {
  testonly = true
  sources = [
    "test/cast_browser_test.cc",
    "test/cast_browser_test.h",
  ]

  public_deps = [
    ":browser",
    "//content/test:test_support",
  ]

  deps = [
    "//base",
    "//chromecast/base",
    "//components/prefs:test_support",
    "//content/public/browser",
    "//content/public/common",
    "//testing/gtest",
  ]
}

cast_source_set("browsertests") {
  testonly = true
  sources = [
    "cast_gesture_dispatcher_test.cc",
    "cast_media_blocker_browsertest.cc",
    "renderer_prelauncher_test.cc",
    "test/cast_features_browsertest.cc",
    "test/cast_navigation_browsertest.cc",
  ]

  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  deps = [
    ":test_support",
    "//chromecast:chromecast_buildflags",
    "//chromecast/base",
    "//chromecast/base:chromecast_switches",
    "//chromecast/base/metrics",
    "//components/prefs",
    "//media:test_support",
  ]
}

cast_source_set("unittests") {
  testonly = true

  sources = [
    "bluetooth/cast_bluetooth_chooser_unittest.cc",
    "cast_media_blocker_unittest.cc",
    "cast_network_delegate_unittest.cc",
    "cast_touch_device_manager_unittest.cc",
    "devtools/cast_devtools_manager_delegate_unittest.cc",
    "lru_renderer_cache_test.cc",
    "network_context_manager_unittest.cc",
    "renderer_config_unittest.cc",
  ]

  deps = [
    ":browser",
    "//base",
    "//chromecast/base",
    "//content/public/browser",
    "//content/test:test_support",
    "//net:test_support",
    "//services/network:test_support",
    "//ui/events/devices:devices",
    "//ui/gl:test_support",
  ]

  if (enable_chromecast_extensions && use_aura) {
    sources += [ "accessibility/touch_exploration_controller_unittest.cc" ]
    deps += [
      "//ui/aura:test_support",
      "//ui/events:test_support",
    ]
  }
}

if (is_android) {
  generate_jni("jni_headers") {
    sources = [
      "android/apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java",
      "android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java",
      "android/apk/src/org/chromium/chromecast/shell/CastMetricsHelper.java",
      "android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroid.java",
      "android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java",
    ]

    if (is_android_things_non_public) {
      sources += [ "android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java" ]
    }

    jni_package = "chromecast"
  }
}
