# 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/ui.gni")
import("//media/media_options.gni")
import("//ppapi/features/features.gni")
import("//printing/features/features.gni")
import("//third_party/webrtc/build/webrtc.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")

if (is_component_build) {
  link_target_type = "source_set"
} else {
  link_target_type = "static_library"
}
target(link_target_type, "renderer") {
  # Only the public target should depend on this. All other targets (even
  # internal content ones) should depend on the public one.
  visibility = [
    ":for_content_tests",
    "//content/public/renderer:renderer_sources",
  ]

  sources = [
    "accessibility/blink_ax_enum_conversion.cc",
    "accessibility/blink_ax_enum_conversion.h",
    "accessibility/blink_ax_tree_source.cc",
    "accessibility/blink_ax_tree_source.h",
    "accessibility/render_accessibility_impl.cc",
    "accessibility/render_accessibility_impl.h",
    "android/address_detector.cc",
    "android/address_detector.h",
    "android/app_web_message_port_client.cc",
    "android/app_web_message_port_client.h",
    "android/content_detector.cc",
    "android/content_detector.h",
    "android/disambiguation_popup_helper.cc",
    "android/disambiguation_popup_helper.h",
    "android/email_detector.cc",
    "android/email_detector.h",
    "android/phone_number_detector.cc",
    "android/phone_number_detector.h",
    "android/renderer_date_time_picker.cc",
    "android/renderer_date_time_picker.h",
    "android/synchronous_compositor_filter.cc",
    "android/synchronous_compositor_filter.h",
    "android/synchronous_compositor_frame_sink.cc",
    "android/synchronous_compositor_frame_sink.h",
    "android/synchronous_compositor_proxy.cc",
    "android/synchronous_compositor_proxy.h",
    "android/synchronous_compositor_registry.h",
    "background_sync/background_sync_client_impl.cc",
    "background_sync/background_sync_client_impl.h",
    "bluetooth/bluetooth_type_converters.cc",
    "bluetooth/bluetooth_type_converters.h",
    "bluetooth/web_bluetooth_impl.cc",
    "bluetooth/web_bluetooth_impl.h",
    "browser_plugin/browser_plugin.cc",
    "browser_plugin/browser_plugin.h",
    "browser_plugin/browser_plugin_manager.cc",
    "browser_plugin/browser_plugin_manager.h",
    "cache_storage/cache_storage_dispatcher.cc",
    "cache_storage/cache_storage_dispatcher.h",
    "cache_storage/cache_storage_message_filter.cc",
    "cache_storage/cache_storage_message_filter.h",
    "cache_storage/webserviceworkercachestorage_impl.cc",
    "cache_storage/webserviceworkercachestorage_impl.h",
    "categorized_worker_pool.cc",
    "categorized_worker_pool.h",
    "child_frame_compositing_helper.cc",
    "child_frame_compositing_helper.h",
    "clipboard_utils.cc",
    "clipboard_utils.h",
    "context_menu_params_builder.cc",
    "context_menu_params_builder.h",
    "cursor_utils.cc",
    "cursor_utils.h",
    "device_sensors/device_light_event_pump.cc",
    "device_sensors/device_light_event_pump.h",
    "device_sensors/device_motion_event_pump.cc",
    "device_sensors/device_motion_event_pump.h",
    "device_sensors/device_orientation_event_pump.cc",
    "device_sensors/device_orientation_event_pump.h",
    "device_sensors/device_sensor_event_pump.h",
    "devtools/devtools_agent.cc",
    "devtools/devtools_agent.h",
    "devtools/devtools_agent_filter.cc",
    "devtools/devtools_agent_filter.h",
    "devtools/devtools_client.cc",
    "devtools/devtools_client.h",
    "devtools/devtools_cpu_throttler.cc",
    "devtools/devtools_cpu_throttler.h",
    "devtools/lock_free_circular_queue.h",
    "devtools/render_widget_screen_metrics_emulator.cc",
    "devtools/render_widget_screen_metrics_emulator.h",
    "dom_automation_controller.cc",
    "dom_automation_controller.h",
    "dom_storage/dom_storage_cached_area.cc",
    "dom_storage/dom_storage_cached_area.h",
    "dom_storage/dom_storage_dispatcher.cc",
    "dom_storage/dom_storage_dispatcher.h",
    "dom_storage/dom_storage_proxy.h",
    "dom_storage/local_storage_area.cc",
    "dom_storage/local_storage_area.h",
    "dom_storage/local_storage_cached_area.cc",
    "dom_storage/local_storage_cached_area.h",
    "dom_storage/local_storage_cached_areas.cc",
    "dom_storage/local_storage_cached_areas.h",
    "dom_storage/local_storage_namespace.cc",
    "dom_storage/local_storage_namespace.h",
    "dom_storage/webstoragearea_impl.cc",
    "dom_storage/webstoragearea_impl.h",
    "dom_storage/webstoragenamespace_impl.cc",
    "dom_storage/webstoragenamespace_impl.h",
    "drop_data_builder.cc",
    "drop_data_builder.h",
    "effective_connection_type_helper.cc",
    "effective_connection_type_helper.h",
    "fetchers/associated_resource_fetcher_impl.cc",
    "fetchers/associated_resource_fetcher_impl.h",
    "fetchers/manifest_fetcher.cc",
    "fetchers/manifest_fetcher.h",
    "fetchers/multi_resolution_image_resource_fetcher.cc",
    "fetchers/multi_resolution_image_resource_fetcher.h",
    "fetchers/resource_fetcher_impl.cc",
    "fetchers/resource_fetcher_impl.h",
    "frame_blame_context.cc",
    "frame_blame_context.h",
    "gamepad_shared_memory_reader.cc",
    "gamepad_shared_memory_reader.h",
    "gpu/compositor_dependencies.h",
    "gpu/compositor_external_begin_frame_source.cc",
    "gpu/compositor_external_begin_frame_source.h",
    "gpu/compositor_forwarding_message_filter.cc",
    "gpu/compositor_forwarding_message_filter.h",
    "gpu/frame_swap_message_queue.cc",
    "gpu/frame_swap_message_queue.h",
    "gpu/gpu_benchmarking_extension.cc",
    "gpu/gpu_benchmarking_extension.h",
    "gpu/queue_message_swap_promise.cc",
    "gpu/queue_message_swap_promise.h",
    "gpu/render_widget_compositor.cc",
    "gpu/render_widget_compositor.h",
    "gpu/render_widget_compositor_delegate.h",
    "gpu/renderer_compositor_frame_sink.cc",
    "gpu/renderer_compositor_frame_sink.h",
    "gpu/stream_texture_host_android.cc",
    "gpu/stream_texture_host_android.h",
    "history_controller.cc",
    "history_controller.h",
    "history_entry.cc",
    "history_entry.h",
    "history_serialization.cc",
    "history_serialization.h",
    "idle_user_detector.cc",
    "idle_user_detector.h",
    "image_downloader/image_downloader_impl.cc",
    "image_downloader/image_downloader_impl.h",
    "ime_event_guard.cc",
    "ime_event_guard.h",
    "in_process_renderer_thread.cc",
    "in_process_renderer_thread.h",
    "input/input_event_filter.cc",
    "input/input_event_filter.h",
    "input/input_handler_manager.cc",
    "input/input_handler_manager.h",
    "input/input_handler_manager_client.h",
    "input/input_handler_wrapper.cc",
    "input/input_handler_wrapper.h",
    "input/main_thread_event_queue.cc",
    "input/main_thread_event_queue.h",
    "input/main_thread_input_event_filter.cc",
    "input/main_thread_input_event_filter.h",
    "input/render_widget_input_handler.cc",
    "input/render_widget_input_handler.h",
    "input/render_widget_input_handler_delegate.h",
    "internal_document_state_data.cc",
    "internal_document_state_data.h",
    "java/gin_java_bridge_dispatcher.cc",
    "java/gin_java_bridge_dispatcher.h",
    "java/gin_java_bridge_object.cc",
    "java/gin_java_bridge_object.h",
    "java/gin_java_bridge_value_converter.cc",
    "java/gin_java_bridge_value_converter.h",
    "java/gin_java_function_invocation_helper.cc",
    "java/gin_java_function_invocation_helper.h",
    "manifest/manifest_debug_info.cc",
    "manifest/manifest_debug_info.h",
    "manifest/manifest_manager.cc",
    "manifest/manifest_manager.h",
    "manifest/manifest_parser.cc",
    "manifest/manifest_parser.h",
    "manifest/manifest_uma_util.cc",
    "manifest/manifest_uma_util.h",
    "media/android/media_info_loader.cc",
    "media/android/media_info_loader.h",
    "media/android/media_player_renderer_client.cc",
    "media/android/media_player_renderer_client.h",
    "media/android/media_player_renderer_client_factory.cc",
    "media/android/media_player_renderer_client_factory.h",
    "media/android/renderer_media_player_manager.cc",
    "media/android/renderer_media_player_manager.h",
    "media/android/renderer_surface_view_manager.cc",
    "media/android/renderer_surface_view_manager.h",
    "media/android/stream_texture_factory.cc",
    "media/android/stream_texture_factory.h",
    "media/android/stream_texture_wrapper_impl.cc",
    "media/android/stream_texture_wrapper_impl.h",
    "media/android/webmediaplayer_android.cc",
    "media/android/webmediaplayer_android.h",
    "media/audio_decoder.cc",
    "media/audio_decoder.h",
    "media/audio_device_factory.cc",
    "media/audio_device_factory.h",
    "media/audio_input_message_filter.cc",
    "media/audio_input_message_filter.h",
    "media/audio_message_filter.cc",
    "media/audio_message_filter.h",
    "media/audio_renderer_mixer_manager.cc",
    "media/audio_renderer_mixer_manager.h",
    "media/audio_renderer_sink_cache.h",
    "media/audio_renderer_sink_cache_impl.cc",
    "media/audio_renderer_sink_cache_impl.h",
    "media/cdm/pepper_cdm_wrapper.h",
    "media/cdm/pepper_cdm_wrapper_impl.cc",
    "media/cdm/pepper_cdm_wrapper_impl.h",
    "media/cdm/ppapi_decryptor.cc",
    "media/cdm/ppapi_decryptor.h",
    "media/cdm/render_cdm_factory.cc",
    "media/cdm/render_cdm_factory.h",
    "media/media_permission_dispatcher.cc",
    "media/media_permission_dispatcher.h",
    "media/midi_message_filter.cc",
    "media/midi_message_filter.h",
    "media/render_media_client.cc",
    "media/render_media_client.h",
    "media/render_media_log.cc",
    "media/render_media_log.h",
    "media/renderer_gpu_video_accelerator_factories.cc",
    "media/renderer_gpu_video_accelerator_factories.h",
    "media/renderer_webaudiodevice_impl.cc",
    "media/renderer_webaudiodevice_impl.h",
    "media/renderer_webmediaplayer_delegate.cc",
    "media/renderer_webmediaplayer_delegate.h",
    "media/renderer_webmidiaccessor_impl.cc",
    "media/renderer_webmidiaccessor_impl.h",
    "media/video_capture_impl.cc",
    "media/video_capture_impl.h",
    "media/video_capture_impl_manager.cc",
    "media/video_capture_impl_manager.h",
    "media/web_media_element_source_utils.cc",
    "media/web_media_element_source_utils.h",
    "media/webmediaplayer_ms.cc",
    "media/webmediaplayer_ms.h",
    "media/webmediaplayer_ms_compositor.cc",
    "media/webmediaplayer_ms_compositor.h",
    "menu_item_builder.cc",
    "menu_item_builder.h",
    "mojo/blink_interface_provider_impl.cc",
    "mojo/blink_interface_provider_impl.h",
    "mojo/blink_interface_registry_impl.cc",
    "mojo/blink_interface_registry_impl.h",
    "mojo/interface_provider_js_wrapper.cc",
    "mojo/interface_provider_js_wrapper.h",
    "mojo_bindings_controller.cc",
    "mojo_bindings_controller.h",
    "mojo_context_state.cc",
    "mojo_context_state.h",
    "mojo_main_runner.cc",
    "mojo_main_runner.h",
    "mouse_lock_dispatcher.cc",
    "mouse_lock_dispatcher.h",
    "navigation_state_impl.cc",
    "navigation_state_impl.h",
    "net_info_helper.cc",
    "net_info_helper.h",
    "origin_trials/web_trial_token_validator_impl.cc",
    "origin_trials/web_trial_token_validator_impl.h",
    "peripheral_content_heuristic.cc",
    "peripheral_content_heuristic.h",
    "presentation/presentation_connection_client.cc",
    "presentation/presentation_connection_client.h",
    "presentation/presentation_dispatcher.cc",
    "presentation/presentation_dispatcher.h",
    "push_messaging/push_messaging_dispatcher.cc",
    "push_messaging/push_messaging_dispatcher.h",
    "render_frame_impl.cc",
    "render_frame_impl.h",
    "render_frame_proxy.cc",
    "render_frame_proxy.h",
    "render_process.h",
    "render_process_impl.cc",
    "render_process_impl.h",
    "render_thread_impl.cc",
    "render_thread_impl.h",
    "render_view_impl.cc",
    "render_view_impl.h",
    "render_view_impl_android.cc",
    "render_view_linux.cc",
    "render_view_win.cc",
    "render_widget.cc",
    "render_widget.h",
    "render_widget_fullscreen.cc",
    "render_widget_fullscreen.h",
    "render_widget_mouse_lock_dispatcher.cc",
    "render_widget_mouse_lock_dispatcher.h",
    "render_widget_owner_delegate.h",
    "renderer_blink_platform_impl.cc",
    "renderer_blink_platform_impl.h",
    "renderer_clipboard_delegate.cc",
    "renderer_clipboard_delegate.h",
    "renderer_main.cc",
    "renderer_main_platform_delegate.h",
    "renderer_main_platform_delegate_android.cc",
    "renderer_main_platform_delegate_linux.cc",
    "renderer_main_platform_delegate_mac.mm",
    "renderer_main_platform_delegate_win.cc",
    "renderer_webapplicationcachehost_impl.cc",
    "renderer_webapplicationcachehost_impl.h",
    "renderer_webcolorchooser_impl.cc",
    "renderer_webcolorchooser_impl.h",
    "renderer_webcookiejar_impl.cc",
    "renderer_webcookiejar_impl.h",
    "resizing_mode_selector.cc",
    "resizing_mode_selector.h",
    "sad_plugin.cc",
    "sad_plugin.h",
    "savable_resources.cc",
    "savable_resources.h",
    "scheduler/resource_dispatch_throttler.cc",
    "scheduler/resource_dispatch_throttler.h",
    "screen_orientation/screen_orientation_dispatcher.cc",
    "screen_orientation/screen_orientation_dispatcher.h",
    "screen_orientation/screen_orientation_observer.cc",
    "screen_orientation/screen_orientation_observer.h",
    "service_worker/embedded_worker_devtools_agent.cc",
    "service_worker/embedded_worker_devtools_agent.h",
    "service_worker/embedded_worker_dispatcher.cc",
    "service_worker/embedded_worker_dispatcher.h",
    "service_worker/embedded_worker_instance_client_impl.cc",
    "service_worker/embedded_worker_instance_client_impl.h",
    "service_worker/service_worker_context_client.cc",
    "service_worker/service_worker_context_client.h",
    "service_worker/service_worker_context_message_filter.cc",
    "service_worker/service_worker_context_message_filter.h",
    "service_worker/service_worker_type_util.cc",
    "service_worker/service_worker_type_util.h",
    "shared_memory_seqlock_reader.cc",
    "shared_memory_seqlock_reader.h",
    "shared_worker/embedded_shared_worker_content_settings_client_proxy.cc",
    "shared_worker/embedded_shared_worker_content_settings_client_proxy.h",
    "shared_worker/embedded_shared_worker_stub.cc",
    "shared_worker/embedded_shared_worker_stub.h",
    "shared_worker_repository.cc",
    "shared_worker_repository.h",
    "skia_benchmarking_extension.cc",
    "skia_benchmarking_extension.h",
    "speech_recognition_dispatcher.cc",
    "speech_recognition_dispatcher.h",
    "stats_collection_controller.cc",
    "stats_collection_controller.h",
    "stats_collection_observer.cc",
    "stats_collection_observer.h",
    "text_input_client_observer.cc",
    "text_input_client_observer.h",
    "theme_helper_mac.h",
    "theme_helper_mac.mm",
    "top_level_blame_context.cc",
    "top_level_blame_context.h",
    "web_frame_utils.cc",
    "web_frame_utils.h",
    "web_ui_extension.cc",
    "web_ui_extension.h",
    "web_ui_extension_data.cc",
    "web_ui_extension_data.h",
    "webclipboard_impl.cc",
    "webclipboard_impl.h",
    "webgraphicscontext3d_provider_impl.cc",
    "webgraphicscontext3d_provider_impl.h",
    "webpublicsuffixlist_impl.cc",
    "webpublicsuffixlist_impl.h",
    "webscrollbarbehavior_impl_aura.cc",
    "webscrollbarbehavior_impl_aura.h",
    "webscrollbarbehavior_impl_mac.h",
    "webscrollbarbehavior_impl_mac.mm",
    "websharedworker_proxy.cc",
    "websharedworker_proxy.h",
  ]

  configs += [
    "//content:content_implementation",
    "//build/config/compiler:no_size_t_to_int_warning",
  ]
  defines = []

  public_deps = []
  deps = [
    "//base:i18n",
    "//cc",
    "//cc/blink",
    "//cc/ipc",
    "//cc/proto",
    "//cc/surfaces",
    "//cc/surfaces:surface_id",
    "//components/discardable_memory/client",
    "//components/url_formatter",
    "//content:resources",
    "//content/child",
    "//content/common",
    "//content/gpu:gpu_sources",
    "//content/public/child:child_sources",
    "//content/public/common:common_sources",
    "//content/public/common:feature_h264_with_openh264_ffmpeg",
    "//content/public/common:features",
    "//crypto:platform",
    "//device/base/synchronization",
    "//device/battery:mojo_bindings",
    "//device/bluetooth",
    "//device/sensors/public/cpp",
    "//device/usb/public/interfaces",
    "//device/vibration:mojo_bindings",
    "//device/vr:mojo_bindings",
    "//gin",
    "//gpu",
    "//gpu/command_buffer/client:gles2_interface",
    "//jingle:jingle_glue",
    "//media",
    "//media/blink",
    "//media/capture",
    "//media/gpu",
    "//media/gpu/ipc/client",
    "//media/gpu/ipc/common",
    "//media/midi",
    "//media/midi:mojo_cpp_sources",
    "//media/mojo/interfaces:remoting",
    "//mojo/common",
    "//mojo/edk/js",
    "//mojo/public/cpp/bindings",
    "//mojo/public/js",
    "//net",
    "//ppapi/features",
    "//printing/features",
    "//sandbox",
    "//services/service_manager/public/cpp",
    "//services/service_manager/public/interfaces",
    "//skia",
    "//storage/common",
    "//third_party/WebKit/public:blink",
    "//third_party/WebKit/public:features",
    "//third_party/WebKit/public:mojo_bindings",
    "//third_party/boringssl",
    "//third_party/icu",
    "//third_party/libjingle",
    "//third_party/libyuv",
    "//third_party/widevine/cdm:headers",
    "//ui/accessibility",
    "//ui/base",
    "//ui/base/ime",
    "//ui/display",
    "//ui/events:dom_keycode_converter",
    "//ui/events:events_base",
    "//ui/events/blink",
    "//ui/gfx/geometry/mojo",
    "//ui/gl",
    "//ui/native_theme",
    "//ui/surface",
    "//v8",
  ]
  allow_circular_includes_from = []

  if (use_aura && !use_qt) {
    public_deps += [ "//content/renderer/mus" ]
    allow_circular_includes_from += [ "//content/renderer/mus" ]
    deps += [ "//services/ui/public/cpp" ]
  }

  if (use_external_popup_menu) {
    sources += [
      "external_popup_menu.cc",
      "external_popup_menu.h",
    ]
  }

  if (is_mac) {
    sources -= [
      "webscrollbarbehavior_impl_aura.cc",
      "webscrollbarbehavior_impl_aura.h",
    ]
  }

  if (is_android) {
    # Add back the Linux file which Android shares.
    set_sources_assignment_filter([])
    sources += [ "render_view_linux.cc" ]

    deps += [
      "//third_party/android_tools:cpu_features",
      "//third_party/libphonenumber",
    ]
  } else {
    sources -= [
      "java/gin_java_bridge_dispatcher.cc",
      "java/gin_java_bridge_dispatcher.h",
      "java/gin_java_bridge_object.cc",
      "java/gin_java_bridge_object.h",
      "java/gin_java_bridge_value_converter.cc",
      "java/gin_java_bridge_value_converter.h",
      "java/gin_java_function_invocation_helper.cc",
      "java/gin_java_function_invocation_helper.h",
    ]
  }

  if (enable_media_remoting) {
    deps += [ "//media/remoting" ]
  }

  if (enable_webrtc) {
    # WebRTC plugin-related stuff goes in a different section below.
    sources += [
      "media/aec_dump_message_filter.cc",
      "media/aec_dump_message_filter.h",
      "media/audio_repetition_detector.cc",
      "media/audio_repetition_detector.h",
      "media/audio_track_recorder.cc",
      "media/audio_track_recorder.h",
      "media/canvas_capture_handler.cc",
      "media/canvas_capture_handler.h",
      "media/external_media_stream_audio_source.cc",
      "media/external_media_stream_audio_source.h",
      "media/gpu/rtc_video_decoder.cc",
      "media/gpu/rtc_video_decoder.h",
      "media/gpu/rtc_video_decoder_factory.cc",
      "media/gpu/rtc_video_decoder_factory.h",
      "media/gpu/rtc_video_encoder.cc",
      "media/gpu/rtc_video_encoder.h",
      "media/gpu/rtc_video_encoder_factory.cc",
      "media/gpu/rtc_video_encoder_factory.h",
      "media/html_audio_element_capturer_source.cc",
      "media/html_audio_element_capturer_source.h",
      "media/html_video_element_capturer_source.cc",
      "media/html_video_element_capturer_source.h",
      "media/image_capture_frame_grabber.cc",
      "media/image_capture_frame_grabber.h",
      "media/local_media_stream_audio_source.cc",
      "media/local_media_stream_audio_source.h",
      "media/media_devices_event_dispatcher.cc",
      "media/media_devices_event_dispatcher.h",
      "media/media_devices_listener_impl.cc",
      "media/media_devices_listener_impl.h",
      "media/media_recorder_handler.cc",
      "media/media_recorder_handler.h",
      "media/media_stream.cc",
      "media/media_stream.h",
      "media/media_stream_audio_deliverer.h",
      "media/media_stream_audio_level_calculator.cc",
      "media/media_stream_audio_level_calculator.h",
      "media/media_stream_audio_processor.cc",
      "media/media_stream_audio_processor.h",
      "media/media_stream_audio_processor_options.cc",
      "media/media_stream_audio_processor_options.h",
      "media/media_stream_audio_source.cc",
      "media/media_stream_audio_source.h",
      "media/media_stream_audio_track.cc",
      "media/media_stream_audio_track.h",
      "media/media_stream_center.cc",
      "media/media_stream_center.h",
      "media/media_stream_constraints_util.cc",
      "media/media_stream_constraints_util.h",
      "media/media_stream_dispatcher.cc",
      "media/media_stream_dispatcher.h",
      "media/media_stream_dispatcher_eventhandler.h",
      "media/media_stream_registry_interface.h",
      "media/media_stream_renderer_factory_impl.cc",
      "media/media_stream_renderer_factory_impl.h",
      "media/media_stream_source.cc",
      "media/media_stream_source.h",
      "media/media_stream_track.cc",
      "media/media_stream_track.h",
      "media/media_stream_video_capturer_source.cc",
      "media/media_stream_video_capturer_source.h",
      "media/media_stream_video_renderer_sink.cc",
      "media/media_stream_video_renderer_sink.h",
      "media/media_stream_video_source.cc",
      "media/media_stream_video_source.h",
      "media/media_stream_video_track.cc",
      "media/media_stream_video_track.h",
      "media/peer_connection_tracker.cc",
      "media/peer_connection_tracker.h",
      "media/remote_media_stream_impl.cc",
      "media/remote_media_stream_impl.h",
      "media/rtc_certificate.cc",
      "media/rtc_certificate.h",
      "media/rtc_certificate_generator.cc",
      "media/rtc_certificate_generator.h",
      "media/rtc_data_channel_handler.cc",
      "media/rtc_data_channel_handler.h",
      "media/rtc_dtmf_sender_handler.cc",
      "media/rtc_dtmf_sender_handler.h",
      "media/rtc_peer_connection_handler.cc",
      "media/rtc_peer_connection_handler.h",
      "media/secure_display_link_tracker.h",
      "media/speech_recognition_audio_sink.cc",
      "media/speech_recognition_audio_sink.h",
      "media/track_audio_renderer.cc",
      "media/track_audio_renderer.h",
      "media/user_media_client_impl.cc",
      "media/user_media_client_impl.h",
      "media/video_track_adapter.cc",
      "media/video_track_adapter.h",
      "media/video_track_recorder.cc",
      "media/video_track_recorder.h",
      "media/webaudio_media_stream_source.cc",
      "media/webaudio_media_stream_source.h",
      "media/webrtc/media_stream_remote_video_source.cc",
      "media/webrtc/media_stream_remote_video_source.h",
      "media/webrtc/media_stream_track_metrics.cc",
      "media/webrtc/media_stream_track_metrics.h",
      "media/webrtc/media_stream_video_webrtc_sink.cc",
      "media/webrtc/media_stream_video_webrtc_sink.h",
      "media/webrtc/peer_connection_dependency_factory.cc",
      "media/webrtc/peer_connection_dependency_factory.h",
      "media/webrtc/peer_connection_remote_audio_source.cc",
      "media/webrtc/peer_connection_remote_audio_source.h",
      "media/webrtc/processed_local_audio_source.cc",
      "media/webrtc/processed_local_audio_source.h",
      "media/webrtc/rtc_stats.cc",
      "media/webrtc/rtc_stats.h",
      "media/webrtc/stun_field_trial.cc",
      "media/webrtc/stun_field_trial.h",
      "media/webrtc/track_observer.cc",
      "media/webrtc/track_observer.h",
      "media/webrtc/webrtc_audio_sink.cc",
      "media/webrtc/webrtc_audio_sink.h",
      "media/webrtc/webrtc_media_stream_adapter.cc",
      "media/webrtc/webrtc_media_stream_adapter.h",
      "media/webrtc/webrtc_video_capturer_adapter.cc",
      "media/webrtc/webrtc_video_capturer_adapter.h",
      "media/webrtc/webrtc_video_frame_adapter.cc",
      "media/webrtc/webrtc_video_frame_adapter.h",
      "media/webrtc_audio_device_impl.cc",
      "media/webrtc_audio_device_impl.h",
      "media/webrtc_audio_device_not_impl.cc",
      "media/webrtc_audio_device_not_impl.h",
      "media/webrtc_audio_renderer.cc",
      "media/webrtc_audio_renderer.h",
      "media/webrtc_local_audio_source_provider.cc",
      "media/webrtc_local_audio_source_provider.h",
      "media/webrtc_logging.cc",
      "media/webrtc_logging.h",
      "media/webrtc_uma_histograms.cc",
      "media/webrtc_uma_histograms.h",
      "p2p/empty_network_manager.cc",
      "p2p/empty_network_manager.h",
      "p2p/filtering_network_manager.cc",
      "p2p/filtering_network_manager.h",
      "p2p/host_address_request.cc",
      "p2p/host_address_request.h",
      "p2p/ipc_network_manager.cc",
      "p2p/ipc_network_manager.h",
      "p2p/ipc_socket_factory.cc",
      "p2p/ipc_socket_factory.h",
      "p2p/network_list_observer.h",
      "p2p/network_manager_uma.cc",
      "p2p/network_manager_uma.h",
      "p2p/port_allocator.cc",
      "p2p/port_allocator.h",
      "p2p/socket_client_impl.cc",
      "p2p/socket_client_impl.h",
      "p2p/socket_dispatcher.cc",
      "p2p/socket_dispatcher.h",
    ]

    if (enable_plugins) {
      sources += [
        "media/pepper_to_video_track_adapter.cc",
        "media/pepper_to_video_track_adapter.h",
        "media/video_track_to_pepper_adapter.cc",
        "media/video_track_to_pepper_adapter.h",
        "pepper/pepper_media_stream_audio_track_host.cc",
        "pepper/pepper_media_stream_audio_track_host.h",
        "pepper/pepper_media_stream_track_host_base.cc",
        "pepper/pepper_media_stream_track_host_base.h",
        "pepper/pepper_media_stream_video_track_host.cc",
        "pepper/pepper_media_stream_video_track_host.h",
        "pepper/pepper_video_destination_host.cc",
        "pepper/pepper_video_destination_host.h",
        "pepper/pepper_video_source_host.cc",
        "pepper/pepper_video_source_host.h",
      ]
    }

    deps += [
      "//crypto",
      "//third_party/libjingle:libjingle_webrtc",
      "//third_party/libvpx",
      "//third_party/opus",
      "//third_party/webrtc/api:libjingle_peerconnection",
      "//third_party/webrtc/api:rtc_stats_api",
      "//third_party/webrtc/base:rtc_base",
      "//third_party/webrtc/common_video",
      "//third_party/webrtc/media:rtc_media",
      "//third_party/webrtc/modules/audio_device",
      "//third_party/webrtc/modules/audio_processing",
      "//third_party/webrtc/modules/video_coding:webrtc_h264",
      "//third_party/webrtc/p2p:libstunprober",
      "//third_party/webrtc/p2p:rtc_p2p",
      "//third_party/webrtc/pc:rtc_pc",
      "//third_party/webrtc/stats",
      "//third_party/webrtc/system_wrappers",
    ]
    if (rtc_use_h264) {
      deps += [ "//third_party/openh264:encoder" ]
    }
  } else {
    sources += [
      "media/webrtc_logging.h",
      "media/webrtc_logging_noop.cc",
    ]
  }

  if (enable_plugins) {
    sources += [
      "pepper/audio_helper.cc",
      "pepper/audio_helper.h",
      "pepper/content_decryptor_delegate.cc",
      "pepper/content_decryptor_delegate.h",
      "pepper/content_renderer_pepper_host_factory.cc",
      "pepper/content_renderer_pepper_host_factory.h",
      "pepper/event_conversion.cc",
      "pepper/event_conversion.h",
      "pepper/fullscreen_container.h",
      "pepper/gfx_conversion.h",
      "pepper/host_array_buffer_var.cc",
      "pepper/host_array_buffer_var.h",
      "pepper/host_dispatcher_wrapper.cc",
      "pepper/host_dispatcher_wrapper.h",
      "pepper/host_globals.cc",
      "pepper/host_globals.h",
      "pepper/host_resource_var.cc",
      "pepper/host_resource_var.h",
      "pepper/host_var_tracker.cc",
      "pepper/host_var_tracker.h",
      "pepper/message_channel.cc",
      "pepper/message_channel.h",
      "pepper/pepper_audio_controller.cc",
      "pepper/pepper_audio_controller.h",
      "pepper/pepper_audio_encoder_host.cc",
      "pepper/pepper_audio_encoder_host.h",
      "pepper/pepper_audio_input_host.cc",
      "pepper/pepper_audio_input_host.h",
      "pepper/pepper_broker.cc",
      "pepper/pepper_broker.h",
      "pepper/pepper_browser_connection.cc",
      "pepper/pepper_browser_connection.h",
      "pepper/pepper_camera_device_host.cc",
      "pepper/pepper_camera_device_host.h",
      "pepper/pepper_compositor_host.cc",
      "pepper/pepper_compositor_host.h",
      "pepper/pepper_device_enumeration_host_helper.cc",
      "pepper/pepper_device_enumeration_host_helper.h",
      "pepper/pepper_file_chooser_host.cc",
      "pepper/pepper_file_chooser_host.h",
      "pepper/pepper_file_ref_renderer_host.cc",
      "pepper/pepper_file_ref_renderer_host.h",
      "pepper/pepper_file_system_host.cc",
      "pepper/pepper_file_system_host.h",
      "pepper/pepper_graphics_2d_host.cc",
      "pepper/pepper_graphics_2d_host.h",
      "pepper/pepper_hung_plugin_filter.cc",
      "pepper/pepper_hung_plugin_filter.h",
      "pepper/pepper_in_process_resource_creation.cc",
      "pepper/pepper_in_process_resource_creation.h",
      "pepper/pepper_in_process_router.cc",
      "pepper/pepper_in_process_router.h",
      "pepper/pepper_media_device_manager.cc",
      "pepper/pepper_media_device_manager.h",
      "pepper/pepper_platform_audio_input.cc",
      "pepper/pepper_platform_audio_input.h",
      "pepper/pepper_platform_audio_output.cc",
      "pepper/pepper_platform_audio_output.h",
      "pepper/pepper_platform_camera_device.cc",
      "pepper/pepper_platform_camera_device.h",
      "pepper/pepper_platform_video_capture.cc",
      "pepper/pepper_platform_video_capture.h",
      "pepper/pepper_plugin_instance_impl.cc",
      "pepper/pepper_plugin_instance_impl.h",
      "pepper/pepper_plugin_instance_metrics.cc",
      "pepper/pepper_plugin_instance_metrics.h",
      "pepper/pepper_plugin_registry.cc",
      "pepper/pepper_plugin_registry.h",
      "pepper/pepper_proxy_channel_delegate_impl.cc",
      "pepper/pepper_proxy_channel_delegate_impl.h",
      "pepper/pepper_try_catch.cc",
      "pepper/pepper_try_catch.h",
      "pepper/pepper_url_loader_host.cc",
      "pepper/pepper_url_loader_host.h",
      "pepper/pepper_video_capture_host.cc",
      "pepper/pepper_video_capture_host.h",
      "pepper/pepper_video_decoder_host.cc",
      "pepper/pepper_video_decoder_host.h",
      "pepper/pepper_video_encoder_host.cc",
      "pepper/pepper_video_encoder_host.h",
      "pepper/pepper_webplugin_impl.cc",
      "pepper/pepper_webplugin_impl.h",
      "pepper/pepper_websocket_host.cc",
      "pepper/pepper_websocket_host.h",
      "pepper/plugin_instance_throttler_impl.cc",
      "pepper/plugin_instance_throttler_impl.h",
      "pepper/plugin_module.cc",
      "pepper/plugin_module.h",
      "pepper/plugin_object.cc",
      "pepper/plugin_object.h",
      "pepper/plugin_power_saver_helper.cc",
      "pepper/plugin_power_saver_helper.h",
      "pepper/ppapi_preferences_builder.cc",
      "pepper/ppapi_preferences_builder.h",
      "pepper/ppb_audio_impl.cc",
      "pepper/ppb_audio_impl.h",
      "pepper/ppb_broker_impl.cc",
      "pepper/ppb_broker_impl.h",
      "pepper/ppb_buffer_impl.cc",
      "pepper/ppb_buffer_impl.h",
      "pepper/ppb_flash_message_loop_impl.cc",
      "pepper/ppb_flash_message_loop_impl.h",
      "pepper/ppb_graphics_3d_impl.cc",
      "pepper/ppb_graphics_3d_impl.h",
      "pepper/ppb_image_data_impl.cc",
      "pepper/ppb_image_data_impl.h",
      "pepper/ppb_proxy_impl.cc",
      "pepper/ppb_proxy_impl.h",
      "pepper/ppb_var_deprecated_impl.cc",
      "pepper/ppb_var_deprecated_impl.h",
      "pepper/ppb_video_decoder_impl.cc",
      "pepper/ppb_video_decoder_impl.h",
      "pepper/renderer_ppapi_host_impl.cc",
      "pepper/renderer_ppapi_host_impl.h",
      "pepper/renderer_restrict_dispatch_group.h",
      "pepper/resource_converter.cc",
      "pepper/resource_converter.h",
      "pepper/resource_creation_impl.cc",
      "pepper/resource_creation_impl.h",
      "pepper/url_request_info_util.cc",
      "pepper/url_request_info_util.h",
      "pepper/url_response_info_util.cc",
      "pepper/url_response_info_util.h",
      "pepper/v8_var_converter.cc",
      "pepper/v8_var_converter.h",
      "pepper/v8object_var.cc",
      "pepper/v8object_var.h",
      "pepper/video_decoder_shim.cc",
      "pepper/video_decoder_shim.h",
      "pepper/video_encoder_shim.cc",
      "pepper/video_encoder_shim.h",
      "render_widget_fullscreen_pepper.cc",
      "render_widget_fullscreen_pepper.h",
    ]

    deps += [
      "//ppapi/host",
      "//ppapi/proxy",
      "//ppapi/shared_impl",
      "//third_party/libvpx",
      "//third_party/opus",
    ]
  }

  if (!enable_pepper_cdms) {
    sources -= [
      "media/cdm/pepper_cdm_wrapper.h",
      "media/cdm/pepper_cdm_wrapper_impl.cc",
      "media/cdm/pepper_cdm_wrapper_impl.h",
      "media/cdm/ppapi_decryptor.cc",
      "media/cdm/ppapi_decryptor.h",
    ]
  }

  if (enable_basic_printing || enable_print_preview) {
    deps += [ "//printing" ]
  }

  if (enable_mojo_media) {
    sources += [
      "media/media_interface_provider.cc",
      "media/media_interface_provider.h",
    ]

    deps += [
      "//media/mojo/interfaces",

      # Defines in mojo_media_config are also pulled in here.
      "//media/mojo/clients",
    ]
  }

  if (use_seccomp_bpf) {
    defines += [ "USE_SECCOMP_BPF" ]
  }

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

  if (enable_ipc_fuzzer) {
    configs += [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ]
  }
}

# See comment at the top of //content/BUILD.gn for how this works.
group("for_content_tests") {
  visibility = [ "//content/test/*" ]

  if (enable_mojo_media) {
    # For the defines in mojo_media_config.
    public_configs = [ "//media/mojo/services:mojo_media_config" ]
  }

  if (!is_component_build) {
    public_deps = [
      ":renderer",
    ]
  }
}
