# Copyright 2014 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/features.gni")
import("//build/config/jumbo.gni")
import("//chrome/common/features.gni")
import("//components/nacl/features.gni")
import("//components/offline_pages/buildflags/features.gni")
import("//components/spellcheck/spellcheck_build_features.gni")
import("//extensions/buildflags/buildflags.gni")
import("//media/media_options.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//third_party/widevine/cdm/widevine.gni")
import("//tools/grit/grit_rule.gni")

grit("resources") {
  source = "resources/renderer_resources.grd"
  defines = chrome_grit_defines
  output_dir = "$root_gen_dir/chrome"
  output_name = "renderer_resources"
  outputs = [
    "grit/renderer_resources.h",
    "renderer_resources_100_percent.pak",
    "renderer_resources_200_percent.pak",
    "renderer_resources_300_percent.pak",
  ]
  grit_flags = [
    "-E",
    "mojom_root=" + rebase_path(root_gen_dir, root_build_dir),
  ]
  deps = [
    "//chrome/common/media_router/mojo:media_controller_js",
    "//chrome/common/media_router/mojo:media_router_js",
    "//services/network/public/mojom:mojom_js",
    "//url/mojom:url_mojom_gurl_js",
    "//url/mojom:url_mojom_origin_js",
  ]
  if (is_chromeos) {
    deps += [ "//chromeos/services/ime/public/mojom:mojom_js" ]
  }
}

