# Copyright 2013 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("//build/config/chromecast_build.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/compiler/compiler.gni") import("//build/config/cronet/config.gni") import("//build/config/features.gni") import("//crypto/features.gni") import("//net/features.gni") import("//third_party/icu/config.gni") import("//third_party/protobuf/proto_library.gni") import("//tools/grit/grit_rule.gni") import("//url/features.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") import("//third_party/jni_zero/jni_zero.gni") } else if (is_mac) { import("//build/config/mac/mac_sdk.gni") } else if (is_ios) { import("//build/config/ios/bundle_data_from_filelist.gni") } # Android: # The way the cache uses mmap() is inefficient on some Android devices. If # this flag is set, we hackily avoid using mmap() in the disk cache. We are # pretty confident that mmap-ing the index would not hurt any existing x86 # android devices, but we cannot be so sure about the variety of ARM devices. # So enable it for x86 only for now. # Fuchsia: # Writable mmap isn't supported on Fuchsia, so it should be bypassed. posix_bypass_mmap = (is_android && current_cpu != "x86") || is_fuchsia enable_built_in_dns = use_blink # TODO(droger): Support client auth on iOS. See http://crbug.com/145954). # # Historically this was disabled because client auth required # platform-specific code deep in //net. Nowadays, this is abstracted away and # we could enable the interfaces on iOS for platform-independence. However, # merely enabling them changes our behavior from automatically proceeding # with no client certificate to raising # `URLRequest::Delegate::OnCertificateRequested`. Callers would need to be # updated to apply that behavior manually. # # If fixing this, re-enable the tests in ssl_client_socket_unittest.cc and # ssl_server_socket_unittest.cc which are disabled on iOS. enable_client_certificates = !is_ios || (use_blink && !is_cronet_build) # Unix sockets are not supported on iOS. enable_unix_sockets = is_posix && !is_ios # x86/x64 cast_shell builds run on regular trybots and can use python runtime # and remote test server. ARM cast_shell builds don't have python runtime. is_arm_cast_shell_build = (is_castos || is_cast_android) && (current_cpu == "arm" || current_cpu == "arm64") # Python works only on Linux, MacOS and Windows so exclude the others, # chromecast, android, fuchsia, ios. enable_python_utils = !is_arm_cast_shell_build && !is_android && !is_fuchsia && !is_ios # Platforms that cannot use python_utils (like Android but see full # list above) will instead use a remote server. use_remote_test_server = !enable_python_utils && (enable_websockets || (is_cronet_build && !is_ios)) # Whether //net should use an external GSSAPI library for implementing HTTP # Negotiate authentication. All platforms for which use_kerberos is true should # have some external implementation since //net doesn't have intrinsic support # for Kerberos. This implementation is an external GSSAPI library on all # platforms except on: # # Windows : Uses SSPI for Negotiate authentication. # # Android : Uses an external authenticator. See # https://www.chromium.org/developers/design-documents/http-authentication/writing-a-spnego-authenticator-for-chrome-on-android use_external_gssapi = use_kerberos && !is_android && !is_win config("net_test_config") { if (use_remote_test_server) { defines = [ "USE_REMOTE_TEST_SERVER" ] } } buildflag_header("buildflags") { header = "net_buildflags.h" flags = [ "POSIX_BYPASS_MMAP=$posix_bypass_mmap", "DISABLE_FILE_SUPPORT=$disable_file_support", "ENABLE_MDNS=$enable_mdns", "ENABLE_REPORTING=$enable_reporting", "ENABLE_WEBSOCKETS=$enable_websockets", "ENABLE_CLIENT_CERTIFICATES=$enable_client_certificates", "INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=$include_transport_security_state_preload_list", "USE_KERBEROS=$use_kerberos", "USE_EXTERNAL_GSSAPI=$use_external_gssapi", "CHROME_ROOT_STORE_OPTIONAL=$chrome_root_store_optional", "CHROME_ROOT_STORE_ONLY=$chrome_root_store_only", "CHROME_ROOT_STORE_SUPPORTED=$chrome_root_store_supported", ] } config("net_internal_config") { defines = [ "NET_IMPLEMENTATION" ] if (enable_built_in_dns) { defines += [ "ENABLE_BUILT_IN_DNS" ] } } net_configs = [ ":net_internal_config", "//build/config:precompiled_headers", "//build/config/compiler:wexit_time_destructors", ] if (is_linux || is_chromeos) { net_configs += [ "//build/config/linux:libresolv" ] } source_set("constants") { sources = [ "base/trace_constants.h" ] deps = [ "//base" ] } buildflag_header("cronet_buildflags") { header = "cronet_buildflags.h" header_dir = "net/base" flags = [ "CRONET_BUILD=$is_cronet_build" ] } component("net") { sources = [ "base/address_family.cc", "base/address_family.h", "base/address_list.cc", "base/address_list.h", "base/auth.cc", "base/auth.h", "base/backoff_entry.cc", "base/backoff_entry.h", "base/backoff_entry_serializer.cc", "base/backoff_entry_serializer.h", "base/cache_metrics.cc", "base/cache_metrics.h", "base/cache_type.h", "base/chunked_upload_data_stream.cc", "base/chunked_upload_data_stream.h", "base/completion_once_callback.h", "base/completion_repeating_callback.h", "base/connection_endpoint_metadata.cc", "base/connection_endpoint_metadata.h", "base/data_url.cc", "base/data_url.h", "base/datagram_buffer.cc", "base/datagram_buffer.h", "base/elements_upload_data_stream.cc", "base/elements_upload_data_stream.h", "base/expiring_cache.h", "base/features.cc", "base/features.h", "base/file_stream.cc", "base/file_stream.h", "base/file_stream_context.cc", "base/file_stream_context.h", "base/filename_util.cc", "base/filename_util.h", "base/filename_util_internal.cc", "base/filename_util_internal.h", "base/hash_value.cc", "base/hash_value.h", "base/hex_utils.cc", "base/hex_utils.h", "base/host_mapping_rules.cc", "base/host_mapping_rules.h", "base/host_port_pair.cc", "base/host_port_pair.h", "base/http_user_agent_settings.h", "base/idempotency.h", "base/interval.h", "base/io_buffer.cc", "base/io_buffer.h", "base/ip_address.cc", "base/ip_address.h", "base/ip_endpoint.cc", "base/ip_endpoint.h", "base/isolation_info.cc", "base/isolation_info.h", "base/load_flags.h", "base/load_flags_list.h", "base/load_states.h", "base/load_states_list.h", "base/load_timing_info.cc", "base/load_timing_info.h", "base/logging_network_change_observer.cc", "base/logging_network_change_observer.h", "base/lookup_string_in_fixed_set.cc", "base/lookup_string_in_fixed_set.h", "base/mime_sniffer.cc", "base/mime_sniffer.h", "base/mime_util.cc", "base/mime_util.h", "base/net_error_details.h", "base/net_error_list.h", "base/net_errors.cc", "base/net_errors.h", "base/net_info_source_list.h", "base/net_module.cc", "base/net_module.h", "base/net_string_util.h", "base/network_activity_monitor.cc", "base/network_activity_monitor.h", "base/network_anonymization_key.cc", "base/network_anonymization_key.h", "base/network_change_notifier.cc", "base/network_change_notifier.h", "base/network_change_notifier_factory.h", "base/network_delegate.cc", "base/network_delegate.h", "base/network_delegate_impl.cc", "base/network_delegate_impl.h", "base/network_handle.h", "base/network_interfaces.cc", "base/network_interfaces.h", "base/network_isolation_key.cc", "base/network_isolation_key.h", "base/parse_number.cc", "base/parse_number.h", "base/platform_mime_util.h", "base/port_util.cc", "base/port_util.h", "base/prioritized_dispatcher.cc", "base/prioritized_dispatcher.h", "base/prioritized_task_runner.cc", "base/prioritized_task_runner.h", "base/priority_queue.h", "base/privacy_mode.cc", "base/privacy_mode.h", "base/proxy_delegate.h", "base/proxy_server.cc", "base/proxy_server.h", "base/proxy_string_util.cc", "base/proxy_string_util.h", "base/rand_callback.h", "base/registry_controlled_domains/registry_controlled_domain.cc", "base/registry_controlled_domains/registry_controlled_domain.h", "base/request_priority.cc", "base/request_priority.h", "base/scheme_host_port_matcher.cc", "base/scheme_host_port_matcher.h", "base/scheme_host_port_matcher_result.h", "base/scheme_host_port_matcher_rule.cc", "base/scheme_host_port_matcher_rule.h", "base/schemeful_site.cc", "base/schemeful_site.h", "base/sockaddr_storage.cc", "base/sockaddr_storage.h", "base/sys_addrinfo.h", "base/trace_event_stub.h", "base/tracing.h", "base/transport_info.cc", "base/transport_info.h", "base/upload_bytes_element_reader.cc", "base/upload_bytes_element_reader.h", "base/upload_data_stream.cc", "base/upload_data_stream.h", "base/upload_element_reader.cc", "base/upload_element_reader.h", "base/upload_file_element_reader.cc", "base/upload_file_element_reader.h", "base/upload_progress.h", "base/url_search_params.cc", "base/url_search_params.h", "base/url_util.cc", "base/url_util.h", "cert/asn1_util.cc", "cert/asn1_util.h", "cert/caching_cert_verifier.cc", "cert/caching_cert_verifier.h", "cert/cert_and_ct_verifier.cc", "cert/cert_and_ct_verifier.h", "cert/cert_database.cc", "cert/cert_database.h", "cert/cert_net_fetcher.h", "cert/cert_status_flags.cc", "cert/cert_status_flags.h", "cert/cert_status_flags_list.h", "cert/cert_verifier.cc", "cert/cert_verifier.h", "cert/cert_verify_proc.cc", "cert/cert_verify_proc.h", "cert/cert_verify_proc_blocklist.inc", "cert/cert_verify_proc_builtin.cc", "cert/cert_verify_proc_builtin.h", "cert/cert_verify_result.cc", "cert/cert_verify_result.h", "cert/client_cert_verifier.h", "cert/coalescing_cert_verifier.cc", "cert/coalescing_cert_verifier.h", "cert/crl_set.cc", "cert/crl_set.h", "cert/ct_log_response_parser.cc", "cert/ct_log_response_parser.h", "cert/ct_log_verifier.cc", "cert/ct_log_verifier.h", "cert/ct_log_verifier_util.cc", "cert/ct_log_verifier_util.h", "cert/ct_objects_extractor.cc", "cert/ct_objects_extractor.h", "cert/ct_policy_enforcer.cc", "cert/ct_policy_enforcer.h", "cert/ct_policy_status.h", "cert/ct_sct_to_string.cc", "cert/ct_sct_to_string.h", "cert/ct_serialization.cc", "cert/ct_serialization.h", "cert/ct_signed_certificate_timestamp_log_param.cc", "cert/ct_signed_certificate_timestamp_log_param.h", "cert/ct_verifier.h", "cert/do_nothing_ct_verifier.cc", "cert/do_nothing_ct_verifier.h", "cert/ev_root_ca_metadata.cc", "cert/ev_root_ca_metadata.h", "cert/internal/cert_issuer_source_aia.cc", "cert/internal/cert_issuer_source_aia.h", "cert/internal/revocation_checker.cc", "cert/internal/revocation_checker.h", "cert/internal/system_trust_store.cc", "cert/internal/system_trust_store.h", "cert/internal/trust_store_features.cc", "cert/internal/trust_store_features.h", "cert/known_roots.cc", "cert/known_roots.h", "cert/merkle_audit_proof.cc", "cert/merkle_audit_proof.h", "cert/merkle_consistency_proof.cc", "cert/merkle_consistency_proof.h", "cert/merkle_tree_leaf.cc", "cert/merkle_tree_leaf.h", "cert/multi_log_ct_verifier.cc", "cert/multi_log_ct_verifier.h", "cert/multi_threaded_cert_verifier.cc", "cert/multi_threaded_cert_verifier.h", "cert/ocsp_revocation_status.h", "cert/ocsp_verify_result.cc", "cert/ocsp_verify_result.h", "cert/pem.cc", "cert/pem.h", "cert/pki/cert_error_id.cc", "cert/pki/cert_error_id.h", "cert/pki/cert_error_params.cc", "cert/pki/cert_error_params.h", "cert/pki/cert_errors.cc", "cert/pki/cert_errors.h", "cert/pki/cert_issuer_source.h", "cert/pki/cert_issuer_source_static.cc", "cert/pki/cert_issuer_source_static.h", "cert/pki/certificate_policies.cc", "cert/pki/certificate_policies.h", "cert/pki/common_cert_errors.cc", "cert/pki/common_cert_errors.h", "cert/pki/crl.cc", "cert/pki/crl.h", "cert/pki/extended_key_usage.cc", "cert/pki/extended_key_usage.h", "cert/pki/general_names.cc", "cert/pki/general_names.h", "cert/pki/ip_util.cc", "cert/pki/ip_util.h", "cert/pki/name_constraints.cc", "cert/pki/name_constraints.h", "cert/pki/ocsp.cc", "cert/pki/ocsp.h", "cert/pki/parse_certificate.cc", "cert/pki/parse_certificate.h", "cert/pki/parse_name.cc", "cert/pki/parse_name.h", "cert/pki/parsed_certificate.cc", "cert/pki/parsed_certificate.h", "cert/pki/path_builder.cc", "cert/pki/path_builder.h", "cert/pki/revocation_util.cc", "cert/pki/revocation_util.h", "cert/pki/signature_algorithm.cc", "cert/pki/signature_algorithm.h", "cert/pki/signature_verify_cache.h", "cert/pki/simple_path_builder_delegate.cc", "cert/pki/simple_path_builder_delegate.h", "cert/pki/string_util.cc", "cert/pki/string_util.h", "cert/pki/trust_store.cc", "cert/pki/trust_store.h", "cert/pki/trust_store_collection.cc", "cert/pki/trust_store_collection.h", "cert/pki/trust_store_in_memory.cc", "cert/pki/trust_store_in_memory.h", "cert/pki/verify_certificate_chain.cc", "cert/pki/verify_certificate_chain.h", "cert/pki/verify_name_match.cc", "cert/pki/verify_name_match.h", "cert/pki/verify_signed_data.cc", "cert/pki/verify_signed_data.h", "cert/root_cert_list_generated.h", "cert/sct_auditing_delegate.h", "cert/sct_status_flags.cc", "cert/sct_status_flags.h", "cert/signed_certificate_timestamp.cc", "cert/signed_certificate_timestamp.h", "cert/signed_certificate_timestamp_and_status.cc", "cert/signed_certificate_timestamp_and_status.h", "cert/signed_tree_head.cc", "cert/signed_tree_head.h", "cert/symantec_certs.cc", "cert/symantec_certs.h", "cert/test_root_certs.cc", "cert/test_root_certs.h", "cert/time_conversions.cc", "cert/time_conversions.h", "cert/x509_cert_types.cc", "cert/x509_cert_types.h", "cert/x509_certificate.cc", "cert/x509_certificate.h", "cert/x509_certificate_net_log_param.cc", "cert/x509_certificate_net_log_param.h", "cert/x509_util.cc", "cert/x509_util.h", "cert_net/cert_net_fetcher_url_request.cc", "cert_net/cert_net_fetcher_url_request.h", "cookies/canonical_cookie.cc", "cookies/canonical_cookie.h", "cookies/cookie_access_delegate.cc", "cookies/cookie_access_delegate.h", "cookies/cookie_access_result.cc", "cookies/cookie_access_result.h", "cookies/cookie_change_dispatcher.cc", "cookies/cookie_change_dispatcher.h", "cookies/cookie_constants.cc", "cookies/cookie_constants.h", "cookies/cookie_deletion_info.cc", "cookies/cookie_deletion_info.h", "cookies/cookie_inclusion_status.cc", "cookies/cookie_inclusion_status.h", "cookies/cookie_monster.cc", "cookies/cookie_monster.h", "cookies/cookie_monster_change_dispatcher.cc", "cookies/cookie_monster_change_dispatcher.h", "cookies/cookie_monster_netlog_params.cc", "cookies/cookie_monster_netlog_params.h", "cookies/cookie_options.cc", "cookies/cookie_options.h", "cookies/cookie_partition_key.cc", "cookies/cookie_partition_key.h", "cookies/cookie_partition_key_collection.cc", "cookies/cookie_partition_key_collection.h", "cookies/cookie_setting_override.h", "cookies/cookie_store.cc", "cookies/cookie_store.h", "cookies/cookie_util.cc", "cookies/cookie_util.h", "cookies/parsed_cookie.cc", "cookies/parsed_cookie.h", "cookies/site_for_cookies.cc", "cookies/site_for_cookies.h", "cookies/static_cookie_policy.cc", "cookies/static_cookie_policy.h", "der/encode_values.cc", "der/encode_values.h", "der/input.cc", "der/input.h", "der/parse_values.cc", "der/parse_values.h", "der/parser.cc", "der/parser.h", "der/tag.cc", "der/tag.h", "disk_cache/backend_cleanup_tracker.cc", "disk_cache/backend_cleanup_tracker.h", "disk_cache/blockfile/addr.cc", "disk_cache/blockfile/addr.h", "disk_cache/blockfile/backend_impl.cc", "disk_cache/blockfile/backend_impl.h", "disk_cache/blockfile/bitmap.cc", "disk_cache/blockfile/bitmap.h", "disk_cache/blockfile/block_files.cc", "disk_cache/blockfile/block_files.h", "disk_cache/blockfile/disk_format.cc", "disk_cache/blockfile/disk_format.h", "disk_cache/blockfile/disk_format_base.h", "disk_cache/blockfile/entry_impl.cc", "disk_cache/blockfile/entry_impl.h", "disk_cache/blockfile/errors.h", "disk_cache/blockfile/eviction.cc", "disk_cache/blockfile/eviction.h", "disk_cache/blockfile/experiments.h", "disk_cache/blockfile/file.cc", "disk_cache/blockfile/file.h", "disk_cache/blockfile/file_block.h", "disk_cache/blockfile/file_lock.cc", "disk_cache/blockfile/file_lock.h", "disk_cache/blockfile/in_flight_backend_io.cc", "disk_cache/blockfile/in_flight_backend_io.h", "disk_cache/blockfile/in_flight_io.cc", "disk_cache/blockfile/in_flight_io.h", "disk_cache/blockfile/mapped_file.cc", "disk_cache/blockfile/mapped_file.h", "disk_cache/blockfile/rankings.cc", "disk_cache/blockfile/rankings.h", "disk_cache/blockfile/sparse_control.cc", "disk_cache/blockfile/sparse_control.h", "disk_cache/blockfile/stats.cc", "disk_cache/blockfile/stats.h", "disk_cache/blockfile/storage_block-inl.h", "disk_cache/blockfile/storage_block.h", "disk_cache/blockfile/stress_support.h", "disk_cache/cache_util.cc", "disk_cache/cache_util.h", "disk_cache/disk_cache.cc", "disk_cache/disk_cache.h", "disk_cache/memory/mem_backend_impl.cc", "disk_cache/memory/mem_backend_impl.h", "disk_cache/memory/mem_entry_impl.cc", "disk_cache/memory/mem_entry_impl.h", "disk_cache/net_log_parameters.cc", "disk_cache/net_log_parameters.h", "disk_cache/simple/post_doom_waiter.cc", "disk_cache/simple/post_doom_waiter.h", "disk_cache/simple/simple_backend_impl.cc", "disk_cache/simple/simple_backend_impl.h", "disk_cache/simple/simple_backend_version.h", "disk_cache/simple/simple_entry_format.cc", "disk_cache/simple/simple_entry_format.h", "disk_cache/simple/simple_entry_format_history.h", "disk_cache/simple/simple_entry_impl.cc", "disk_cache/simple/simple_entry_impl.h", "disk_cache/simple/simple_entry_operation.cc", "disk_cache/simple/simple_entry_operation.h", "disk_cache/simple/simple_file_enumerator.cc", "disk_cache/simple/simple_file_enumerator.h", "disk_cache/simple/simple_file_tracker.cc", "disk_cache/simple/simple_file_tracker.h", "disk_cache/simple/simple_histogram_macros.h", "disk_cache/simple/simple_index.cc", "disk_cache/simple/simple_index.h", "disk_cache/simple/simple_index_delegate.h", "disk_cache/simple/simple_index_file.cc", "disk_cache/simple/simple_index_file.h", "disk_cache/simple/simple_net_log_parameters.cc", "disk_cache/simple/simple_net_log_parameters.h", "disk_cache/simple/simple_synchronous_entry.cc", "disk_cache/simple/simple_synchronous_entry.h", "disk_cache/simple/simple_util.cc", "disk_cache/simple/simple_util.h", "disk_cache/simple/simple_version_upgrade.cc", "disk_cache/simple/simple_version_upgrade.h", "filter/filter_source_stream.cc", "filter/filter_source_stream.h", "filter/gzip_header.cc", "filter/gzip_header.h", "filter/gzip_source_stream.cc", "filter/gzip_source_stream.h", "filter/source_stream.cc", "filter/source_stream.h", "first_party_sets/addition_overlaps_union_find.cc", "first_party_sets/addition_overlaps_union_find.h", "first_party_sets/first_party_set_entry.cc", "first_party_sets/first_party_set_entry.h", "first_party_sets/first_party_set_entry_override.cc", "first_party_sets/first_party_set_entry_override.h", "first_party_sets/first_party_set_metadata.cc", "first_party_sets/first_party_set_metadata.h", "first_party_sets/first_party_sets_cache_filter.cc", "first_party_sets/first_party_sets_cache_filter.h", "first_party_sets/first_party_sets_context_config.cc", "first_party_sets/first_party_sets_context_config.h", "first_party_sets/global_first_party_sets.cc", "first_party_sets/global_first_party_sets.h", "http/alternative_service.cc", "http/alternative_service.h", "http/bidirectional_stream.cc", "http/bidirectional_stream.h", "http/bidirectional_stream_impl.cc", "http/bidirectional_stream_impl.h", "http/bidirectional_stream_request_info.cc", "http/bidirectional_stream_request_info.h", "http/broken_alternative_services.cc", "http/broken_alternative_services.h", "http/http_auth.cc", "http/http_auth.h", "http/http_auth_cache.cc", "http/http_auth_cache.h", "http/http_auth_challenge_tokenizer.cc", "http/http_auth_challenge_tokenizer.h", "http/http_auth_controller.cc", "http/http_auth_controller.h", "http/http_auth_filter.cc", "http/http_auth_filter.h", "http/http_auth_handler.cc", "http/http_auth_handler.h", "http/http_auth_handler_basic.cc", "http/http_auth_handler_basic.h", "http/http_auth_handler_digest.cc", "http/http_auth_handler_digest.h", "http/http_auth_handler_factory.cc", "http/http_auth_handler_factory.h", "http/http_auth_handler_ntlm.cc", "http/http_auth_handler_ntlm.h", "http/http_auth_mechanism.h", "http/http_auth_multi_round_parse.cc", "http/http_auth_multi_round_parse.h", "http/http_auth_preferences.cc", "http/http_auth_preferences.h", "http/http_auth_scheme.cc", "http/http_auth_scheme.h", "http/http_basic_state.cc", "http/http_basic_state.h", "http/http_basic_stream.cc", "http/http_basic_stream.h", "http/http_byte_range.cc", "http/http_byte_range.h", "http/http_cache.cc", "http/http_cache.h", "http/http_cache_transaction.cc", "http/http_cache_transaction.h", "http/http_cache_writers.cc", "http/http_cache_writers.h", "http/http_chunked_decoder.cc", "http/http_chunked_decoder.h", "http/http_content_disposition.cc", "http/http_content_disposition.h", "http/http_log_util.cc", "http/http_log_util.h", "http/http_network_layer.cc", "http/http_network_layer.h", "http/http_network_session.cc", "http/http_network_session.h", "http/http_network_session_peer.cc", "http/http_network_session_peer.h", "http/http_network_transaction.cc", "http/http_network_transaction.h", "http/http_no_vary_search_data.cc", "http/http_no_vary_search_data.h", "http/http_proxy_client_socket.cc", "http/http_proxy_client_socket.h", "http/http_proxy_connect_job.cc", "http/http_proxy_connect_job.h", "http/http_raw_request_headers.cc", "http/http_raw_request_headers.h", "http/http_request_headers.cc", "http/http_request_headers.h", "http/http_request_info.cc", "http/http_request_info.h", "http/http_response_body_drainer.cc", "http/http_response_body_drainer.h", "http/http_response_headers.cc", "http/http_response_headers.h", "http/http_response_info.cc", "http/http_response_info.h", "http/http_security_headers.cc", "http/http_security_headers.h", "http/http_server_properties.cc", "http/http_server_properties.h", "http/http_server_properties_manager.cc", "http/http_server_properties_manager.h", "http/http_status_code.cc", "http/http_status_code.h", "http/http_status_code_list.h", "http/http_stream.cc", "http/http_stream.h", "http/http_stream_factory.cc", "http/http_stream_factory.h", "http/http_stream_factory_job.cc", "http/http_stream_factory_job.h", "http/http_stream_factory_job_controller.cc", "http/http_stream_factory_job_controller.h", "http/http_stream_parser.cc", "http/http_stream_parser.h", "http/http_stream_request.cc", "http/http_stream_request.h", "http/http_transaction.h", "http/http_transaction_factory.h", "http/http_util.cc", "http/http_util.h", "http/http_vary_data.cc", "http/http_vary_data.h", "http/http_version.h", "http/partial_data.cc", "http/partial_data.h", "http/proxy_client_socket.cc", "http/proxy_client_socket.h", "http/proxy_fallback.cc", "http/proxy_fallback.h", "http/structured_headers.h", "http/transport_security_persister.cc", "http/transport_security_persister.h", "http/transport_security_state.h", "http/transport_security_state_source.cc", "http/transport_security_state_source.h", "http/url_security_manager.cc", "http/url_security_manager.h", "log/file_net_log_observer.cc", "log/file_net_log_observer.h", "log/net_log.cc", "log/net_log.h", "log/net_log_capture_mode.cc", "log/net_log_capture_mode.h", "log/net_log_entry.cc", "log/net_log_entry.h", "log/net_log_event_type.cc", "log/net_log_event_type.h", "log/net_log_event_type_list.h", "log/net_log_source.cc", "log/net_log_source.h", "log/net_log_source_type.h", "log/net_log_source_type_list.h", "log/net_log_util.cc", "log/net_log_util.h", "log/net_log_values.cc", "log/net_log_values.h", "log/net_log_with_source.cc", "log/net_log_with_source.h", "log/trace_net_log_observer.cc", "log/trace_net_log_observer.h", "nqe/cached_network_quality.cc", "nqe/cached_network_quality.h", "nqe/effective_connection_type.cc", "nqe/effective_connection_type.h", "nqe/effective_connection_type_observer.h", "nqe/event_creator.cc", "nqe/event_creator.h", "nqe/network_id.cc", "nqe/network_id.h", "nqe/network_qualities_prefs_manager.cc", "nqe/network_qualities_prefs_manager.h", "nqe/network_quality.cc", "nqe/network_quality.h", "nqe/network_quality_estimator.cc", "nqe/network_quality_estimator.h", "nqe/network_quality_estimator_params.cc", "nqe/network_quality_estimator_params.h", "nqe/network_quality_estimator_util.cc", "nqe/network_quality_estimator_util.h", "nqe/network_quality_observation.cc", "nqe/network_quality_observation.h", "nqe/network_quality_observation_source.h", "nqe/network_quality_store.cc", "nqe/network_quality_store.h", "nqe/observation_buffer.cc", "nqe/observation_buffer.h", "nqe/peer_to_peer_connections_count_observer.h", "nqe/pref_names.cc", "nqe/pref_names.h", "nqe/rtt_throughput_estimates_observer.h", "nqe/socket_watcher.cc", "nqe/socket_watcher.h", "nqe/socket_watcher_factory.cc", "nqe/socket_watcher_factory.h", "nqe/throughput_analyzer.cc", "nqe/throughput_analyzer.h", "nqe/weighted_observation.h", "proxy_resolution/configured_proxy_resolution_request.cc", "proxy_resolution/configured_proxy_resolution_request.h", "proxy_resolution/configured_proxy_resolution_service.cc", "proxy_resolution/configured_proxy_resolution_service.h", "proxy_resolution/dhcp_pac_file_fetcher.cc", "proxy_resolution/dhcp_pac_file_fetcher.h", "proxy_resolution/multi_threaded_proxy_resolver.cc", "proxy_resolution/multi_threaded_proxy_resolver.h", "proxy_resolution/network_delegate_error_observer.cc", "proxy_resolution/network_delegate_error_observer.h", "proxy_resolution/pac_file_data.cc", "proxy_resolution/pac_file_data.h", "proxy_resolution/pac_file_decider.cc", "proxy_resolution/pac_file_decider.h", "proxy_resolution/pac_file_fetcher.cc", "proxy_resolution/pac_file_fetcher.h", "proxy_resolution/pac_file_fetcher_impl.cc", "proxy_resolution/pac_file_fetcher_impl.h", "proxy_resolution/polling_proxy_config_service.cc", "proxy_resolution/polling_proxy_config_service.h", "proxy_resolution/proxy_bypass_rules.cc", "proxy_resolution/proxy_bypass_rules.h", "proxy_resolution/proxy_config.cc", "proxy_resolution/proxy_config.h", "proxy_resolution/proxy_config_service.cc", "proxy_resolution/proxy_config_service.h", "proxy_resolution/proxy_config_service_fixed.cc", "proxy_resolution/proxy_config_service_fixed.h", "proxy_resolution/proxy_config_with_annotation.cc", "proxy_resolution/proxy_config_with_annotation.h", "proxy_resolution/proxy_info.cc", "proxy_resolution/proxy_info.h", "proxy_resolution/proxy_list.cc", "proxy_resolution/proxy_list.h", "proxy_resolution/proxy_resolution_request.h", "proxy_resolution/proxy_resolution_service.h", "proxy_resolution/proxy_resolve_dns_operation.h", "proxy_resolution/proxy_resolver.h", "proxy_resolution/proxy_resolver_error_observer.h", "proxy_resolution/proxy_resolver_factory.cc", "proxy_resolution/proxy_resolver_factory.h", "proxy_resolution/proxy_retry_info.h", "quic/address_utils.h", "quic/bidirectional_stream_quic_impl.cc", "quic/bidirectional_stream_quic_impl.h", "quic/crypto/proof_source_chromium.cc", "quic/crypto/proof_source_chromium.h", "quic/crypto/proof_verifier_chromium.cc", "quic/crypto/proof_verifier_chromium.h", "quic/dedicated_web_transport_http3_client.cc", "quic/dedicated_web_transport_http3_client.h", "quic/network_connection.cc", "quic/network_connection.h", "quic/platform/impl/quic_chromium_clock.cc", "quic/platform/impl/quic_chromium_clock.h", "quic/properties_based_quic_server_info.cc", "quic/properties_based_quic_server_info.h", "quic/quic_address_mismatch.cc", "quic/quic_address_mismatch.h", "quic/quic_chromium_alarm_factory.cc", "quic/quic_chromium_alarm_factory.h", "quic/quic_chromium_client_session.cc", "quic/quic_chromium_client_session.h", "quic/quic_chromium_client_stream.cc", "quic/quic_chromium_client_stream.h", "quic/quic_chromium_connection_helper.cc", "quic/quic_chromium_connection_helper.h", "quic/quic_chromium_packet_reader.cc", "quic/quic_chromium_packet_reader.h", "quic/quic_chromium_packet_writer.cc", "quic/quic_chromium_packet_writer.h", "quic/quic_clock_skew_detector.cc", "quic/quic_clock_skew_detector.h", "quic/quic_connection_logger.cc", "quic/quic_connection_logger.h", "quic/quic_connectivity_monitor.cc", "quic/quic_connectivity_monitor.h", "quic/quic_context.cc", "quic/quic_context.h", "quic/quic_crypto_client_config_handle.cc", "quic/quic_crypto_client_config_handle.h", "quic/quic_crypto_client_stream_factory.cc", "quic/quic_crypto_client_stream_factory.h", "quic/quic_event_logger.cc", "quic/quic_event_logger.h", "quic/quic_http3_logger.cc", "quic/quic_http3_logger.h", "quic/quic_http_stream.cc", "quic/quic_http_stream.h", "quic/quic_http_utils.cc", "quic/quic_http_utils.h", "quic/quic_proxy_client_socket.cc", "quic/quic_proxy_client_socket.h", "quic/quic_server_info.cc", "quic/quic_server_info.h", "quic/quic_session_key.cc", "quic/quic_session_key.h", "quic/quic_stream_factory.cc", "quic/quic_stream_factory.h", "quic/set_quic_flag.cc", "quic/set_quic_flag.h", "quic/web_transport_client.cc", "quic/web_transport_client.h", "quic/web_transport_error.cc", "quic/web_transport_error.h", "socket/client_socket_factory.cc", "socket/client_socket_factory.h", "socket/client_socket_handle.cc", "socket/client_socket_handle.h", "socket/client_socket_pool.cc", "socket/client_socket_pool.h", "socket/client_socket_pool_manager.cc", "socket/client_socket_pool_manager.h", "socket/client_socket_pool_manager_impl.cc", "socket/client_socket_pool_manager_impl.h", "socket/connect_job.cc", "socket/connect_job.h", "socket/connect_job_factory.cc", "socket/connect_job_factory.h", "socket/connection_attempts.h", "socket/datagram_client_socket.h", "socket/datagram_server_socket.h", "socket/datagram_socket.h", "socket/diff_serv_code_point.h", "socket/network_binding_client_socket_factory.cc", "socket/network_binding_client_socket_factory.h", "socket/next_proto.cc", "socket/next_proto.h", "socket/server_socket.cc", "socket/server_socket.h", "socket/socket.cc", "socket/socket.h", "socket/socket_bio_adapter.cc", "socket/socket_bio_adapter.h", "socket/socket_descriptor.cc", "socket/socket_descriptor.h", "socket/socket_net_log_params.cc", "socket/socket_net_log_params.h", "socket/socket_options.cc", "socket/socket_options.h", "socket/socket_performance_watcher.h", "socket/socket_performance_watcher_factory.h", "socket/socket_tag.cc", "socket/socket_tag.h", "socket/socks5_client_socket.cc", "socket/socks5_client_socket.h", "socket/socks_client_socket.cc", "socket/socks_client_socket.h", "socket/socks_connect_job.cc", "socket/socks_connect_job.h", "socket/ssl_client_socket.cc", "socket/ssl_client_socket.h", "socket/ssl_client_socket_impl.cc", "socket/ssl_client_socket_impl.h", "socket/ssl_connect_job.cc", "socket/ssl_connect_job.h", "socket/ssl_server_socket.h", "socket/ssl_server_socket_impl.cc", "socket/ssl_server_socket_impl.h", "socket/ssl_socket.h", "socket/stream_socket.cc", "socket/stream_socket.h", "socket/tcp_client_socket.cc", "socket/tcp_client_socket.h", "socket/tcp_server_socket.cc", "socket/tcp_server_socket.h", "socket/tcp_socket.h", "socket/transport_client_socket.cc", "socket/transport_client_socket.h", "socket/transport_client_socket_pool.cc", "socket/transport_client_socket_pool.h", "socket/transport_connect_job.cc", "socket/transport_connect_job.h", "socket/transport_connect_sub_job.cc", "socket/transport_connect_sub_job.h", "socket/udp_client_socket.cc", "socket/udp_client_socket.h", "socket/udp_net_log_parameters.cc", "socket/udp_net_log_parameters.h", "socket/udp_server_socket.cc", "socket/udp_server_socket.h", "socket/udp_socket.h", "socket/udp_socket_global_limits.cc", "socket/udp_socket_global_limits.h", "socket/websocket_endpoint_lock_manager.cc", "socket/websocket_endpoint_lock_manager.h", "socket/websocket_transport_client_socket_pool.cc", "socket/websocket_transport_client_socket_pool.h", "spdy/alps_decoder.cc", "spdy/alps_decoder.h", "spdy/bidirectional_stream_spdy_impl.cc", "spdy/bidirectional_stream_spdy_impl.h", "spdy/buffered_spdy_framer.cc", "spdy/buffered_spdy_framer.h", "spdy/header_coalescer.cc", "spdy/header_coalescer.h", "spdy/http2_priority_dependencies.cc", "spdy/http2_priority_dependencies.h", "spdy/multiplexed_http_stream.cc", "spdy/multiplexed_http_stream.h", "spdy/multiplexed_session.cc", "spdy/multiplexed_session.h", "spdy/spdy_buffer.cc", "spdy/spdy_buffer.h", "spdy/spdy_buffer_producer.cc", "spdy/spdy_buffer_producer.h", "spdy/spdy_http_stream.cc", "spdy/spdy_http_stream.h", "spdy/spdy_http_utils.cc", "spdy/spdy_http_utils.h", "spdy/spdy_log_util.cc", "spdy/spdy_log_util.h", "spdy/spdy_proxy_client_socket.cc", "spdy/spdy_proxy_client_socket.h", "spdy/spdy_read_queue.cc", "spdy/spdy_read_queue.h", "spdy/spdy_session.cc", "spdy/spdy_session.h", "spdy/spdy_session_key.cc", "spdy/spdy_session_key.h", "spdy/spdy_session_pool.cc", "spdy/spdy_session_pool.h", "spdy/spdy_stream.cc", "spdy/spdy_stream.h", "spdy/spdy_write_queue.cc", "spdy/spdy_write_queue.h", "ssl/cert_compression.cc", "ssl/cert_compression.h", "ssl/client_cert_identity.cc", "ssl/client_cert_identity.h", "ssl/client_cert_store.h", "ssl/openssl_ssl_util.cc", "ssl/openssl_ssl_util.h", "ssl/ssl_cert_request_info.cc", "ssl/ssl_cert_request_info.h", "ssl/ssl_cipher_suite_names.cc", "ssl/ssl_cipher_suite_names.h", "ssl/ssl_client_auth_cache.cc", "ssl/ssl_client_auth_cache.h", "ssl/ssl_client_session_cache.cc", "ssl/ssl_client_session_cache.h", "ssl/ssl_config.cc", "ssl/ssl_config.h", "ssl/ssl_config_service.cc", "ssl/ssl_config_service.h", "ssl/ssl_config_service_defaults.cc", "ssl/ssl_config_service_defaults.h", "ssl/ssl_connection_status_flags.h", "ssl/ssl_handshake_details.h", "ssl/ssl_info.cc", "ssl/ssl_info.h", "ssl/ssl_key_logger.cc", "ssl/ssl_key_logger.h", "ssl/ssl_key_logger_impl.cc", "ssl/ssl_key_logger_impl.h", "ssl/ssl_legacy_crypto_fallback.h", "ssl/ssl_platform_key_util.cc", "ssl/ssl_platform_key_util.h", "ssl/ssl_private_key.cc", "ssl/ssl_private_key.h", "ssl/ssl_server_config.cc", "ssl/ssl_server_config.h", "ssl/threaded_ssl_private_key.cc", "ssl/threaded_ssl_private_key.h", "url_request/clear_site_data.cc", "url_request/clear_site_data.h", "url_request/redirect_info.cc", "url_request/redirect_info.h", "url_request/redirect_util.cc", "url_request/redirect_util.h", "url_request/referrer_policy.h", "url_request/report_sender.cc", "url_request/report_sender.h", "url_request/static_http_user_agent_settings.cc", "url_request/static_http_user_agent_settings.h", "url_request/url_request.cc", "url_request/url_request.h", "url_request/url_request_context.cc", "url_request/url_request_context.h", "url_request/url_request_context_builder.cc", "url_request/url_request_context_builder.h", "url_request/url_request_context_getter.cc", "url_request/url_request_context_getter.h", "url_request/url_request_context_getter_observer.h", "url_request/url_request_error_job.cc", "url_request/url_request_error_job.h", "url_request/url_request_filter.cc", "url_request/url_request_filter.h", "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", "url_request/url_request_interceptor.h", "url_request/url_request_job.cc", "url_request/url_request_job.h", "url_request/url_request_job_factory.cc", "url_request/url_request_job_factory.h", "url_request/url_request_netlog_params.cc", "url_request/url_request_netlog_params.h", "url_request/url_request_redirect_job.cc", "url_request/url_request_redirect_job.h", "url_request/url_request_throttler_entry.cc", "url_request/url_request_throttler_entry.h", "url_request/url_request_throttler_entry_interface.h", "url_request/url_request_throttler_manager.cc", "url_request/url_request_throttler_manager.h", "url_request/view_cache_helper.cc", "url_request/view_cache_helper.h", "url_request/websocket_handshake_userdata_key.cc", "url_request/websocket_handshake_userdata_key.h", ] if (is_posix || is_fuchsia) { sources += [ "base/net_errors_posix.cc" ] } defines = [] if (disable_brotli_filter) { defines += [ "NET_DISABLE_BROTLI" ] } if (disable_zstd_filter) { defines += [ "NET_DISABLE_ZSTD" ] } deps = [ ":cronet_buildflags", ":net_deps", "//build:chromeos_buildflags", "//net/data/ssl/chrome_root_store:gen_root_store_inc", "//net/http:transport_security_state_generated_files", ] public_deps = [ ":net_export_header", ":net_public_deps", "//base", "//net/dns", "//net/dns:dns_client", "//net/dns:host_resolver", "//net/dns:host_resolver_manager", "//net/dns:mdns_client", "//net/dns/public", "//net/third_party/quiche", ] allow_circular_includes_from = [ "//net/dns", "//net/dns:dns_client", "//net/dns:host_resolver", "//net/dns:host_resolver_manager", "//net/dns:mdns_client", "//net/dns/public", "//net/http:transport_security_state_generated_files", ] if (enable_reporting) { sources += [ "network_error_logging/network_error_logging_service.cc", "network_error_logging/network_error_logging_service.h", "network_error_logging/persistent_reporting_and_nel_store.h", "reporting/reporting_browsing_data_remover.cc", "reporting/reporting_browsing_data_remover.h", "reporting/reporting_cache.cc", "reporting/reporting_cache.h", "reporting/reporting_cache_impl.cc", "reporting/reporting_cache_impl.h", "reporting/reporting_cache_observer.cc", "reporting/reporting_cache_observer.h", "reporting/reporting_context.cc", "reporting/reporting_context.h", "reporting/reporting_delegate.cc", "reporting/reporting_delegate.h", "reporting/reporting_delivery_agent.cc", "reporting/reporting_delivery_agent.h", "reporting/reporting_endpoint.cc", "reporting/reporting_endpoint.h", "reporting/reporting_endpoint_manager.cc", "reporting/reporting_endpoint_manager.h", "reporting/reporting_garbage_collector.cc", "reporting/reporting_garbage_collector.h", "reporting/reporting_header_parser.cc", "reporting/reporting_header_parser.h", "reporting/reporting_network_change_observer.cc", "reporting/reporting_network_change_observer.h", "reporting/reporting_policy.cc", "reporting/reporting_policy.h", "reporting/reporting_report.cc", "reporting/reporting_report.h", "reporting/reporting_service.cc", "reporting/reporting_service.h", "reporting/reporting_uploader.cc", "reporting/reporting_uploader.h", ] } if (is_android) { sources += [ "android/android_http_util.cc", "android/cert_verify_result_android.cc", "android/cert_verify_result_android.h", "android/gurl_utils.cc", "android/http_auth_negotiate_android.cc", "android/http_auth_negotiate_android.h", "android/keystore.cc", "android/keystore.h", "android/network_change_notifier_android.cc", "android/network_change_notifier_android.h", "android/network_change_notifier_delegate_android.cc", "android/network_change_notifier_delegate_android.h", "android/network_change_notifier_factory_android.cc", "android/network_change_notifier_factory_android.h", "android/network_library.cc", "android/network_library.h", "android/traffic_stats.cc", "android/traffic_stats.h", "cert/cert_verify_proc_android.cc", "cert/cert_verify_proc_android.h", "cert/test_root_certs_android.cc", "cert/x509_util_android.cc", "proxy_resolution/proxy_config_service_android.cc", "proxy_resolution/proxy_config_service_android.h", "ssl/ssl_platform_key_android.cc", "ssl/ssl_platform_key_android.h", ] } if (is_chromeos && use_nss_certs) { sources += [ "cert/nss_cert_database_chromeos.cc", "cert/nss_cert_database_chromeos.h", "cert/nss_profile_filter_chromeos.cc", "cert/nss_profile_filter_chromeos.h", ] } if (is_ios) { sources += [ "cert/cert_verify_proc_ios.cc", "cert/cert_verify_proc_ios.h", "cert/test_root_certs_ios.cc", "disk_cache/blockfile/file_ios.cc", "proxy_resolution/proxy_config_service_ios.cc", "proxy_resolution/proxy_config_service_ios.h", ] } if (is_linux) { sources += [ "base/network_change_notifier_linux.cc", "base/network_change_notifier_linux.h", "proxy_resolution/proxy_config_service_linux.cc", "proxy_resolution/proxy_config_service_linux.h", ] } if (is_linux || is_chromeos || is_android) { sources += [ "base/address_map_linux.cc", "base/address_map_linux.h", "base/address_tracker_linux.cc", "base/address_tracker_linux.h", "base/network_interfaces_linux.cc", "base/network_interfaces_linux.h", "base/platform_mime_util_linux.cc", ] } if (is_linux) { sources += [ "base/address_map_cache_linux.cc", "base/address_map_cache_linux.h", ] } if (is_chromeos) { deps += [ "//third_party/xdg_shared_mime_info" ] } if (is_mac) { sources += [ "base/network_notification_thread_mac.cc", "base/network_notification_thread_mac.h", "cert/cert_database_mac.cc", "cert/internal/trust_store_mac.cc", "cert/internal/trust_store_mac.h", "cert/test_keychain_search_list_mac.cc", "cert/test_keychain_search_list_mac.h", "cert/test_root_certs_builtin.cc", "proxy_resolution/proxy_config_service_mac.cc", "proxy_resolution/proxy_config_service_mac.h", "ssl/client_cert_identity_mac.cc", "ssl/client_cert_identity_mac.h", "ssl/client_cert_store_mac.cc", "ssl/client_cert_store_mac.h", "ssl/ssl_platform_key_mac.cc", "ssl/ssl_platform_key_mac.h", ] } if (is_apple) { sources += [ "base/mac/url_conversions.h", "base/mac/url_conversions.mm", "base/network_change_notifier_mac.h", "base/network_change_notifier_mac.mm", "base/network_config_watcher_mac.cc", "base/network_config_watcher_mac.h", "base/platform_mime_util_mac.mm", "cert/x509_util_apple.cc", "cert/x509_util_apple.h", "proxy_resolution/proxy_resolver_mac.cc", "proxy_resolution/proxy_resolver_mac.h", "proxy_resolution/proxy_server_util_mac.cc", "proxy_resolution/proxy_server_util_mac.h", ] } if (is_win) { sources += [ "base/file_stream_context_win.cc", "base/net_errors_win.cc", "base/network_change_notifier_win.cc", "base/network_change_notifier_win.h", "base/network_interfaces_win.cc", "base/network_interfaces_win.h", "base/platform_mime_util_win.cc", "base/winsock_init.cc", "base/winsock_init.h", "base/winsock_util.cc", "base/winsock_util.h", "cert/test_root_certs_builtin.cc", "cert/x509_util_win.cc", "cert/x509_util_win.h", "disk_cache/blockfile/file_win.cc", "disk_cache/blockfile/mapped_file_win.cc", "disk_cache/cache_util_win.cc", "disk_cache/simple/simple_util_win.cc", "http/http_auth_handler_ntlm_win.cc", "http/http_auth_sspi_win.cc", "http/http_auth_sspi_win.h", "http/url_security_manager_win.cc", "proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc", "proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.h", "proxy_resolution/win/dhcp_pac_file_fetcher_win.cc", "proxy_resolution/win/dhcp_pac_file_fetcher_win.h", "proxy_resolution/win/dhcpcsvc_init_win.cc", "proxy_resolution/win/dhcpcsvc_init_win.h", "proxy_resolution/win/proxy_config_service_win.cc", "proxy_resolution/win/proxy_config_service_win.h", "proxy_resolution/win/proxy_resolver_winhttp.cc", "proxy_resolution/win/proxy_resolver_winhttp.h", "proxy_resolution/win/windows_system_proxy_resolution_request.cc", "proxy_resolution/win/windows_system_proxy_resolution_request.h", "proxy_resolution/win/windows_system_proxy_resolution_service.cc", "proxy_resolution/win/windows_system_proxy_resolution_service.h", "proxy_resolution/win/windows_system_proxy_resolver.h", "proxy_resolution/win/winhttp_status.h", "socket/tcp_socket_win.cc", "socket/tcp_socket_win.h", "socket/udp_socket_win.cc", "socket/udp_socket_win.h", "ssl/client_cert_store_win.cc", "ssl/client_cert_store_win.h", "ssl/ssl_platform_key_win.cc", ] } if (use_kerberos) { sources += [ "http/http_auth_handler_negotiate.cc", "http/http_auth_handler_negotiate.h", ] } if (is_posix || is_fuchsia) { sources += [ "base/file_stream_context_posix.cc", "base/network_interfaces_posix.cc", "base/network_interfaces_posix.h", "base/sockaddr_util_posix.cc", "base/sockaddr_util_posix.h", "disk_cache/cache_util_posix.cc", "disk_cache/simple/simple_util_posix.cc", "http/url_security_manager_posix.cc", "socket/socket_posix.cc", "socket/socket_posix.h", "socket/tcp_socket_posix.cc", "socket/tcp_socket_posix.h", "socket/udp_socket_posix.cc", "socket/udp_socket_posix.h", ] if (!is_ios) { sources += [ "disk_cache/blockfile/file_posix.cc" ] } if (posix_bypass_mmap) { sources += [ "disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc" ] } else { sources += [ "disk_cache/blockfile/mapped_file_posix.cc" ] } } if (is_android || is_chromeos || is_linux) { sources += [ "base/network_change_notifier_passive.cc", "base/network_change_notifier_passive.h", ] } if (!is_win) { sources += [ "http/http_auth_handler_ntlm_portable.cc", "http/http_auth_ntlm_mechanism.cc", "http/http_auth_ntlm_mechanism.h", "ntlm/ntlm.cc", "ntlm/ntlm.h", "ntlm/ntlm_buffer_reader.cc", "ntlm/ntlm_buffer_reader.h", "ntlm/ntlm_buffer_writer.cc", "ntlm/ntlm_buffer_writer.h", "ntlm/ntlm_client.cc", "ntlm/ntlm_client.h", "ntlm/ntlm_constants.cc", "ntlm/ntlm_constants.h", ] } if (use_external_gssapi) { sources += [ "http/http_auth_gssapi_posix.cc", "http/http_auth_gssapi_posix.h", ] } # Use getifaddrs() on POSIX platforms, except Linux. if (is_posix && !is_linux && !is_chromeos) { sources += [ "base/network_interfaces_getifaddrs.cc", "base/network_interfaces_getifaddrs.h", ] if (is_android) { sources += [ "base/network_interfaces_getifaddrs_android.cc", "base/network_interfaces_getifaddrs_android.h", ] } } if (chrome_root_store_supported) { sources += [ "cert/internal/trust_store_chrome.cc", "cert/internal/trust_store_chrome.h", ] deps += [ "//net/cert:root_store_proto_lite", "//net/data/ssl/chrome_root_store:gen_root_store_inc", ] if (is_win) { sources += [ "cert/internal/trust_store_win.cc", "cert/internal/trust_store_win.h", "third_party/mozilla_win/cert/win_util.cc", "third_party/mozilla_win/cert/win_util.h", ] } if (is_android) { sources += [ "cert/internal/trust_store_android.cc", "cert/internal/trust_store_android.h", ] } } if (use_nss_certs) { sources += [ "cert/internal/system_trust_store_nss.h", "cert/internal/trust_store_nss.cc", "cert/internal/trust_store_nss.h", "cert/known_roots_nss.cc", "cert/known_roots_nss.h", "cert/nss_cert_database.cc", "cert/nss_cert_database.h", "cert/test_root_certs_builtin.cc", "cert/x509_util_nss.cc", "cert/x509_util_nss.h", "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp", "third_party/mozilla_security_manager/nsNSSCertificateDB.h", "third_party/mozilla_security_manager/nsPKCS12Blob.cpp", "third_party/mozilla_security_manager/nsPKCS12Blob.h", "third_party/nss/ssl/cmpcert.cc", "third_party/nss/ssl/cmpcert.h", ] if (!is_castos) { sources += [ "ssl/client_cert_store_nss.cc", "ssl/client_cert_store_nss.h", "ssl/ssl_platform_key_nss.cc", "ssl/ssl_platform_key_nss.h", ] } # TODO(https://crbug.com/978854): This is a public config because # multi_threaded_cert_verifier.h depends on NSS. When the linked bug is # fixed, switch this to a non-public config, so NSS usage must be explicit # in the build. public_configs = [ "//build/config/linux/nss" ] } if (is_fuchsia) { deps += [ "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp" ] public_deps += [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp" ] sources += [ "base/fuchsia/network_interface_cache.cc", "base/fuchsia/network_interface_cache.h", "base/network_change_notifier_fuchsia.cc", "base/network_change_notifier_fuchsia.h", "base/network_interfaces_fuchsia.cc", "base/network_interfaces_fuchsia.h", "base/platform_mime_util_fuchsia.cc", "cert/test_root_certs_builtin.cc", ] } if (enable_unix_sockets) { sources += [ "socket/unix_domain_client_socket_posix.cc", "socket/unix_domain_client_socket_posix.h", "socket/unix_domain_server_socket_posix.cc", "socket/unix_domain_server_socket_posix.h", ] } cflags = [] if (is_mac) { libs = [ "resolv" ] frameworks = [ "CFNetwork.framework", "CoreServices.framework", "Foundation.framework", "Security.framework", "SystemConfiguration.framework", "UniformTypeIdentifiers.framework", ] } if (is_ios) { libs = [ "resolv" ] frameworks = [ "CFNetwork.framework", "CoreTelephony.framework", "MobileCoreServices.framework", "Security.framework", "SystemConfiguration.framework", "UniformTypeIdentifiers.framework", ] } if (is_win) { libs = [ "crypt32.lib", "dhcpcsvc.lib", "iphlpapi.lib", "ncrypt.lib", "rpcrt4.lib", "secur32.lib", "urlmon.lib", "winhttp.lib", ] ldflags = [ "/DELAYLOAD:urlmon.dll" ] } if (!disable_file_support) { sources += [ "base/directory_lister.cc", "base/directory_lister.h", "base/directory_listing.cc", "base/directory_listing.h", ] } if (enable_websockets) { sources += [ "websockets/websocket_basic_handshake_stream.cc", "websockets/websocket_basic_handshake_stream.h", "websockets/websocket_basic_stream.cc", "websockets/websocket_basic_stream.h", "websockets/websocket_basic_stream_adapters.cc", "websockets/websocket_basic_stream_adapters.h", "websockets/websocket_channel.cc", "websockets/websocket_channel.h", "websockets/websocket_deflate_parameters.cc", "websockets/websocket_deflate_parameters.h", "websockets/websocket_deflate_predictor.h", "websockets/websocket_deflate_predictor_impl.cc", "websockets/websocket_deflate_predictor_impl.h", "websockets/websocket_deflate_stream.cc", "websockets/websocket_deflate_stream.h", "websockets/websocket_deflater.cc", "websockets/websocket_deflater.h", "websockets/websocket_errors.cc", "websockets/websocket_errors.h", "websockets/websocket_event_interface.h", "websockets/websocket_extension.cc", "websockets/websocket_extension.h", "websockets/websocket_extension_parser.cc", "websockets/websocket_extension_parser.h", "websockets/websocket_frame.cc", "websockets/websocket_frame.h", "websockets/websocket_frame_parser.cc", "websockets/websocket_frame_parser.h", "websockets/websocket_handshake_challenge.cc", "websockets/websocket_handshake_challenge.h", "websockets/websocket_handshake_constants.cc", "websockets/websocket_handshake_constants.h", "websockets/websocket_handshake_request_info.cc", "websockets/websocket_handshake_request_info.h", "websockets/websocket_handshake_response_info.cc", "websockets/websocket_handshake_response_info.h", "websockets/websocket_handshake_stream_base.cc", "websockets/websocket_handshake_stream_base.h", "websockets/websocket_handshake_stream_create_helper.cc", "websockets/websocket_handshake_stream_create_helper.h", "websockets/websocket_http2_handshake_stream.cc", "websockets/websocket_http2_handshake_stream.h", "websockets/websocket_http3_handshake_stream.cc", "websockets/websocket_http3_handshake_stream.h", "websockets/websocket_inflater.cc", "websockets/websocket_inflater.h", "websockets/websocket_quic_spdy_stream.cc", "websockets/websocket_quic_spdy_stream.h", "websockets/websocket_stream.cc", "websockets/websocket_stream.h", ] } # ICU support. if (use_platform_icu_alternatives) { if (is_android) { # Use ICU alternative on Android. sources += [ "base/net_string_util_icu_alternatives_android.cc" ] } else if (is_ios) { # Use ICU alternative on iOS. sources += [ "base/net_string_util_icu_alternatives_ios.mm" ] } else { assert(false, "ICU alternative is not implemented for platform: " + target_os) } } else { # Use ICU. sources += [ "base/filename_util_icu.cc", "base/net_string_util_icu.cc", ] } # Brotli support. if (!disable_brotli_filter) { sources += [ "filter/brotli_source_stream.cc", "filter/brotli_source_stream.h", ] } else { sources += [ "filter/brotli_source_stream_disabled.cc" ] } # Zstd support. if (!disable_zstd_filter) { sources += [ "filter/zstd_source_stream.cc", "filter/zstd_source_stream.h", ] } else { sources += [ "filter/zstd_source_stream.h", "filter/zstd_source_stream_disabled.cc", ] } if (!is_debug && !optimize_for_size) { configs -= [ "//build/config/compiler:default_optimization" ] configs += [ "//build/config/compiler:optimize_max" ] } } # net_export.h has its own build target so that code (eg # net_nqe_proto) can use it without depending on the whole of //net. source_set("net_export_header") { sources = [ "base/net_export.h" ] } # Private dependencies for the //net component and for any build targets (e.g. # source sets with circular dependencies with //net) that need to share the same # dependencies. source_set("net_deps") { visibility = [ ":net", "//net/dns", "//net/dns:dns_client", "//net/dns:host_resolver", "//net/dns:host_resolver_manager", "//net/dns:mdns_client", "//net/dns/public", "//net/http:transport_security_state_generated_files", "//net/third_party/quiche", ] public_deps = [ ":constants", ":cronet_buildflags", ":isolation_info_proto", ":net_export_header", ":preload_decoder", "//base", "//base/third_party/dynamic_annotations", "//net/base/registry_controlled_domains", "//third_party/protobuf:protobuf_lite", "//third_party/zlib", "//url:buildflags", ] public_configs = net_configs if (use_gio) { public_configs += [ "//build/linux:gio_config" ] } if (is_android) { public_deps += [ ":net_jni_headers" ] } if (is_fuchsia) { public_deps += [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network_hlcpp", "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp", "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", ] } if (use_platform_icu_alternatives) { if (is_android) { public_deps += [ ":net_jni_headers" ] } } else { public_deps += [ "//base:i18n", "//third_party/icu", ] } if (!disable_brotli_filter) { public_deps += [ "//third_party/brotli:dec" ] } else { public_deps += [ "//third_party/brotli:headers" ] } if (!disable_zstd_filter) { public_deps += [ "//third_party/zstd:decompress" ] } else { public_deps += [ "//third_party/zstd:headers" ] } } # Public dependencies for the //net component and for any build targets (e.g. # source sets with circular dependencies with //net) that need to share the same # dependencies. source_set("net_public_deps") { visibility = [ ":net", "//net/dns", "//net/dns:dns_client", "//net/dns:host_resolver", "//net/dns:host_resolver_manager", "//net/dns:mdns_client", "//net/dns/public", "//net/http:transport_security_state_generated_files", "//net/third_party/quiche", ] public_deps = [ ":buildflags", ":net_nqe_proto", ":uri_template", "//base", "//crypto", "//net/third_party/quiche", "//net/third_party/quiche:net_quic_test_tools_proto", "//net/traffic_annotation", "//third_party/boringssl", "//url", ] if (chrome_root_store_supported) { public_deps += [ "//net/cert:root_store_proto_lite" ] } } if (is_android) { java_cpp_enum("effective_connection_type_java") { sources = [ "//net/nqe/effective_connection_type.h" ] } } component("uri_template") { sources = [ "third_party/uri_template/uri_template.cc", "third_party/uri_template/uri_template.h", ] visibility = [ ":net_public_deps", "//net/third_party/quiche", ] defines = [ "IS_URI_TEMPLATE_IMPL" ] public_deps = [ "//base" ] } proto_library("net_nqe_proto") { visibility = [ ":net_public_deps" ] sources = [ "nqe/proto/network_id_proto.proto" ] cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:" cc_include = "net/base/net_export.h" component_build_force_source_set = true deps = [ ":net_export_header" ] defines = [ "NET_IMPLEMENTATION" ] extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] } proto_library("isolation_info_proto") { sources = [ "base/isolation_info.proto" ] } static_library("preload_decoder") { sources = [ "extras/preload_data/decoder.cc", "extras/preload_data/decoder.h", ] deps = [ "//base" ] }