# Copyright 2017 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/buildflag_header.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//net/features.gni") import("//services/network/public/cpp/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/test.gni") import("//third_party/blink/renderer/build/scripts/scripts.gni") # TODO(crbug.com/397934758) _is_directory_transfer_required = is_fuchsia buildflag_header("buildflags") { header = "network_service_buildflags.h" flags = [ "IS_CT_SUPPORTED=$is_ct_supported", "IS_P2P_ENABLED=$is_p2p_enabled", "IS_DIRECTORY_TRANSFER_REQUIRED=$_is_directory_transfer_required", ] } # TODO(crbug.com/397934758): Move `blink_python_runner` out of Blink and update # this action. blink_python_runner("make_generated_permissions_policy_features") { script = "//services/network/build/scripts/make_permissions_policy_features.py" inputs = scripts_for_json5_files + [ "//services/network/build/scripts/make_permissions_policy_features.py", "//services/network/public/cpp/permissions_policy/permissions_policy_features.json5", "//services/network/build/scripts/templates/permissions_policy_features_generated.cc.tmpl", ] outputs = [ "$root_gen_dir/services/network/public/cpp/permissions_policy/permissions_policy_features_generated.cc" ] args = [ rebase_path( "//services/network/public/cpp/permissions_policy/permissions_policy_features.json5", root_build_dir), "--output_dir", rebase_path("$root_gen_dir/services/network/public/cpp/permissions_policy", root_build_dir), ] } component("crash_keys") { sources = [ "crash_keys.cc", "crash_keys.h", ] deps = [ "//base" ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_CRASH_KEYS_IMPL" ] } component("cpp") { output_name = "network_cpp" sources = [ "avail_language_header_parser.cc", "avail_language_header_parser.h", "connection_allowlist_metrics.h", "connection_allowlist_parser.cc", "connection_allowlist_parser.h", "constants.cc", "constants.h", "content_decoding_interceptor.cc", "content_decoding_interceptor.h", "content_language_parser.cc", "content_language_parser.h", "cookie_encryption_provider_impl.cc", "cookie_encryption_provider_impl.h", "cors/cors.cc", "cors/cors.h", "cors/origin_access_list.cc", "cors/origin_access_list.h", "cross_origin_embedder_policy_parser.cc", "cross_origin_embedder_policy_parser.h", "cross_origin_opener_policy_parser.cc", "cross_origin_opener_policy_parser.h", "cross_origin_resource_policy.cc", "cross_origin_resource_policy.h", "cross_thread_pending_shared_url_loader_factory.cc", "cross_thread_pending_shared_url_loader_factory.h", "data_pipe_to_source_stream.cc", "data_pipe_to_source_stream.h", "declarative_performance_observer_parser.cc", "declarative_performance_observer_parser.h", "devtools_observer_util.cc", "devtools_observer_util.h", "document_isolation_policy_parser.cc", "document_isolation_policy_parser.h", "empty_url_loader_client.cc", "empty_url_loader_client.h", "fence_event_reporting_parser.cc", "fence_event_reporting_parser.h", "header_util.cc", "header_util.h", "headers_matcher.cc", "headers_matcher.h", "initiator_lock_compatibility.cc", "initiator_lock_compatibility.h", "ip_address_space_util.cc", "ip_address_space_util.h", "link_header_parser.cc", "link_header_parser.h", "loading_params.cc", "loading_params.h", "local_network_access_check_result.cc", "local_network_access_check_result.h", "net_adapters.cc", "net_adapters.h", "network_connection_tracker.cc", "network_connection_tracker.h", "network_context_getter.h", "network_quality_tracker.cc", "network_quality_tracker.h", "no_vary_search_header_parser.cc", "no_vary_search_header_parser.h", "not_implemented_url_loader_factory.cc", "not_implemented_url_loader_factory.h", "orb/orb_api.h", "origin_agent_cluster_parser.cc", "origin_agent_cluster_parser.h", "parsed_headers.cc", "parsed_headers.h", "record_ontransfersizeupdate_utils.h", "request_destination.cc", "request_destination.h", "request_header_to_enum.cc", "request_header_to_enum.h", "request_mode.cc", "request_mode.h", "resolve_host_client_base.cc", "resolve_host_client_base.h", "self_deleting_url_loader_factory.cc", "self_deleting_url_loader_factory.h", "session_cookie_delete_predicate.h", "shared_url_loader_factory.cc", "shared_url_loader_factory.h", "simple_host_resolver.cc", "simple_host_resolver.h", "simple_url_loader.cc", "simple_url_loader.h", "simple_url_loader_stream_consumer.h", "single_request_url_loader_factory.cc", "single_request_url_loader_factory.h", "socket_broker_client.cc", "socket_broker_client.h", "socket_broker_impl.cc", "socket_broker_impl.h", "source_stream_to_data_pipe.cc", "source_stream_to_data_pipe.h", "spki_hash_set.cc", "spki_hash_set.h", "sri_message_signatures.cc", "sri_message_signatures.h", "supports_loading_mode/supports_loading_mode_parser.cc", "supports_loading_mode/supports_loading_mode_parser.h", "synthetic_response_util.cc", "synthetic_response_util.h", "timing_allow_origin_parser.cc", "timing_allow_origin_parser.h", "trust_token_http_headers.cc", "trust_token_http_headers.h", "unencoded_digests.cc", "unencoded_digests.h", "url_loader_factory_builder.cc", "url_loader_factory_builder.h", "url_util.cc", "url_util.h", "weak_wrapper_shared_url_loader_factory.cc", "weak_wrapper_shared_url_loader_factory.h", "websocket_utils.cc", "websocket_utils.h", "wrapper_shared_url_loader_factory.cc", "wrapper_shared_url_loader_factory.h", "x_frame_options_parser.cc", "x_frame_options_parser.h", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] public_deps = [ ":buildflags", ":cpp_base", ":flags_and_switches", ":is_potentially_trustworthy", "//net", "//services/network/public/mojom", "//services/network/public/mojom:url_loader_base", "//url", "//url/ipc:url_ipc", ] deps = [ "//base", "//components/link_header_util", "//components/os_crypt/browser", "//components/os_crypt/common", "//components/prefs", "//components/url_pattern", "//ipc", "//net", "//services/proxy_resolver/public/mojom", ] defines = [ "IS_NETWORK_CPP_IMPL" ] } # These interfaces are put in their own target so that modules that only # need to depend on mojom_ip_address does not depend on the entire cpp_base. component("ip_address_mojom_support") { sources = [ "address_family_mojom_traits.cc", "address_family_mojom_traits.h", "address_list_mojom_traits.cc", "address_list_mojom_traits.h", "alternate_protocol_usage_mojom_traits.cc", "alternate_protocol_usage_mojom_traits.h", "connection_endpoint_metadata_mojom_traits.cc", "connection_endpoint_metadata_mojom_traits.h", "host_resolver_endpoint_result_mojom_traits.cc", "host_resolver_endpoint_result_mojom_traits.h", "ip_address_mojom_traits.cc", "ip_address_mojom_traits.h", "ip_endpoint_mojom_traits.cc", "ip_endpoint_mojom_traits.h", ] deps = [ "//net", "//services/network/public/mojom:mojom_ip_address_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_IP_ADDRESS_IMPL" ] } component("host_resolver_mojom_support") { sources = [ "host_resolver_mojom_traits.cc", "host_resolver_mojom_traits.h", ] deps = [ ":ip_address_mojom_support", "//mojo/public/cpp/base:shared_typemap_traits", "//mojo/public/mojom/base", "//net", "//services/network/public/mojom:mojom_host_resolver_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_HOST_RESOLVER_IMPL" ] } component("integrity_metadata_mojom_support") { sources = [ "integrity_metadata.cc", "integrity_metadata.h", "integrity_metadata_mojom_traits.cc", "integrity_metadata_mojom_traits.h", ] deps = [ "//services/network/public/mojom:mojom_integrity_algorithm", "//services/network/public/mojom:mojom_integrity_metadata_shared", ] defines = [ "IS_NETWORK_CPP_INTEGRITY_METADATA_IMPL" ] } component("integrity_policy") { sources = [ "integrity_policy.cc", "integrity_policy.h", "integrity_policy_mojom_traits.cc", "integrity_policy_mojom_traits.h", "integrity_policy_parser.cc", "integrity_policy_parser.h", ] deps = [ ":flags_and_switches", "//net", "//services/network/public/mojom:mojom_integrity_policy_shared", ] defines = [ "IS_NETWORK_CPP_INTEGRITY_POLICY_IMPL" ] } component("connection_allowlist") { sources = [ "connection_allowlist.cc", "connection_allowlist.h", "connection_allowlist_mojom_traits.cc", "connection_allowlist_mojom_traits.h", ] deps = [ ":flags_and_switches", "//components/url_pattern", "//net", "//services/network/public/mojom:mojom_connection_allowlist_shared", "//url/mojom:url_mojom_gurl", ] public_deps = [ "//base", "//url", ] defines = [ "IS_NETWORK_CPP_CONNECTION_ALLOWLIST_IMPL" ] } component("fetch_retry_options") { sources = [ "fetch_retry_options.cc", "fetch_retry_options.h", ] deps = [ "//net", "//services/network/public/mojom:url_loader_base_shared", ] defines = [ "IS_NETWORK_CPP_FETCH_RETRY_OPTIONS_IMPL" ] } component("cookies_mojom_support") { sources = [ "cookie_manager_shared_mojom_traits.cc", "cookie_manager_shared_mojom_traits.h", ] deps = [ ":crash_keys", ":first_party_sets_mojom_support", ":schemeful_site_mojom_support", "//net", "//services/network/public/mojom:cookies_mojom_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_COOKIES_IMPL" ] } component("network_param_mojom_support") { sources = [ "auth_mojom_traits.cc", "auth_mojom_traits.h", "cert_verify_result_mojom_traits.cc", "cert_verify_result_mojom_traits.h", "ct_policy_status_mojom_traits.cc", "ct_policy_status_mojom_traits.h", "hash_value_mojom_traits.cc", "hash_value_mojom_traits.h", "http_response_headers_mojom_traits.cc", "http_response_headers_mojom_traits.h", "net_ipc_param_traits.cc", "net_ipc_param_traits.h", "network_param_mojom_traits.cc", "network_param_mojom_traits.h", "ocsp_verify_result_mojom_traits.cc", "ocsp_verify_result_mojom_traits.h", "sct_status_flags_mojom_traits.cc", "sct_status_flags_mojom_traits.h", "signed_certificate_timestamp_and_status_mojom_traits.cc", "signed_certificate_timestamp_and_status_mojom_traits.h", "signed_certificate_timestamp_mojom_traits.cc", "signed_certificate_timestamp_mojom_traits.h", "ssl_info_mojom_traits.cc", "ssl_info_mojom_traits.h", "x509_certificate_mojom_traits.cc", "x509_certificate_mojom_traits.h", ] deps = [ "//ipc", "//mojo/public/cpp/base:shared_typemap_traits", "//net", "//services/network/public/mojom:mojom_network_param_shared", "//url/ipc:url_ipc", "//url/mojom:url_mojom_origin", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_NETWORK_PARAM_IMPL" ] } component("proxy_config_mojom_support") { sources = [ "mutable_network_traffic_annotation_tag_mojom_traits.h", "mutable_partial_network_traffic_annotation_tag_mojom_traits.h", "proxy_config_mojom_traits.cc", "proxy_config_mojom_traits.h", "proxy_config_with_annotation_mojom_traits.cc", "proxy_config_with_annotation_mojom_traits.h", ] deps = [ ":network_param_mojom_support", "//mojo/public/mojom/base", "//net", "//services/network/public/mojom:mojom_proxy_config_shared", "//url/mojom:mojom_traits", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_PROXY_CONFIG_IMPL" ] } component("structured_headers_mojom_support") { sources = [ "structured_headers_mojom_traits.cc", "structured_headers_mojom_traits.h", ] deps = [ "//base", "//mojo/public/mojom/base", "//net", "//services/network/public/mojom:mojom_structured_headers_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_STRUCTURED_HEADERS_IMPL" ] } component("flags_and_switches") { sources = [ "features.cc", "features.h", "network_switches.cc", "network_switches.h", "web_sandbox_flags.cc", "web_sandbox_flags.h", ] public_deps = [ "//base", "//net", "//services/network/public/mojom:mojom_web_sandbox_flags", "//url", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_FLAGS_AND_SWITCHES_IMPL" ] } source_set("is_potentially_trustworthy") { sources = [ "is_potentially_trustworthy.h" ] public_deps = [ ":flags_and_switches", "//base", "//net", "//url", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_IS_POTENTIALLY_TRUSTWORTHY_IMPL" ] } component("web_platform") { sources = [ "client_hints.cc", "client_hints.h", "content_security_policy/content_security_policy.cc", "content_security_policy/content_security_policy.h", "content_security_policy/csp_context.cc", "content_security_policy/csp_context.h", "content_security_policy/csp_source.cc", "content_security_policy/csp_source.h", "content_security_policy/csp_source_list.cc", "content_security_policy/csp_source_list.h", "cors/origin_access_entry.cc", "cors/origin_access_entry.h", "permissions_policy/client_hints_permissions_policy_mapping.cc", "permissions_policy/client_hints_permissions_policy_mapping.h", "permissions_policy/fenced_frame_permissions_policies.h", "permissions_policy/origin_with_possible_wildcards.cc", "permissions_policy/origin_with_possible_wildcards.h", "permissions_policy/permissions_policy.cc", "permissions_policy/permissions_policy.h", "permissions_policy/permissions_policy_declaration.cc", "permissions_policy/permissions_policy_declaration.h", "permissions_policy/permissions_policy_features.cc", "permissions_policy/permissions_policy_features.h", "permissions_policy/permissions_policy_features_bitset.cc", "permissions_policy/permissions_policy_features_bitset.h", "permissions_policy/permissions_policy_features_generated.h", "permissions_policy/permissions_policy_features_internal.cc", "permissions_policy/permissions_policy_features_internal.h", "permissions_policy/permissions_policy_mojom_traits.cc", "permissions_policy/permissions_policy_mojom_traits.h", ] sources += get_target_outputs(":make_generated_permissions_policy_features") public_deps = [ ":flags_and_switches", ":is_potentially_trustworthy", ":make_generated_permissions_policy_features", "//net", "//services/network/public/mojom:mojom_content_security_policy", "//services/network/public/mojom:mojom_cors_origin_pattern", "//services/network/public/mojom:mojom_origin_or_wildcard_header_value", "//services/network/public/mojom:mojom_permissions_policy_shared", "//services/network/public/mojom:url_loader_base_shared", "//url", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_WEB_PLATFORM_IMPL" ] } # This component is separate from cpp_base as it is a dependency of # //services/network/public/mojom:url_loader_base. component("cross_origin_embedder_policy") { sources = [ "cross_origin_embedder_policy.cc", "cross_origin_embedder_policy.h", "cross_origin_embedder_policy_mojom_traits.cc", "cross_origin_embedder_policy_mojom_traits.h", ] deps = [ "//base", "//mojo/public/mojom/base", "//services/network/public/mojom:url_loader_base_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_CROSS_ORIGIN_IMPL" ] } # This component is separate from cpp_base as it is a dependency of # //services/network/public/mojom:url_loader_base. component("document_isolation_policy") { sources = [ "document_isolation_policy.cc", "document_isolation_policy.h", "document_isolation_policy_mojom_traits.cc", "document_isolation_policy_mojom_traits.h", ] deps = [ "//base", "//mojo/public/mojom/base", "//services/network/public/mojom:url_loader_base_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_DOCUMENT_ISOLATION_IMPL" ] } source_set("ip_address_space_overrides_test_utils") { testonly = true sources = [ "ip_address_space_overrides_test_utils.cc", "ip_address_space_overrides_test_utils.h", ] public_deps = [ "//base", "//services/network/public/mojom:mojom_ip_address_shared", ] deps = [ ":cpp", ":flags_and_switches", "//base", "//net:test_support", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] } # This component is separate from cpp_base as it is a dependency of # //services/network/public/mojom:cookies_mojom. component("schemeful_site_mojom_support") { sources = [ "schemeful_site_mojom_traits.cc", "schemeful_site_mojom_traits.h", ] deps = [ "//net", "//services/network/public/mojom:mojom_schemeful_site_shared", "//url/mojom:url_mojom_origin", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_NETWORK_CPP_SCHEMEFUL_IMPL" ] } # This component is separate from cpp_base as it is a dependency of # //services/network/public/mojom:cookies_mojom. component("first_party_sets_mojom_support") { sources = [ "first_party_sets_mojom_traits.cc", "first_party_sets_mojom_traits.h", ] deps = [ ":schemeful_site_mojom_support", "//mojo/public/cpp/base:shared_typemap_traits", "//net", "//services/network/public/mojom:mojom_first_party_sets_shared", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] defines = [ "IS_FIRST_PARTY_SETS_MOJOM_TRAITS_IMPL" ] } # This component is separate from cpp_base as it is a dependency of # //services/network/public/mojom:cookies_mojom. component("storage_access_api_mojom_support") { sources = [ "storage_access_api_mojom_traits.cc", "storage_access_api_mojom_traits.h", ] deps = [ "//mojo/public/cpp/base:shared_typemap_traits", "//net", "//services/network/public/mojom:mojom_storage_access_api_shared", ] defines = [ "IS_STORAGE_ACCESS_API_MOJOM_TRAITS_IMPL" ] } component("cpp_base") { output_name = "network_cpp_base" sources = [ "cookie_setting_overrides_mojom_traits.cc", "cookie_setting_overrides_mojom_traits.h", "cors/cors_error_status.cc", "cors/cors_error_status.h", "cors/cors_mojom_traits.cc", "cors/cors_mojom_traits.h", "cross_origin_opener_policy.cc", "cross_origin_opener_policy.h", "cross_origin_opener_policy_mojom_traits.cc", "cross_origin_opener_policy_mojom_traits.h", "data_element.cc", "data_element.h", "http_request_headers_mojom_traits.cc", "http_request_headers_mojom_traits.h", "http_request_headers_update_params.cc", "http_request_headers_update_params.h", "isolation_info_mojom_traits.cc", "isolation_info_mojom_traits.h", "load_timing_info_mojom_traits.cc", "load_timing_info_mojom_traits.h", "load_timing_internal_info_mojom_traits.cc", "load_timing_internal_info_mojom_traits.h", "network_anonymization_key_mojom_traits.cc", "network_anonymization_key_mojom_traits.h", "network_interface_mojom_traits.cc", "network_interface_mojom_traits.h", "network_ipc_param_traits.cc", "network_ipc_param_traits.h", "network_isolation_key_mojom_traits.cc", "network_isolation_key_mojom_traits.h", "optional_trust_token_params.cc", "optional_trust_token_params.h", "originating_process_id.cc", "originating_process_id.h", "parsed_request_cookie_mojom_traits.cc", "parsed_request_cookie_mojom_traits.h", "renderer_process_id.h", "resource_request.cc", "resource_request.h", "resource_request_body.cc", "resource_request_body.h", "source_type_mojom_traits.cc", "source_type_mojom_traits.h", "transferable_directory.cc", "transferable_directory.h", "transferable_socket.cc", "transferable_socket.h", "trust_token_parameterization.h", "url_loader_completion_status.cc", "url_loader_completion_status.h", "url_loader_completion_status_mojom_traits.cc", "url_loader_completion_status_mojom_traits.h", "url_request_mojom_traits.cc", "url_request_mojom_traits.h", "url_request_param_mojom_traits.cc", "url_request_param_mojom_traits.h", "web_transport_error_mojom_traits.cc", "web_transport_error_mojom_traits.h", "web_transport_http_request_headers_mojom_traits.cc", "web_transport_http_request_headers_mojom_traits.h", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] public_deps = [ ":connection_allowlist", ":cookies_mojom_support", ":crash_keys", ":cross_origin_embedder_policy", ":document_isolation_policy", ":fetch_retry_options", ":integrity_metadata_mojom_support", ":integrity_policy", ":ip_address_mojom_support", ":network_param_mojom_support", ":proxy_config_mojom_support", ":schemeful_site_mojom_support", ":storage_access_api_mojom_support", ":structured_headers_mojom_support", ":web_platform", "//services/network/public/mojom:url_loader_base", "//url/ipc:url_ipc", "//url/mojom:url_mojom_gurl", "//url/mojom:url_mojom_origin", ] deps = [ ":buildflags", ":first_party_sets_mojom_support", "//base", "//ipc", "//mojo/public/mojom/base", "//net", "//services/network/public/mojom:cookies_mojom", "//services/network/public/mojom:mojom_first_party_sets", "//services/network/public/mojom:mojom_network_isolation_key", "//services/network/public/mojom:mojom_storage_access_api", "//services/network/public/mojom:url_loader_base", ] defines = [ "IS_NETWORK_CPP_BASE_IMPL" ] if (is_fuchsia) { sources += [ "transferable_directory_fuchsia.cc" ] } if (is_linux) { sources += [ "network_interface_change_listener_mojom_traits.cc", "network_interface_change_listener_mojom_traits.h", ] } # TODO(crbug.com/40915226): Remove the need to ignore this warning. if (is_win && is_component_build) { ldflags = [ "/IGNORE:4217" ] } } if (is_p2p_enabled) { component("cpp_p2p") { output_name = "network_cpp_p2p" sources = [ "p2p_param_traits.cc", "p2p_param_traits.h", "p2p_socket_type.h", ] defines = [ "IS_NETWORK_CPP_P2P_IMPL" ] public_deps = [ "//third_party/webrtc_overrides:webrtc_component" ] deps = [ ":network_param_mojom_support", "//ipc", "//net", "//services/network/public/mojom:mojom_shared", ] } } mojom("test_interfaces") { sources = [ "network_traits_test_service.mojom" ] public_deps = [ "//services/network/public/mojom" ] } source_set("test_support") { testonly = true sources = [ "is_potentially_trustworthy_unittest.h" ] public_deps = [ ":cpp", "//base", "//base/test:test_support", "//testing/gmock", "//testing/gtest", "//url:url_test_support", ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } source_set("tests") { testonly = true sources = [ "avail_language_header_parser_unittest.cc", "client_hints_unittest.cc", "connection_allowlist_unittest.cc", "content_decoding_interceptor_unittest.cc", "content_language_parser_unittest.cc", "content_security_policy/content_security_policy_unittest.cc", "content_security_policy/csp_context_unittest.cc", "content_security_policy/csp_source_list_unittest.cc", "content_security_policy/csp_source_unittest.cc", "cookie_manager_mojom_traits_unittest.cc", "cookie_manager_shared_mojom_traits_unittest.cc", "cookie_setting_overrides_mojom_traits_unittest.cc", "cors/cors_mojom_traits_unittest.cc", "cors/cors_unittest.cc", "cors/origin_access_entry_unittest.cc", "cors/origin_access_list_unittest.cc", "cross_origin_embedder_policy_parser_unittest.cc", "cross_origin_opener_policy_parser_unittest.cc", "cross_origin_resource_policy_unittest.cc", "cross_thread_pending_shared_url_loader_factory_unittest.cc", "data_pipe_to_source_stream_unittest.cc", "declarative_performance_observer_parser_unittest.cc", "default_credentials_mojom_traits_unittest.cc", "device_bound_sessions_mojom_traits_unittest.cc", "devtools_observer_unittest.cc", "document_isolation_policy_parser_unittest.cc", "empty_url_loader_client_unittest.cc", "fence_event_reporting_parser_unittest.cc", "file_enumeration_entry_mojom_traits_unittest.cc", "first_party_sets_mojom_traits_unittest.cc", "hash_value_mojom_traits_unittest.cc", "header_util_unittest.cc", "headers_matcher_unittest.cc", "host_resolver_mojom_traits_unittest.cc", "http_request_headers_mojom_traits_unittest.cc", "http_response_headers_mojom_traits_unittest.cc", "initiator_lock_compatibility_unittest.cc", "integrity_policy_parser_unittest.cc", "ip_address_mojom_traits_unittest.cc", "ip_address_space_util_unittest.cc", "is_potentially_trustworthy_unittest.cc", "isolation_info_mojom_traits_unittest.cc", "link_header_parser_unittest.cc", "load_timing_internal_info_mojom_traits_unittest.cc", "mutable_network_traffic_annotation_tag_mojom_traits_unittest.cc", "mutable_partial_network_traffic_annotation_tag_mojom_traits_unittest.cc", "net_log_mojom_traits_unittest.cc", "network_anonymization_key_mojom_traits_unittest.cc", "network_connection_tracker_unittest.cc", "network_isolation_key_mojom_traits_unittest.cc", "network_mojom_traits_unittest.cc", "network_param_mojom_traits_unittest.cc", "network_quality_tracker_unittest.cc", "no_vary_search_header_parser_unittest.cc", "optional_trust_token_params_unittest.cc", "origin_agent_cluster_parser_unittest.cc", "originating_process_id_mojom_traits_unittest.cc", "parsed_headers_unittest.cc", "parsed_request_cookie_mojom_traits_unittest.cc", "permissions_policy/origin_with_possible_wildcards_unittest.cc", "permissions_policy/permissions_policy_declaration_unittest.cc", "permissions_policy/permissions_policy_features_bitset_unittest.cc", "permissions_policy/permissions_policy_features_unittest.cc", "permissions_policy/permissions_policy_mojom_traits_unittest.cc", "permissions_policy/permissions_policy_unittest.cc", "proxy_config_mojom_traits_unittest.cc", "renderer_process_id_mojom_traits_unittest.cc", "request_destination_unittest.cc", "schemeful_site_mojom_traits_unittest.cc", "self_deleting_url_loader_factory_unittest.cc", "shared_dictionary_isolation_key_mojom_traits_unittest.cc", "shared_dictionary_usage_info_mojom_traits_unittest.cc", "signed_certificate_timestamp_mojom_traits_unittest.cc", "simple_host_resolver_unittest.cc", "simple_url_loader_unittest.cc", "socket_broker_impl_unittest.cc", "source_stream_to_data_pipe_unittest.cc", "sri_message_signatures_unittest.cc", "ssl_info_mojom_traits_unittest.cc", "storage_access_api_mojom_traits_unittest.cc", "structured_headers_mojom_traits_unittest.cc", "supports_loading_mode/supports_loading_mode_parser_unittest.cc", "synthetic_response_util_unittest.cc", "timing_allow_origin_parser_unittest.cc", "transferable_directory_unittest.cc", "transferable_socket_unittest.cc", "unencoded_digests_unittest.cc", "url_loader_completion_status_mojom_traits_unittest.cc", "url_loader_factory_builder_unittest.cc", "url_request_mojom_traits_unittest.cc", "url_util_unittest.cc", "web_sandbox_flags_unittest.cc", "web_transport_http_request_headers_mojom_traits_unittest.cc", "websocket_utils_unittest.cc", "x_frame_options_parser_unittest.cc", ] if (is_linux) { sources += [ "network_interface_change_listener_mojom_traits_unittest.cc" ] } deps = [ ":cpp", ":test_interfaces", ":test_support", "//base", "//mojo/public/cpp/bindings", "//mojo/public/cpp/test_support:test_utils", "//net", "//net:test_support", "//services/network:network_service", "//services/network:test_support", "//services/network/public/cpp/cert_verifier:cert_verifier_tests", "//services/network/public/mojom:mojom_permissions_policy", "//testing/gtest", "//third_party/fuzztest", ] public_deps = [ ":buildflags" ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } source_set("perftests") { testonly = true sources = [ "url_request_mojom_traits_perftest.cc" ] deps = [ ":cpp_base", "//base", "//base/test:test_support", "//mojo/public/cpp/bindings", "//mojo/public/cpp/test_support:test_utils", "//net", "//testing/gtest", "//testing/perf", "//third_party/google_benchmark", ] } test("coep_fuzztest") { sources = [ "cross_origin_embedder_policy_parser_fuzztest.cc" ] fuzztests = [ "CrossOriginEmbedderPolicyParserTest.CrossOriginEmbedderPolicyParserFuzzerTest" ] deps = [ ":cpp", "//third_party/fuzztest:fuzztest_gtest_main", ] } fuzzer_test("coop_fuzzer") { sources = [ "cross_origin_opener_policy_parser_fuzzer.cc" ] dict = "cross_origin_opener_policy.dict" deps = [ ":cpp" ] } fuzzer_test("xfo_fuzzer") { sources = [ "x_frame_options_parser_fuzzer.cc" ] dict = "x_frame_options.dict" deps = [ ":cpp" ] } fuzzer_test("cors_fuzzer") { sources = [ "cors/cors_fuzzer.cc" ] deps = [ ":cpp" ] seed_corpus = "//services/network/public/cpp/cors/corpus" } fuzzer_test("client_hints_fuzzer") { sources = [ "client_hints_fuzzer.cc" ] deps = [ ":cpp", "//base", "//base:i18n", ] } fuzzer_test("avail_language_header_fuzzer") { sources = [ "avail_language_header_fuzzer.cc" ] deps = [ ":cpp", "//services/network/public/mojom:url_loader_base", ] }