jumbo_static_library("renderer") {
  sources = [
    "benchmarking_extension.cc",
    "benchmarking_extension.h",
    "chrome_content_renderer_client.cc",
    "chrome_content_renderer_client.h",
    "chrome_render_frame_observer.cc",
    "chrome_render_frame_observer.h",
    "chrome_render_thread_observer.cc",
    "chrome_render_thread_observer.h",
    "chrome_render_view_observer.cc",
    "chrome_render_view_observer.h",
    "content_settings_observer.cc",
    "content_settings_observer.h",
    "custom_menu_commands.h",
    "instant_restricted_id_cache.h",
    "loadtimes_extension_bindings.cc",
    "loadtimes_extension_bindings.h",
    "media/chrome_key_systems.cc",
    "media/chrome_key_systems.h",
    "media/chrome_key_systems_provider.cc",
    "media/chrome_key_systems_provider.h",
    "media/chrome_webrtc_log_message_delegate.cc",
    "media/chrome_webrtc_log_message_delegate.h",
    "media/flash_embed_rewrite.cc",
    "media/flash_embed_rewrite.h",
    "media/webrtc_logging_message_filter.cc",
    "media/webrtc_logging_message_filter.h",
    "net/net_error_helper.cc",
    "net/net_error_helper.h",
    "net/net_error_helper_core.cc",
    "net/net_error_helper_core.h",
    "net/net_error_page_controller.cc",
    "net/net_error_page_controller.h",
    "net_benchmarking_extension.cc",
    "net_benchmarking_extension.h",
    "page_load_metrics/metrics_render_frame_observer.cc",
    "page_load_metrics/metrics_render_frame_observer.h",
    "page_load_metrics/page_resource_data_use.cc",
    "page_load_metrics/page_resource_data_use.h",
    "page_load_metrics/page_timing_metrics_sender.cc",
    "page_load_metrics/page_timing_metrics_sender.h",
    "page_load_metrics/page_timing_sender.h",
    "plugins/non_loadable_plugin_placeholder.cc",
    "plugins/non_loadable_plugin_placeholder.h",
    "plugins/pdf_plugin_placeholder.cc",
    "plugins/pdf_plugin_placeholder.h",
    "plugins/plugin_uma.cc",
    "plugins/plugin_uma.h",
    "prerender/prerender_dispatcher.cc",
    "prerender/prerender_dispatcher.h",
    "prerender/prerender_extra_data.cc",
    "prerender/prerender_extra_data.h",
    "prerender/prerender_helper.cc",
    "prerender/prerender_helper.h",
    "prerender/prerenderer_client.cc",
    "prerender/prerenderer_client.h",
    "sandbox_status_extension_android.cc",
    "sandbox_status_extension_android.h",
    "security_filter_peer.cc",
    "security_filter_peer.h",
    "security_interstitials/security_interstitial_page_controller.cc",
    "security_interstitials/security_interstitial_page_controller.h",
    "supervised_user/supervised_user_error_page_controller.cc",
    "supervised_user/supervised_user_error_page_controller.h",
    "tts_dispatcher.cc",
    "tts_dispatcher.h",
    "url_loader_throttle_provider_impl.cc",
    "url_loader_throttle_provider_impl.h",
    "web_apps.cc",
    "web_apps.h",
    "websocket_handshake_throttle_provider_impl.cc",
    "websocket_handshake_throttle_provider_impl.h",
    "worker_content_settings_client.cc",
    "worker_content_settings_client.h",
  ]

  defines = []

  deps = [
    "//chrome:resources",
    "//chrome:strings",
    "//chrome/common",
    "//chrome/common:mojo_bindings",
    "//chrome/common:search_mojom",
    "//chrome/common/net",
    "//components/autofill/content/renderer",
    "//components/cdm/renderer",
    "//components/content_capture/renderer",
    "//components/contextual_search/content:renderer",
    "//components/data_reduction_proxy/content/common",
    "//components/data_reduction_proxy/content/renderer",
    "//components/data_reduction_proxy/core/common",
    "//components/dom_distiller/content/renderer",
    "//components/network_hints/renderer",
    "//components/omnibox/common",
    "//components/page_image_annotation/content/renderer",
    "//components/plugins/renderer",
    "//components/rappor/public/interfaces",
    "//components/resources:components_resources",
    "//components/safe_browsing/common:interfaces",
    "//components/safe_browsing/renderer:throttles",
    "//components/security_interstitials/core:",
    "//components/security_interstitials/core/common/interfaces:",
    "//components/spellcheck:buildflags",
    "//components/startup_metric_utils/common:interfaces",
    "//components/subresource_filter/content/renderer",
    "//components/task_scheduler_util",
    "//components/translate/content/renderer",
    "//components/translate/core/common",
    "//components/translate/core/language_detection",
    "//components/visitedlink/renderer",
    "//components/web_cache/renderer",
    "//content/app/resources",
    "//content/app/strings",
    "//content/public/common",
    "//content/public/renderer",
    "//extensions/buildflags",
    "//media",
    "//media:media_buildflags",
    "//media/capture",
    "//mojo/public/cpp/bindings",
    "//net",
    "//ppapi/buildflags",
    "//printing/buildflags",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/metrics/public/mojom",
    "//services/service_manager/public/cpp",
    "//skia",
    "//storage/common",
    "//third_party/blink/public:blink",
    "//third_party/blink/public:resources",
    "//third_party/blink/public:scaled_resources",
    "//third_party/icu",
    "//third_party/re2",
    "//third_party/widevine/cdm:buildflags",
    "//ui/surface",
    "//v8:v8",
  ]

  data_deps = [
    "//tools/v8_context_snapshot",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]

  if (enable_nacl) {
    deps += [
      "//components/nacl/loader",
      "//components/nacl/renderer",
    ]
  }

  if (enable_plugins) {
    sources += [
      "pepper/chrome_renderer_pepper_host_factory.cc",
      "pepper/chrome_renderer_pepper_host_factory.h",
      "pepper/pepper_flash_drm_renderer_host.cc",
      "pepper/pepper_flash_drm_renderer_host.h",
      "pepper/pepper_flash_font_file_host.cc",
      "pepper/pepper_flash_font_file_host.h",
      "pepper/pepper_flash_fullscreen_host.cc",
      "pepper/pepper_flash_fullscreen_host.h",
      "pepper/pepper_flash_menu_host.cc",
      "pepper/pepper_flash_menu_host.h",
      "pepper/pepper_flash_renderer_host.cc",
      "pepper/pepper_flash_renderer_host.h",
      "pepper/pepper_helper.cc",
      "pepper/pepper_helper.h",
      "pepper/pepper_shared_memory_message_filter.cc",
      "pepper/pepper_shared_memory_message_filter.h",
      "pepper/pepper_uma_host.cc",
      "pepper/pepper_uma_host.h",
      "plugins/chrome_plugin_placeholder.cc",
      "plugins/chrome_plugin_placeholder.h",
      "plugins/plugin_preroller.cc",
      "plugins/plugin_preroller.h",
      "plugins/power_saver_info.cc",
      "plugins/power_saver_info.h",
    ]
    deps += [
      "//components/pdf/renderer",
      "//components/strings",
      "//media:media_buildflags",
      "//ppapi/host",
      "//ppapi/proxy",
      "//ppapi/proxy:ipc",
      "//ppapi/shared_impl",
    ]

    if (is_linux) {
      deps += [ "//components/services/font/public/cpp" ]
    }
  }

  if (enable_widevine_cdm_component) {
    deps += [ "//third_party/widevine/cdm:headers" ]
  }

  if (safe_browsing_mode != 0) {
    deps += [
      "//components/safe_browsing/common:common",
      "//components/safe_browsing/renderer",
    ]
    if (safe_browsing_mode == 1) {
      sources += [
        "safe_browsing/feature_extractor_clock.cc",
        "safe_browsing/feature_extractor_clock.h",
        "safe_browsing/features.cc",
        "safe_browsing/features.h",
        "safe_browsing/murmurhash3_util.cc",
        "safe_browsing/murmurhash3_util.h",
        "safe_browsing/phishing_classifier.cc",
        "safe_browsing/phishing_classifier.h",
        "safe_browsing/phishing_classifier_delegate.cc",
        "safe_browsing/phishing_classifier_delegate.h",
        "safe_browsing/phishing_dom_feature_extractor.cc",
        "safe_browsing/phishing_dom_feature_extractor.h",
        "safe_browsing/phishing_term_feature_extractor.cc",
        "safe_browsing/phishing_term_feature_extractor.h",
        "safe_browsing/phishing_url_feature_extractor.cc",
        "safe_browsing/phishing_url_feature_extractor.h",
        "safe_browsing/scorer.cc",
        "safe_browsing/scorer.h",
      ]
      deps += [
        "//chrome/common/safe_browsing:proto",
        "//components/safe_browsing:csd_proto",
        "//third_party/smhasher:murmurhash3",
      ]
    }
  }

  if (enable_extensions) {
    sources += [
      "extensions/app_bindings.cc",
      "extensions/app_bindings.h",
      "extensions/app_bindings_core.cc",
      "extensions/app_bindings_core.h",
      "extensions/app_hooks_delegate.cc",
      "extensions/app_hooks_delegate.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",
      "extensions/chrome_extensions_dispatcher_delegate.cc",
      "extensions/chrome_extensions_dispatcher_delegate.h",
      "extensions/chrome_extensions_renderer_client.cc",
      "extensions/chrome_extensions_renderer_client.h",
      "extensions/chrome_v8_extension_handler.cc",
      "extensions/chrome_v8_extension_handler.h",
      "extensions/extension_hooks_delegate.cc",
      "extensions/extension_hooks_delegate.h",
      "extensions/extension_localization_peer.cc",
      "extensions/extension_localization_peer.h",
      "extensions/extension_process_policy.cc",
      "extensions/extension_process_policy.h",
      "extensions/media_galleries_custom_bindings.cc",
      "extensions/media_galleries_custom_bindings.h",
      "extensions/notifications_native_handler.cc",
      "extensions/notifications_native_handler.h",
      "extensions/page_capture_custom_bindings.cc",
      "extensions/page_capture_custom_bindings.h",
      "extensions/renderer_permissions_policy_delegate.cc",
      "extensions/renderer_permissions_policy_delegate.h",
      "extensions/resource_request_policy.cc",
      "extensions/resource_request_policy.h",
      "extensions/sync_file_system_custom_bindings.cc",
      "extensions/sync_file_system_custom_bindings.h",
      "extensions/tabs_hooks_delegate.cc",
      "extensions/tabs_hooks_delegate.h",
      "media/cast_ipc_dispatcher.cc",
      "media/cast_ipc_dispatcher.h",
      "media/cast_receiver_audio_valve.cc",
      "media/cast_receiver_audio_valve.h",
      "media/cast_receiver_session.cc",
      "media/cast_receiver_session.h",
      "media/cast_receiver_session_delegate.cc",
      "media/cast_receiver_session_delegate.h",
      "media/cast_rtp_stream.cc",
      "media/cast_rtp_stream.h",
      "media/cast_session.cc",
      "media/cast_session.h",
      "media/cast_session_delegate.cc",
      "media/cast_session_delegate.h",
      "media/cast_threads.cc",
      "media/cast_threads.h",
      "media/cast_transport_ipc.cc",
      "media/cast_transport_ipc.h",
      "media/cast_udp_transport.cc",
      "media/cast_udp_transport.h",
      "resources/extensions/app_custom_bindings.js",
      "resources/extensions/automation_custom_bindings.js",
      "resources/extensions/browser_action_custom_bindings.js",
      "resources/extensions/chrome_setting.js",
      "resources/extensions/content_setting.js",
      "resources/extensions/declarative_content_custom_bindings.js",
      "resources/extensions/easy_unlock_proximity_required.js",
      "resources/extensions/enterprise_platform_keys_custom_bindings.js",
      "resources/extensions/gcm_custom_bindings.js",
      "resources/extensions/identity_custom_bindings.js",
      "resources/extensions/image_writer_private_custom_bindings.js",
      "resources/extensions/input.ime_custom_bindings.js",
      "resources/extensions/notifications_custom_bindings.js",
      "resources/extensions/omnibox_custom_bindings.js",
      "resources/extensions/page_action_custom_bindings.js",
      "resources/extensions/page_capture_custom_bindings.js",
      "resources/extensions/system_indicator_custom_bindings.js",
      "resources/extensions/tts_custom_bindings.js",
      "resources/extensions/tts_engine_custom_bindings.js",
    ]
    deps += [
      # TODO(hclam): See crbug.com/298380 for details.
      # We should isolate the APIs needed by the renderer.
      "//chrome/common/extensions/api",
      "//components/guest_view/renderer",
      "//extensions:extensions_resources",
      "//extensions/renderer",
      "//media/cast:net",
      "//media/cast:receiver",
      "//media/cast:sender",
      "//services/network/public/cpp",
    ]
    public_deps = [
      "//ipc",
    ]
  }
  if (enable_extensions) {
    sources += [
      "extensions/cast_streaming_native_handler.cc",
      "extensions/cast_streaming_native_handler.h",
    ]
  }
  if (enable_spellcheck) {
    deps += [ "//components/spellcheck/renderer:renderer" ]
  }

  if (enable_basic_printing) {
    deps += [
      "//components/printing/renderer",
      "//printing",
    ]
    sources += [
      "printing/chrome_print_render_frame_helper_delegate.cc",
      "printing/chrome_print_render_frame_helper_delegate.h",
    ]
    if (enable_print_preview) {
      sources += [
        "pepper/chrome_pdf_print_client.cc",
        "pepper/chrome_pdf_print_client.h",
      ]
    }
  }

  if (is_win) {
    deps += [ "//third_party/wtl" ]
  }

  if (is_chromeos) {
    sources += [
      "extensions/file_browser_handler_custom_bindings.cc",
      "extensions/file_browser_handler_custom_bindings.h",
      "extensions/file_manager_private_custom_bindings.cc",
      "extensions/file_manager_private_custom_bindings.h",
      "extensions/platform_keys_natives.cc",
      "extensions/platform_keys_natives.h",
      "resources/extensions/certificate_provider_custom_bindings.js",
      "resources/extensions/file_browser_handler_custom_bindings.js",
      "resources/extensions/file_manager_private_custom_bindings.js",
      "resources/extensions/file_system_provider_custom_bindings.js",
    ]
  }

  if (!is_android) {
    sources += [
      "searchbox/search_bouncer.cc",
      "searchbox/search_bouncer.h",
      "searchbox/searchbox.cc",
      "searchbox/searchbox.h",
      "searchbox/searchbox_extension.cc",
      "searchbox/searchbox_extension.h",
    ]
  }

  if (is_android) {
    sources += [
      "net/available_offline_content_helper.cc",
      "net/available_offline_content_helper.h",
      "net/page_auto_fetcher_helper_android.cc",
      "net/page_auto_fetcher_helper_android.h",
    ]
  }

  if (is_chromeos) {
    sources += [
      "chromeos_delayed_callback_group.cc",
      "chromeos_delayed_callback_group.h",
      "chromeos_merge_session_loader_throttle.cc",
      "chromeos_merge_session_loader_throttle.h",
    ]
  }
}

jumbo_static_library("test_support") {
  testonly = true
  visibility = [ "//chrome/test:test_support" ]

  sources = [
    "chrome_mock_render_thread.cc",
    "chrome_mock_render_thread.h",
    "media/mock_webrtc_logging_message_filter.cc",
    "media/mock_webrtc_logging_message_filter.h",
    "safe_browsing/mock_feature_extractor_clock.cc",
    "safe_browsing/mock_feature_extractor_clock.h",
    "safe_browsing/test_utils.cc",
    "safe_browsing/test_utils.h",
  ]

  deps = [
    ":renderer",
    "//chrome/common:search_mojom",
    "//content/test:test_support",
    "//extensions/buildflags",
    "//testing/gmock",
    "//testing/gtest",
  ]

  if (is_android) {
    sources -= [
      "safe_browsing/mock_feature_extractor_clock.cc",
      "safe_browsing/mock_feature_extractor_clock.h",
    ]
  }
}
