blob: a28d0ae008cf35d02510ae381863bd835d3bf058 [file]
# Copyright 2014 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/buildflags_paint_preview.gni")
import("//chrome/common/features.gni")
import("//chrome/common/request_header_integrity/buildflags.gni")
import("//components/guest_view/buildflags/buildflags.gni")
import("//components/offline_pages/buildflags/features.gni")
import("//components/optimization_guide/features.gni")
import("//components/signin/features.gni")
import("//components/spellcheck/spellcheck_build_features.gni")
import("//content/public/common/features.gni")
import("//extensions/buildflags/buildflags.gni")
import("//media/media_options.gni")
import("//pdf/features.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/widevine/cdm/widevine.gni")
import("//tools/grit/grit_rule.gni")
import("//ui/webui/webui_features.gni")
assert(enable_supervised_users)
grit("resources") {
source = "resources/renderer_resources.grd"
inputs = [
"//components/security_interstitials/core/browser/resources/images/blocked.svg",
"//components/security_interstitials/core/browser/resources/images/heavy_ad.svg",
"//components/security_interstitials/core/browser/resources/interstitial_webview_quiet.css",
"//components/security_interstitials/core/common/resources/interstitial_common.css",
"//components/security_interstitials/core/common/resources/interstitial_core.css",
"//ui/webui/resources/images/extension.svg",
"resources/plugins/blocked_plugin.html",
"resources/plugins/disabled_plugin.html",
"resources/plugins/pdf_plugin.html",
"resources/plugins/plugin_placeholders.css",
]
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",
]
}
static_library("process_state") {
sources = [
"process_state.cc",
"process_state.h",
]
deps = [
"//base",
"//build:chromeos_buildflags",
"//chrome/common",
]
}
static_library("renderer") {
_configs = configs
configs = []
configs = [ "//third_party/tflite:tflite_shim_config" ] + _configs
sources = [
"benchmarking_bindings.cc",
"benchmarking_bindings.h",
"browser_exposed_renderer_interfaces.cc",
"browser_exposed_renderer_interfaces.h",
"chrome_content_renderer_client.cc",
"chrome_content_renderer_client.h",
"chrome_content_settings_agent_delegate.cc",
"chrome_content_settings_agent_delegate.h",
"chrome_render_frame_observer.cc",
"chrome_render_frame_observer.h",
"chrome_render_thread_observer.cc",
"chrome_render_thread_observer.h",
"custom_menu_commands.h",
"google_accounts_private_api_extension.cc",
"google_accounts_private_api_extension.h",
"google_accounts_private_api_util.cc",
"google_accounts_private_api_util.h",
"instant_restricted_id_cache.h",
"loadtimes_bindings.cc",
"loadtimes_bindings.h",
"media/flash_embed_rewrite.cc",
"media/flash_embed_rewrite.h",
"media/media_feeds.cc",
"media/media_feeds.h",
"media/webrtc_logging_agent_impl.cc",
"media/webrtc_logging_agent_impl.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",
"plugins/non_loadable_plugin_placeholder.cc",
"plugins/non_loadable_plugin_placeholder.h",
"plugins/pdf_plugin_placeholder.cc",
"plugins/pdf_plugin_placeholder.h",
"supervised_user/supervised_user_error_page_controller.cc",
"supervised_user/supervised_user_error_page_controller.h",
"supervised_user/supervised_user_error_page_controller_delegate.h",
"supervised_user/supervised_user_error_page_controller_delegate_impl.cc",
"supervised_user/supervised_user_error_page_controller_delegate_impl.h",
"tab_context_decryption_token_extension.cc",
"tab_context_decryption_token_extension.h",
"trusted_vault_encryption_keys_extension.cc",
"trusted_vault_encryption_keys_extension.h",
"url_loader_throttle_provider_impl.cc",
"url_loader_throttle_provider_impl.h",
"v8_unwinder.cc",
"v8_unwinder.h",
"websocket_handshake_throttle_provider_impl.cc",
"websocket_handshake_throttle_provider_impl.h",
"worker_content_settings_client.cc",
"worker_content_settings_client.h",
]
defines = []
public_deps = [
"//components/signin/public/base:signin_buildflags",
"//components/touch_to_search:buildflags",
]
deps = [
":process_state",
"//base/allocator:buildflags",
"//build:chromeos_buildflags",
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
"//chrome/common:mojo_bindings",
"//chrome/common/net",
"//chrome/common/request_header_integrity:buildflags",
"//chrome/common/search:mojo_bindings",
"//chrome/renderer/actor",
"//chrome/services/speech/buildflags",
"//components/actor/core:features",
"//components/actor/core:task_id",
"//components/autofill/content/renderer",
"//components/autofill/core/common:features",
"//components/base32",
"//components/cdm/renderer",
"//components/commerce/content/renderer",
"//components/content_capture/common",
"//components/content_capture/renderer",
"//components/content_settings/common:mojom",
"//components/content_settings/renderer",
"//components/continuous_search/renderer",
"//components/country_codes",
"//components/crx_file",
"//components/dom_distiller/content/renderer",
"//components/facilitated_payments/content/renderer",
"//components/facilitated_payments/core/features",
"//components/feed:feature_list",
"//components/google/core/common",
"//components/guest_view/buildflags",
"//components/heap_profiling/in_process",
"//components/history_clusters/core",
"//components/language/core/common",
"//components/lens",
"//components/lens:lens_mojo",
"//components/metrics:child_call_stack_profile_builder",
"//components/network_hints/renderer",
"//components/no_state_prefetch/common",
"//components/no_state_prefetch/renderer",
"//components/omnibox/common",
"//components/optimization_guide/content/renderer",
"//components/optimization_guide/core:features",
"//components/page_content_annotations/content/mojom",
"//components/page_content_annotations/content/renderer",
"//components/page_content_annotations/core:features",
"//components/page_load_metrics/renderer",
"//components/paint_preview/buildflags",
"//components/password_manager/core/common",
"//components/pdf/common:constants",
"//components/pdf/common:util",
"//components/permissions:permissions_common",
"//components/plugins/renderer",
"//components/record_replay/core/common",
"//components/resources:components_resources",
"//components/resources:components_scaled_resources",
"//components/safe_browsing:buildflags",
"//components/safe_browsing/content/common:interfaces",
"//components/safe_browsing/content/renderer",
"//components/safe_browsing/content/renderer:throttles",
"//components/safe_browsing/core/common",
"//components/safe_browsing/core/common:interfaces",
"//components/search",
"//components/security_interstitials/content/renderer",
"//components/security_interstitials/core:",
"//components/security_interstitials/core/common/mojom:",
"//components/spellcheck:buildflags",
"//components/subresource_filter/content/renderer",
"//components/subresource_filter/core/common",
"//components/supervised_user/core/common:buildflags",
"//components/surface_embed/common",
"//components/surface_embed/renderer",
"//components/sync_tab_context:constants",
"//components/translate/content/renderer",
"//components/translate/core/common",
"//components/translate/core/language_detection",
"//components/visitedlink/renderer",
"//components/wallet/content/renderer",
"//components/wallet/core/common:features",
"//components/web_cache/renderer",
"//components/webapps/renderer",
"//content/public/child",
"//content/public/common",
"//content/public/common:buildflags",
"//content/public/renderer",
"//extensions/buildflags",
"//gin",
"//media",
"//media:media_buildflags",
"//media/capture",
"//media/mojo/common",
"//mojo/public/cpp/bindings",
"//net",
"//pdf:buildflags",
"//printing/buildflags",
"//services/metrics/public/cpp:metrics_cpp",
"//services/metrics/public/cpp:ukm_builders",
"//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/blink/public/strings",
"//third_party/icu",
"//third_party/libwebp",
"//third_party/re2",
"//third_party/widevine/cdm:buildflags",
"//ui/gfx/geometry",
"//ui/webui:buildflags",
"//v8",
]
if (is_mac || is_win || is_linux || is_chromeos) {
deps += [ "//components/webapps/isolated_web_apps:scheme" ]
}
data_deps = [ "//tools/v8_context_snapshot" ]
if (enable_bound_session_credentials) {
sources += [
"bound_session_credentials/bound_session_request_throttled_handler_renderer_impl.cc",
"bound_session_credentials/bound_session_request_throttled_handler_renderer_impl.h",
"bound_session_credentials/bound_session_request_throttled_in_renderer_manager.cc",
"bound_session_credentials/bound_session_request_throttled_in_renderer_manager.h",
]
}
if (enable_plugins) {
sources += [
"plugins/chrome_plugin_placeholder.cc",
"plugins/chrome_plugin_placeholder.h",
]
deps += [ "//components/strings" ]
}
if (enable_pdf) {
deps += [
"//components/pdf/renderer",
"//pdf:features",
]
}
if (enable_request_header_integrity) {
deps += [ "//chrome/common/request_header_integrity" ]
}
if (enable_widevine_cdm_component) {
deps += [ "//third_party/widevine/cdm:headers" ]
}
if (enable_library_cdms || is_win || is_android) {
sources += [
"media/chrome_key_systems.cc",
"media/chrome_key_systems.h",
]
}
if (safe_browsing_mode != 0) {
deps +=
[ "//components/safe_browsing/content/renderer/phishing_classifier" ]
}
if (enable_extensions_core) {
deps += [
"//chrome/renderer/extensions",
"//chrome/renderer/resources",
"//extensions/renderer",
]
} else if (enable_guest_view) {
deps += [ "//components/guest_view/renderer/slim_web_view" ]
}
if (enable_extensions) {
deps += [ "//chrome/renderer/controlled_frame" ]
}
if (enable_spellcheck) {
deps += [ "//components/spellcheck/renderer" ]
}
if (enable_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_paint_preview) {
deps += [ "//components/paint_preview/renderer" ]
}
if (is_win) {
deps += [ "//third_party/wtl" ]
sources += [
"font_prewarmer.cc",
"font_prewarmer.h",
"render_frame_font_family_accessor.cc",
"render_frame_font_family_accessor.h",
]
}
if (is_android) {
sources += [
"net/page_auto_fetcher_helper_android.cc",
"net/page_auto_fetcher_helper_android.h",
"sandbox_status_extension_android.cc",
"sandbox_status_extension_android.h",
"wallet/boarding_pass_extractor.cc",
"wallet/boarding_pass_extractor.h",
]
deps += [ "//chrome/common/wallet:mojo_bindings" ]
} else {
sources += [
"accessibility/ax_tree_distiller.cc",
"accessibility/ax_tree_distiller.h",
"accessibility/phrase_segmentation/base_phrase_segmenter.cc",
"accessibility/phrase_segmentation/base_phrase_segmenter.h",
"accessibility/phrase_segmentation/dependency_parser_model.cc",
"accessibility/phrase_segmentation/dependency_parser_model.h",
"accessibility/phrase_segmentation/dependency_parser_op_resolver.cc",
"accessibility/phrase_segmentation/dependency_parser_op_resolver.h",
"accessibility/phrase_segmentation/dependency_tree.cc",
"accessibility/phrase_segmentation/dependency_tree.h",
"accessibility/phrase_segmentation/phrase_segmenter.cc",
"accessibility/phrase_segmentation/phrase_segmenter.h",
"accessibility/phrase_segmentation/token_boundaries.cc",
"accessibility/phrase_segmentation/token_boundaries.h",
"accessibility/phrase_segmentation/tokenized_sentence.cc",
"accessibility/phrase_segmentation/tokenized_sentence.h",
"accessibility/phrase_segmentation/tokenizer.cc",
"accessibility/phrase_segmentation/tokenizer.h",
"accessibility/read_anything/read_aloud_app_model.cc",
"accessibility/read_anything/read_aloud_app_model.h",
"accessibility/read_anything/read_aloud_traversal_utils.cc",
"accessibility/read_anything/read_aloud_traversal_utils.h",
"accessibility/read_anything/read_anything_app_controller.cc",
"accessibility/read_anything/read_anything_app_controller.h",
"accessibility/read_anything/read_anything_app_model.cc",
"accessibility/read_anything/read_anything_app_model.h",
"accessibility/read_anything/read_anything_distiller.h",
"accessibility/read_anything/read_anything_distiller_factory.cc",
"accessibility/read_anything/read_anything_distiller_factory.h",
"accessibility/read_anything/read_anything_node_utils.cc",
"accessibility/read_anything/read_anything_node_utils.h",
"accessibility/read_anything/read_anything_readability_distiller.cc",
"accessibility/read_anything/read_anything_readability_distiller.h",
"accessibility/read_anything/read_anything_screen2x_distiller.cc",
"accessibility/read_anything/read_anything_screen2x_distiller.h",
"media/chrome_speech_recognition_client.cc",
"media/chrome_speech_recognition_client.h",
"password_manager/remote_actor_credential_sharing_extension.cc",
"password_manager/remote_actor_credential_sharing_extension.h",
]
deps += [
"//chrome/common/read_anything:mojo_bindings",
"//chrome/renderer/webui_browser",
"//components/record_replay/content/renderer",
"//components/trusted_vault",
"//services/screen_ai/buildflags",
"//services/screen_ai/public/mojom",
"//services/strings",
"//third_party/re2",
"//third_party/tensorflow-text",
"//third_party/tensorflow_models:tflite_custom_ops",
"//third_party/tflite",
"//third_party/tflite:buildflags",
"//third_party/tflite:tflite_public_headers",
"//third_party/tflite_support",
"//third_party/tflite_support:tflite_support_proto",
]
}
if (is_chromeos) {
sources += [
"ash_merge_session_loader_throttle.cc",
"ash_merge_session_loader_throttle.h",
"chromeos_delayed_callback_group.cc",
"chromeos_delayed_callback_group.h",
]
deps += [
"//ash/constants",
"//ash/webui/file_manager:constants",
]
}
if (!is_android) {
sources += [
"indigo/indigo_agent.cc",
"indigo/indigo_agent.h",
"indigo/onboarding_agent.cc",
"indigo/onboarding_agent.h",
]
}
if (enable_webui_ntp) {
sources += [
"searchbox/searchbox.cc",
"searchbox/searchbox.h",
"searchbox/searchbox_extension.cc",
"searchbox/searchbox_extension.h",
]
}
}
if (!is_android) {
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"accessibility/ax_tree_distiller_browsertest.cc",
"accessibility/read_anything/read_anything_app_controller_browsertest.cc",
"accessibility/read_anything/read_anything_distiller_factory_browsertest.cc",
"accessibility/read_anything/read_anything_readability_distiller_browsertest.cc",
"accessibility/read_anything/read_anything_screen2x_distiller_browsertest.cc",
"accessibility/read_anything/read_anything_test_utils.cc",
"accessibility/read_anything/read_anything_test_utils.h",
"autofill/autofill_renderer_browsertest.cc",
"autofill/fake_mojo_password_manager_driver.cc",
"autofill/fake_mojo_password_manager_driver.h",
"autofill/fake_password_generation_driver.cc",
"autofill/fake_password_generation_driver.h",
"autofill/page_passwords_analyser_browsertest.cc",
"autofill/password_autofill_agent_browsertest.cc",
"autofill/password_generation_agent_browsertest.cc",
"autofill/password_generation_test_utils.cc",
"autofill/password_generation_test_utils.h",
"chrome_content_settings_agent_delegate_browsertest.cc",
"chrome_render_frame_observer_browsertest.cc",
"commerce/commerce_web_extractor_browsertest.cc",
"indigo/indigo_agent_browsertest.cc",
"translate/translate_agent_browsertest.cc",
"translate/translate_script_browsertest.cc",
]
deps = [
":renderer",
"//base/test:test_support",
"//chrome/test:test_support_ui",
"//chrome/test/base:chrome_render_view_test",
"//components/autofill/content/renderer",
"//components/autofill/content/renderer:test_support",
"//components/commerce/content/renderer",
"//components/commerce/core:commerce_constants",
"//components/no_state_prefetch/renderer",
"//components/optimization_guide/content/renderer",
"//components/safe_browsing/core/common/phishing_classifier",
"//components/safe_browsing/core/common/proto:client_model_proto",
"//components/translate/content/renderer",
"//content/test:test_support",
"//gin",
"//services/strings",
"//testing/gtest",
]
if (safe_browsing_mode == 1) {
sources += [ "safe_browsing/threat_dom_details_browsertest.cc" ]
deps += [
"//components/safe_browsing/content/common:interfaces",
"//components/safe_browsing/content/renderer",
]
if (!is_mac) {
sources += [
# single-process mode hangs on Mac sometimes because of multiple UI
# message loops. See 306348
"safe_browsing/content_phishing_classifier_delegate_browsertest.cc",
"safe_browsing/phishing_classifier_browsertest.cc",
"safe_browsing/phishing_dom_utils_browsertest.cc",
]
deps += [
"//chrome/test/base:chrome_unit_test_suite",
"//components/safe_browsing/content/renderer/phishing_classifier",
"//components/safe_browsing/core/common/fbs:client_model",
]
}
}
}
}
# Browser tests that run in both browser_tests and android_browsertests.
source_set("platform_browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [ "chrome_content_renderer_client_browsertest.cc" ]
deps = [
":renderer",
"//base",
"//chrome/test:test_support",
"//chrome/test/base:chrome_render_view_test",
"//chrome/test/base:chrome_test_utils",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
"//extensions/buildflags",
"//net:test_support",
"//testing/gtest",
"//third_party/blink/public:blink",
"//ui/base",
"//url",
]
if (enable_extensions_core) {
deps += [ "//extensions/common" ]
}
}
if (is_android) {
source_set("android_browsertests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"accessibility/read_anything/read_anything_test_utils.cc",
"accessibility/read_anything/read_anything_test_utils.h",
"autofill/fake_mojo_password_manager_driver.cc",
"autofill/fake_mojo_password_manager_driver.h",
"autofill/fake_password_generation_driver.cc",
"autofill/fake_password_generation_driver.h",
"autofill/password_autofill_agent_browsertest.cc",
"autofill/password_generation_agent_browsertest.cc",
"autofill/password_generation_test_utils.cc",
"autofill/password_generation_test_utils.h",
"commerce/commerce_web_extractor_browsertest.cc",
"wallet/boarding_pass_extractor_browsertest.cc",
]
deps = [
":renderer",
"//base",
"//base/test:test_support",
"//chrome/common",
"//chrome/test:test_support",
"//chrome/test/base:chrome_render_view_test",
"//components/autofill/content/common/mojom",
"//components/autofill/content/renderer",
"//components/autofill/content/renderer:test_support",
"//components/autofill/core/common",
"//components/autofill/core/common:test_support",
"//components/commerce/content/renderer",
"//components/commerce/core:commerce_constants",
"//components/password_manager/core/common",
"//components/password_manager/core/common:features",
"//content/public/renderer",
"//content/test:test_support",
"//services/service_manager/public/cpp",
"//testing/gmock",
"//testing/gtest",
"//third_party/blink/public:blink",
"//ui/accessibility",
"//ui/events:events_base",
]
if (safe_browsing_mode != 0) {
sources += [
"safe_browsing/phishing_classifier_browsertest.cc",
"safe_browsing/phishing_dom_utils_browsertest.cc",
]
deps += [
"//components/safe_browsing:buildflags",
"//components/safe_browsing/content/common:interfaces",
"//components/safe_browsing/content/renderer/phishing_classifier",
"//components/safe_browsing/core/common",
"//components/safe_browsing/core/common/fbs:client_model",
"//components/safe_browsing/core/common/phishing_classifier",
"//components/safe_browsing/core/common/proto:client_model_proto",
"//components/safe_browsing/core/common/proto:csd_proto",
"//crypto",
]
}
}
}
source_set("unit_tests") {
testonly = true
sources = [
"accessibility/read_anything/read_anything_test_utils.cc",
"accessibility/read_anything/read_anything_test_utils.h",
"chrome_content_renderer_client_unittest.cc",
"chrome_render_frame_observer_unittest.cc",
"instant_restricted_id_cache_unittest.cc",
"media/flash_embed_rewrite_unittest.cc",
"net/net_error_helper_core_unittest.cc",
"tab_context_decryption_token_extension_unittest.cc",
"v8_unwinder_unittest.cc",
]
deps = [
":renderer",
"//base:base_stack_sampling_profiler_test_util",
"//base/test:test_support",
"//chrome/test:test_support",
"//chrome/test/base:chrome_render_view_test",
"//components/sync_tab_context:constants",
"//components/translate/core/common",
"//gin",
"//gin:gin_test",
"//testing/gtest",
]
if (enable_bound_session_credentials) {
sources += [
"bound_session_credentials/bound_session_request_throttled_handler_renderer_impl_unittest.cc",
"bound_session_credentials/bound_session_request_throttled_in_renderer_manager_unittest.cc",
]
}
if (!is_android) {
sources += [
"accessibility/phrase_segmentation/dependency_parser_model_unittest.cc",
"accessibility/phrase_segmentation/dependency_tree_unittest.cc",
"accessibility/phrase_segmentation/phrase_segmenter_unittest.cc",
"accessibility/phrase_segmentation/token_boundaries_unittest.cc",
"accessibility/phrase_segmentation/tokenized_sentence_unittest.cc",
"accessibility/phrase_segmentation/tokenizer_unittest.cc",
"accessibility/read_anything/read_aloud_app_model_unittest.cc",
"accessibility/read_anything/read_aloud_traversal_utils_unittest.cc",
"accessibility/read_anything/read_anything_app_controller_unittest.cc",
"accessibility/read_anything/read_anything_app_model_unittest.cc",
"accessibility/read_anything/read_anything_node_utils_unittest.cc",
"media/webrtc_logging_agent_impl_unittest.cc",
"searchbox/searchbox_unittest.cc",
]
deps += [
"//services/strings",
"//third_party/fuzztest",
]
}
if (is_chromeos) {
sources += [
"ash_merge_session_loader_throttle_unittest.cc",
"chromeos_delayed_callback_group_unittest.cc",
]
}
}