Add IS_TIZEN_DA to fix build break in standard build.
[platform/framework/web/chromium-efl.git] / net / BUILD.gn
1 # Copyright 2013 The Chromium Authors
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import("//build/buildflag_header.gni")
6 import("//build/config/chromecast_build.gni")
7 import("//build/config/chromeos/ui_mode.gni")
8 import("//build/config/compiler/compiler.gni")
9 import("//build/config/cronet/config.gni")
10 import("//build/config/features.gni")
11 import("//crypto/features.gni")
12 import("//net/features.gni")
13 import("//testing/libfuzzer/fuzzer_test.gni")
14 import("//testing/test.gni")
15 import("//third_party/icu/config.gni")
16 import("//third_party/protobuf/proto_library.gni")
17 import("//tools/grit/grit_rule.gni")
18 import("//url/features.gni")
19 if (use_efl) {
20   import("//tizen_src/build/config/tizen_features.gni")
21 }
22
23 if (is_android) {
24   import("//build/config/android/config.gni")
25   import("//build/config/android/rules.gni")
26   import("//third_party/jni_zero/jni_zero.gni")
27 } else if (is_mac) {
28   import("//build/config/mac/mac_sdk.gni")
29 } else if (is_ios) {
30   import("//build/config/ios/bundle_data_from_filelist.gni")
31 }
32
33 # Android:
34 # The way the cache uses mmap() is inefficient on some Android devices. If
35 # this flag is set, we hackily avoid using mmap() in the disk cache. We are
36 # pretty confident that mmap-ing the index would not hurt any existing x86
37 # android devices, but we cannot be so sure about the variety of ARM devices.
38 # So enable it for x86 only for now.
39 # Fuchsia:
40 # Writable mmap isn't supported on Fuchsia, so it should be bypassed.
41 posix_bypass_mmap = (is_android && current_cpu != "x86") || is_fuchsia
42
43 enable_built_in_dns = use_blink
44
45 # TODO(droger): Support client auth on iOS. See http://crbug.com/145954).
46 #
47 # Historically this was disabled because client auth required
48 # platform-specific code deep in //net. Nowadays, this is abstracted away and
49 # we could enable the interfaces on iOS for platform-independence. However,
50 # merely enabling them changes our behavior from automatically proceeding
51 # with no client certificate to raising
52 # `URLRequest::Delegate::OnCertificateRequested`. Callers would need to be
53 # updated to apply that behavior manually.
54 #
55 # If fixing this, re-enable the tests in ssl_client_socket_unittest.cc and
56 # ssl_server_socket_unittest.cc which are disabled on iOS.
57 enable_client_certificates = !is_ios || (use_blink && !is_cronet_build)
58
59 # Unix sockets are not supported on iOS.
60 enable_unix_sockets = is_posix && !is_ios
61
62 # x86/x64 cast_shell builds run on regular trybots and can use python runtime
63 # and remote test server. ARM cast_shell builds don't have python runtime.
64 is_arm_cast_shell_build = (is_castos || is_cast_android) &&
65                           (current_cpu == "arm" || current_cpu == "arm64")
66
67 # Python works only on Linux, MacOS and Windows so exclude the others,
68 # chromecast, android, fuchsia, ios.
69 enable_python_utils =
70     !is_arm_cast_shell_build && !is_android && !is_fuchsia && !is_ios
71
72 # Platforms that cannot use python_utils (like Android but see full
73 # list above) will instead use a remote server.
74 use_remote_test_server =
75     !enable_python_utils && (enable_websockets || (is_cronet_build && !is_ios))
76
77 # Whether //net should use an external GSSAPI library for implementing HTTP
78 # Negotiate authentication. All platforms for which use_kerberos is true should
79 # have some external implementation since //net doesn't have intrinsic support
80 # for Kerberos. This implementation is an external GSSAPI library on all
81 # platforms except on:
82 #
83 #    Windows : Uses SSPI for Negotiate authentication.
84 #
85 #    Android : Uses an external authenticator. See
86 #              https://www.chromium.org/developers/design-documents/http-authentication/writing-a-spnego-authenticator-for-chrome-on-android
87 use_external_gssapi = use_kerberos && !is_android && !is_win
88
89 config("net_test_config") {
90   if (use_remote_test_server) {
91     defines = [ "USE_REMOTE_TEST_SERVER" ]
92   }
93 }
94
95 buildflag_header("buildflags") {
96   header = "net_buildflags.h"
97   flags = [
98     "POSIX_BYPASS_MMAP=$posix_bypass_mmap",
99     "DISABLE_FILE_SUPPORT=$disable_file_support",
100     "ENABLE_MDNS=$enable_mdns",
101     "ENABLE_REPORTING=$enable_reporting",
102     "ENABLE_WEBSOCKETS=$enable_websockets",
103     "ENABLE_CLIENT_CERTIFICATES=$enable_client_certificates",
104     "INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=$include_transport_security_state_preload_list",
105     "USE_KERBEROS=$use_kerberos",
106     "USE_EXTERNAL_GSSAPI=$use_external_gssapi",
107     "CHROME_ROOT_STORE_OPTIONAL=$chrome_root_store_optional",
108     "CHROME_ROOT_STORE_ONLY=$chrome_root_store_only",
109     "CHROME_ROOT_STORE_SUPPORTED=$chrome_root_store_supported",
110   ]
111 }
112
113 config("net_internal_config") {
114   defines = [ "NET_IMPLEMENTATION" ]
115
116   if (enable_built_in_dns) {
117     defines += [ "ENABLE_BUILT_IN_DNS" ]
118   }
119 }
120
121 net_configs = [
122   ":net_internal_config",
123   "//build/config:precompiled_headers",
124
125   "//build/config/compiler:wexit_time_destructors",
126 ]
127
128 if (is_linux || is_chromeos) {
129   net_configs += [ "//build/config/linux:libresolv" ]
130 }
131
132 source_set("constants") {
133   sources = [ "base/trace_constants.h" ]
134   deps = [ "//base" ]
135 }
136
137 buildflag_header("cronet_buildflags") {
138   header = "cronet_buildflags.h"
139   header_dir = "net/base"
140   flags = [ "CRONET_BUILD=$is_cronet_build" ]
141 }
142
143 component("net") {
144   sources = [
145     "base/address_family.cc",
146     "base/address_family.h",
147     "base/address_list.cc",
148     "base/address_list.h",
149     "base/auth.cc",
150     "base/auth.h",
151     "base/backoff_entry.cc",
152     "base/backoff_entry.h",
153     "base/backoff_entry_serializer.cc",
154     "base/backoff_entry_serializer.h",
155     "base/cache_metrics.cc",
156     "base/cache_metrics.h",
157     "base/cache_type.h",
158     "base/chunked_upload_data_stream.cc",
159     "base/chunked_upload_data_stream.h",
160     "base/completion_once_callback.h",
161     "base/completion_repeating_callback.h",
162     "base/connection_endpoint_metadata.cc",
163     "base/connection_endpoint_metadata.h",
164     "base/data_url.cc",
165     "base/data_url.h",
166     "base/datagram_buffer.cc",
167     "base/datagram_buffer.h",
168     "base/elements_upload_data_stream.cc",
169     "base/elements_upload_data_stream.h",
170     "base/expiring_cache.h",
171     "base/features.cc",
172     "base/features.h",
173     "base/file_stream.cc",
174     "base/file_stream.h",
175     "base/file_stream_context.cc",
176     "base/file_stream_context.h",
177     "base/filename_util.cc",
178     "base/filename_util.h",
179     "base/filename_util_internal.cc",
180     "base/filename_util_internal.h",
181     "base/hash_value.cc",
182     "base/hash_value.h",
183     "base/hex_utils.cc",
184     "base/hex_utils.h",
185     "base/host_mapping_rules.cc",
186     "base/host_mapping_rules.h",
187     "base/host_port_pair.cc",
188     "base/host_port_pair.h",
189     "base/http_user_agent_settings.h",
190     "base/idempotency.h",
191     "base/interval.h",
192     "base/io_buffer.cc",
193     "base/io_buffer.h",
194     "base/ip_address.cc",
195     "base/ip_address.h",
196     "base/ip_endpoint.cc",
197     "base/ip_endpoint.h",
198     "base/isolation_info.cc",
199     "base/isolation_info.h",
200     "base/load_flags.h",
201     "base/load_flags_list.h",
202     "base/load_states.h",
203     "base/load_states_list.h",
204     "base/load_timing_info.cc",
205     "base/load_timing_info.h",
206     "base/logging_network_change_observer.cc",
207     "base/logging_network_change_observer.h",
208     "base/lookup_string_in_fixed_set.cc",
209     "base/lookup_string_in_fixed_set.h",
210     "base/mime_sniffer.cc",
211     "base/mime_sniffer.h",
212     "base/mime_util.cc",
213     "base/mime_util.h",
214     "base/net_error_details.h",
215     "base/net_error_list.h",
216     "base/net_errors.cc",
217     "base/net_errors.h",
218     "base/net_info_source_list.h",
219     "base/net_module.cc",
220     "base/net_module.h",
221     "base/net_string_util.h",
222     "base/network_activity_monitor.cc",
223     "base/network_activity_monitor.h",
224     "base/network_anonymization_key.cc",
225     "base/network_anonymization_key.h",
226     "base/network_change_notifier.cc",
227     "base/network_change_notifier.h",
228     "base/network_change_notifier_factory.h",
229     "base/network_delegate.cc",
230     "base/network_delegate.h",
231     "base/network_delegate_impl.cc",
232     "base/network_delegate_impl.h",
233     "base/network_handle.h",
234     "base/network_interfaces.cc",
235     "base/network_interfaces.h",
236     "base/network_isolation_key.cc",
237     "base/network_isolation_key.h",
238     "base/parse_number.cc",
239     "base/parse_number.h",
240     "base/platform_mime_util.h",
241     "base/port_util.cc",
242     "base/port_util.h",
243     "base/prioritized_dispatcher.cc",
244     "base/prioritized_dispatcher.h",
245     "base/prioritized_task_runner.cc",
246     "base/prioritized_task_runner.h",
247     "base/priority_queue.h",
248     "base/privacy_mode.cc",
249     "base/privacy_mode.h",
250     "base/proxy_chain.cc",
251     "base/proxy_chain.h",
252     "base/proxy_delegate.h",
253     "base/proxy_server.cc",
254     "base/proxy_server.h",
255     "base/proxy_string_util.cc",
256     "base/proxy_string_util.h",
257     "base/rand_callback.h",
258     "base/registry_controlled_domains/registry_controlled_domain.cc",
259     "base/registry_controlled_domains/registry_controlled_domain.h",
260     "base/request_priority.cc",
261     "base/request_priority.h",
262     "base/scheme_host_port_matcher.cc",
263     "base/scheme_host_port_matcher.h",
264     "base/scheme_host_port_matcher_result.h",
265     "base/scheme_host_port_matcher_rule.cc",
266     "base/scheme_host_port_matcher_rule.h",
267     "base/schemeful_site.cc",
268     "base/schemeful_site.h",
269     "base/sockaddr_storage.cc",
270     "base/sockaddr_storage.h",
271     "base/sys_addrinfo.h",
272     "base/trace_event_stub.h",
273     "base/tracing.h",
274     "base/transport_info.cc",
275     "base/transport_info.h",
276     "base/upload_bytes_element_reader.cc",
277     "base/upload_bytes_element_reader.h",
278     "base/upload_data_stream.cc",
279     "base/upload_data_stream.h",
280     "base/upload_element_reader.cc",
281     "base/upload_element_reader.h",
282     "base/upload_file_element_reader.cc",
283     "base/upload_file_element_reader.h",
284     "base/upload_progress.h",
285     "base/url_search_params.cc",
286     "base/url_search_params.h",
287     "base/url_util.cc",
288     "base/url_util.h",
289     "cert/asn1_util.cc",
290     "cert/asn1_util.h",
291     "cert/caching_cert_verifier.cc",
292     "cert/caching_cert_verifier.h",
293     "cert/cert_and_ct_verifier.cc",
294     "cert/cert_and_ct_verifier.h",
295     "cert/cert_database.cc",
296     "cert/cert_database.h",
297     "cert/cert_net_fetcher.h",
298     "cert/cert_status_flags.cc",
299     "cert/cert_status_flags.h",
300     "cert/cert_status_flags_list.h",
301     "cert/cert_verifier.cc",
302     "cert/cert_verifier.h",
303     "cert/cert_verify_proc.cc",
304     "cert/cert_verify_proc.h",
305     "cert/cert_verify_proc_blocklist.inc",
306     "cert/cert_verify_proc_builtin.cc",
307     "cert/cert_verify_proc_builtin.h",
308     "cert/cert_verify_result.cc",
309     "cert/cert_verify_result.h",
310     "cert/client_cert_verifier.h",
311     "cert/coalescing_cert_verifier.cc",
312     "cert/coalescing_cert_verifier.h",
313     "cert/crl_set.cc",
314     "cert/crl_set.h",
315     "cert/ct_log_response_parser.cc",
316     "cert/ct_log_response_parser.h",
317     "cert/ct_log_verifier.cc",
318     "cert/ct_log_verifier.h",
319     "cert/ct_log_verifier_util.cc",
320     "cert/ct_log_verifier_util.h",
321     "cert/ct_objects_extractor.cc",
322     "cert/ct_objects_extractor.h",
323     "cert/ct_policy_enforcer.cc",
324     "cert/ct_policy_enforcer.h",
325     "cert/ct_policy_status.h",
326     "cert/ct_sct_to_string.cc",
327     "cert/ct_sct_to_string.h",
328     "cert/ct_serialization.cc",
329     "cert/ct_serialization.h",
330     "cert/ct_signed_certificate_timestamp_log_param.cc",
331     "cert/ct_signed_certificate_timestamp_log_param.h",
332     "cert/ct_verifier.h",
333     "cert/do_nothing_ct_verifier.cc",
334     "cert/do_nothing_ct_verifier.h",
335     "cert/ev_root_ca_metadata.cc",
336     "cert/ev_root_ca_metadata.h",
337     "cert/internal/cert_issuer_source_aia.cc",
338     "cert/internal/cert_issuer_source_aia.h",
339     "cert/internal/revocation_checker.cc",
340     "cert/internal/revocation_checker.h",
341     "cert/internal/system_trust_store.cc",
342     "cert/internal/system_trust_store.h",
343     "cert/internal/trust_store_features.cc",
344     "cert/internal/trust_store_features.h",
345     "cert/known_roots.cc",
346     "cert/known_roots.h",
347     "cert/merkle_audit_proof.cc",
348     "cert/merkle_audit_proof.h",
349     "cert/merkle_consistency_proof.cc",
350     "cert/merkle_consistency_proof.h",
351     "cert/merkle_tree_leaf.cc",
352     "cert/merkle_tree_leaf.h",
353     "cert/multi_log_ct_verifier.cc",
354     "cert/multi_log_ct_verifier.h",
355     "cert/multi_threaded_cert_verifier.cc",
356     "cert/multi_threaded_cert_verifier.h",
357     "cert/ocsp_revocation_status.h",
358     "cert/ocsp_verify_result.cc",
359     "cert/ocsp_verify_result.h",
360     "cert/pem.cc",
361     "cert/pem.h",
362     "cert/pki/cert_error_id.cc",
363     "cert/pki/cert_error_id.h",
364     "cert/pki/cert_error_params.cc",
365     "cert/pki/cert_error_params.h",
366     "cert/pki/cert_errors.cc",
367     "cert/pki/cert_errors.h",
368     "cert/pki/cert_issuer_source.h",
369     "cert/pki/cert_issuer_source_static.cc",
370     "cert/pki/cert_issuer_source_static.h",
371     "cert/pki/certificate_policies.cc",
372     "cert/pki/certificate_policies.h",
373     "cert/pki/common_cert_errors.cc",
374     "cert/pki/common_cert_errors.h",
375     "cert/pki/crl.cc",
376     "cert/pki/crl.h",
377     "cert/pki/extended_key_usage.cc",
378     "cert/pki/extended_key_usage.h",
379     "cert/pki/general_names.cc",
380     "cert/pki/general_names.h",
381     "cert/pki/ip_util.cc",
382     "cert/pki/ip_util.h",
383     "cert/pki/name_constraints.cc",
384     "cert/pki/name_constraints.h",
385     "cert/pki/ocsp.cc",
386     "cert/pki/ocsp.h",
387     "cert/pki/parse_certificate.cc",
388     "cert/pki/parse_certificate.h",
389     "cert/pki/parse_name.cc",
390     "cert/pki/parse_name.h",
391     "cert/pki/parsed_certificate.cc",
392     "cert/pki/parsed_certificate.h",
393     "cert/pki/path_builder.cc",
394     "cert/pki/path_builder.h",
395     "cert/pki/revocation_util.cc",
396     "cert/pki/revocation_util.h",
397     "cert/pki/signature_algorithm.cc",
398     "cert/pki/signature_algorithm.h",
399     "cert/pki/signature_verify_cache.h",
400     "cert/pki/simple_path_builder_delegate.cc",
401     "cert/pki/simple_path_builder_delegate.h",
402     "cert/pki/string_util.cc",
403     "cert/pki/string_util.h",
404     "cert/pki/trust_store.cc",
405     "cert/pki/trust_store.h",
406     "cert/pki/trust_store_collection.cc",
407     "cert/pki/trust_store_collection.h",
408     "cert/pki/trust_store_in_memory.cc",
409     "cert/pki/trust_store_in_memory.h",
410     "cert/pki/verify_certificate_chain.cc",
411     "cert/pki/verify_certificate_chain.h",
412     "cert/pki/verify_name_match.cc",
413     "cert/pki/verify_name_match.h",
414     "cert/pki/verify_signed_data.cc",
415     "cert/pki/verify_signed_data.h",
416     "cert/root_cert_list_generated.h",
417     "cert/sct_auditing_delegate.h",
418     "cert/sct_status_flags.cc",
419     "cert/sct_status_flags.h",
420     "cert/signed_certificate_timestamp.cc",
421     "cert/signed_certificate_timestamp.h",
422     "cert/signed_certificate_timestamp_and_status.cc",
423     "cert/signed_certificate_timestamp_and_status.h",
424     "cert/signed_tree_head.cc",
425     "cert/signed_tree_head.h",
426     "cert/symantec_certs.cc",
427     "cert/symantec_certs.h",
428     "cert/test_root_certs.cc",
429     "cert/test_root_certs.h",
430     "cert/time_conversions.cc",
431     "cert/time_conversions.h",
432     "cert/x509_cert_types.cc",
433     "cert/x509_cert_types.h",
434     "cert/x509_certificate.cc",
435     "cert/x509_certificate.h",
436     "cert/x509_certificate_net_log_param.cc",
437     "cert/x509_certificate_net_log_param.h",
438     "cert/x509_util.cc",
439     "cert/x509_util.h",
440     "cert_net/cert_net_fetcher_url_request.cc",
441     "cert_net/cert_net_fetcher_url_request.h",
442     "cookies/canonical_cookie.cc",
443     "cookies/canonical_cookie.h",
444     "cookies/cookie_access_delegate.cc",
445     "cookies/cookie_access_delegate.h",
446     "cookies/cookie_access_result.cc",
447     "cookies/cookie_access_result.h",
448     "cookies/cookie_change_dispatcher.cc",
449     "cookies/cookie_change_dispatcher.h",
450     "cookies/cookie_constants.cc",
451     "cookies/cookie_constants.h",
452     "cookies/cookie_deletion_info.cc",
453     "cookies/cookie_deletion_info.h",
454     "cookies/cookie_inclusion_status.cc",
455     "cookies/cookie_inclusion_status.h",
456     "cookies/cookie_monster.cc",
457     "cookies/cookie_monster.h",
458     "cookies/cookie_monster_change_dispatcher.cc",
459     "cookies/cookie_monster_change_dispatcher.h",
460     "cookies/cookie_monster_netlog_params.cc",
461     "cookies/cookie_monster_netlog_params.h",
462     "cookies/cookie_options.cc",
463     "cookies/cookie_options.h",
464     "cookies/cookie_partition_key.cc",
465     "cookies/cookie_partition_key.h",
466     "cookies/cookie_partition_key_collection.cc",
467     "cookies/cookie_partition_key_collection.h",
468     "cookies/cookie_setting_override.h",
469     "cookies/cookie_store.cc",
470     "cookies/cookie_store.h",
471     "cookies/cookie_util.cc",
472     "cookies/cookie_util.h",
473     "cookies/parsed_cookie.cc",
474     "cookies/parsed_cookie.h",
475     "cookies/site_for_cookies.cc",
476     "cookies/site_for_cookies.h",
477     "cookies/static_cookie_policy.cc",
478     "cookies/static_cookie_policy.h",
479     "der/encode_values.cc",
480     "der/encode_values.h",
481     "der/input.cc",
482     "der/input.h",
483     "der/parse_values.cc",
484     "der/parse_values.h",
485     "der/parser.cc",
486     "der/parser.h",
487     "der/tag.cc",
488     "der/tag.h",
489     "disk_cache/backend_cleanup_tracker.cc",
490     "disk_cache/backend_cleanup_tracker.h",
491     "disk_cache/blockfile/addr.cc",
492     "disk_cache/blockfile/addr.h",
493     "disk_cache/blockfile/backend_impl.cc",
494     "disk_cache/blockfile/backend_impl.h",
495     "disk_cache/blockfile/bitmap.cc",
496     "disk_cache/blockfile/bitmap.h",
497     "disk_cache/blockfile/block_files.cc",
498     "disk_cache/blockfile/block_files.h",
499     "disk_cache/blockfile/disk_format.cc",
500     "disk_cache/blockfile/disk_format.h",
501     "disk_cache/blockfile/disk_format_base.h",
502     "disk_cache/blockfile/entry_impl.cc",
503     "disk_cache/blockfile/entry_impl.h",
504     "disk_cache/blockfile/errors.h",
505     "disk_cache/blockfile/eviction.cc",
506     "disk_cache/blockfile/eviction.h",
507     "disk_cache/blockfile/experiments.h",
508     "disk_cache/blockfile/file.cc",
509     "disk_cache/blockfile/file.h",
510     "disk_cache/blockfile/file_block.h",
511     "disk_cache/blockfile/file_lock.cc",
512     "disk_cache/blockfile/file_lock.h",
513     "disk_cache/blockfile/in_flight_backend_io.cc",
514     "disk_cache/blockfile/in_flight_backend_io.h",
515     "disk_cache/blockfile/in_flight_io.cc",
516     "disk_cache/blockfile/in_flight_io.h",
517     "disk_cache/blockfile/mapped_file.cc",
518     "disk_cache/blockfile/mapped_file.h",
519     "disk_cache/blockfile/rankings.cc",
520     "disk_cache/blockfile/rankings.h",
521     "disk_cache/blockfile/sparse_control.cc",
522     "disk_cache/blockfile/sparse_control.h",
523     "disk_cache/blockfile/stats.cc",
524     "disk_cache/blockfile/stats.h",
525     "disk_cache/blockfile/storage_block-inl.h",
526     "disk_cache/blockfile/storage_block.h",
527     "disk_cache/blockfile/stress_support.h",
528     "disk_cache/cache_util.cc",
529     "disk_cache/cache_util.h",
530     "disk_cache/disk_cache.cc",
531     "disk_cache/disk_cache.h",
532     "disk_cache/memory/mem_backend_impl.cc",
533     "disk_cache/memory/mem_backend_impl.h",
534     "disk_cache/memory/mem_entry_impl.cc",
535     "disk_cache/memory/mem_entry_impl.h",
536     "disk_cache/net_log_parameters.cc",
537     "disk_cache/net_log_parameters.h",
538     "disk_cache/simple/post_doom_waiter.cc",
539     "disk_cache/simple/post_doom_waiter.h",
540     "disk_cache/simple/simple_backend_impl.cc",
541     "disk_cache/simple/simple_backend_impl.h",
542     "disk_cache/simple/simple_backend_version.h",
543     "disk_cache/simple/simple_entry_format.cc",
544     "disk_cache/simple/simple_entry_format.h",
545     "disk_cache/simple/simple_entry_format_history.h",
546     "disk_cache/simple/simple_entry_impl.cc",
547     "disk_cache/simple/simple_entry_impl.h",
548     "disk_cache/simple/simple_entry_operation.cc",
549     "disk_cache/simple/simple_entry_operation.h",
550     "disk_cache/simple/simple_file_enumerator.cc",
551     "disk_cache/simple/simple_file_enumerator.h",
552     "disk_cache/simple/simple_file_tracker.cc",
553     "disk_cache/simple/simple_file_tracker.h",
554     "disk_cache/simple/simple_histogram_macros.h",
555     "disk_cache/simple/simple_index.cc",
556     "disk_cache/simple/simple_index.h",
557     "disk_cache/simple/simple_index_delegate.h",
558     "disk_cache/simple/simple_index_file.cc",
559     "disk_cache/simple/simple_index_file.h",
560     "disk_cache/simple/simple_net_log_parameters.cc",
561     "disk_cache/simple/simple_net_log_parameters.h",
562     "disk_cache/simple/simple_synchronous_entry.cc",
563     "disk_cache/simple/simple_synchronous_entry.h",
564     "disk_cache/simple/simple_util.cc",
565     "disk_cache/simple/simple_util.h",
566     "disk_cache/simple/simple_version_upgrade.cc",
567     "disk_cache/simple/simple_version_upgrade.h",
568     "filter/filter_source_stream.cc",
569     "filter/filter_source_stream.h",
570     "filter/gzip_header.cc",
571     "filter/gzip_header.h",
572     "filter/gzip_source_stream.cc",
573     "filter/gzip_source_stream.h",
574     "filter/source_stream.cc",
575     "filter/source_stream.h",
576     "first_party_sets/addition_overlaps_union_find.cc",
577     "first_party_sets/addition_overlaps_union_find.h",
578     "first_party_sets/first_party_set_entry.cc",
579     "first_party_sets/first_party_set_entry.h",
580     "first_party_sets/first_party_set_entry_override.cc",
581     "first_party_sets/first_party_set_entry_override.h",
582     "first_party_sets/first_party_set_metadata.cc",
583     "first_party_sets/first_party_set_metadata.h",
584     "first_party_sets/first_party_sets_cache_filter.cc",
585     "first_party_sets/first_party_sets_cache_filter.h",
586     "first_party_sets/first_party_sets_context_config.cc",
587     "first_party_sets/first_party_sets_context_config.h",
588     "first_party_sets/global_first_party_sets.cc",
589     "first_party_sets/global_first_party_sets.h",
590     "http/alternative_service.cc",
591     "http/alternative_service.h",
592     "http/bidirectional_stream.cc",
593     "http/bidirectional_stream.h",
594     "http/bidirectional_stream_impl.cc",
595     "http/bidirectional_stream_impl.h",
596     "http/bidirectional_stream_request_info.cc",
597     "http/bidirectional_stream_request_info.h",
598     "http/broken_alternative_services.cc",
599     "http/broken_alternative_services.h",
600     "http/http_auth.cc",
601     "http/http_auth.h",
602     "http/http_auth_cache.cc",
603     "http/http_auth_cache.h",
604     "http/http_auth_challenge_tokenizer.cc",
605     "http/http_auth_challenge_tokenizer.h",
606     "http/http_auth_controller.cc",
607     "http/http_auth_controller.h",
608     "http/http_auth_filter.cc",
609     "http/http_auth_filter.h",
610     "http/http_auth_handler.cc",
611     "http/http_auth_handler.h",
612     "http/http_auth_handler_basic.cc",
613     "http/http_auth_handler_basic.h",
614     "http/http_auth_handler_digest.cc",
615     "http/http_auth_handler_digest.h",
616     "http/http_auth_handler_factory.cc",
617     "http/http_auth_handler_factory.h",
618     "http/http_auth_handler_ntlm.cc",
619     "http/http_auth_handler_ntlm.h",
620     "http/http_auth_mechanism.h",
621     "http/http_auth_multi_round_parse.cc",
622     "http/http_auth_multi_round_parse.h",
623     "http/http_auth_preferences.cc",
624     "http/http_auth_preferences.h",
625     "http/http_auth_scheme.cc",
626     "http/http_auth_scheme.h",
627     "http/http_basic_state.cc",
628     "http/http_basic_state.h",
629     "http/http_basic_stream.cc",
630     "http/http_basic_stream.h",
631     "http/http_byte_range.cc",
632     "http/http_byte_range.h",
633     "http/http_cache.cc",
634     "http/http_cache.h",
635     "http/http_cache_transaction.cc",
636     "http/http_cache_transaction.h",
637     "http/http_cache_writers.cc",
638     "http/http_cache_writers.h",
639     "http/http_chunked_decoder.cc",
640     "http/http_chunked_decoder.h",
641     "http/http_content_disposition.cc",
642     "http/http_content_disposition.h",
643     "http/http_log_util.cc",
644     "http/http_log_util.h",
645     "http/http_network_layer.cc",
646     "http/http_network_layer.h",
647     "http/http_network_session.cc",
648     "http/http_network_session.h",
649     "http/http_network_session_peer.cc",
650     "http/http_network_session_peer.h",
651     "http/http_network_transaction.cc",
652     "http/http_network_transaction.h",
653     "http/http_no_vary_search_data.cc",
654     "http/http_no_vary_search_data.h",
655     "http/http_proxy_client_socket.cc",
656     "http/http_proxy_client_socket.h",
657     "http/http_proxy_connect_job.cc",
658     "http/http_proxy_connect_job.h",
659     "http/http_raw_request_headers.cc",
660     "http/http_raw_request_headers.h",
661     "http/http_request_headers.cc",
662     "http/http_request_headers.h",
663     "http/http_request_info.cc",
664     "http/http_request_info.h",
665     "http/http_response_body_drainer.cc",
666     "http/http_response_body_drainer.h",
667     "http/http_response_headers.cc",
668     "http/http_response_headers.h",
669     "http/http_response_info.cc",
670     "http/http_response_info.h",
671     "http/http_security_headers.cc",
672     "http/http_security_headers.h",
673     "http/http_server_properties.cc",
674     "http/http_server_properties.h",
675     "http/http_server_properties_manager.cc",
676     "http/http_server_properties_manager.h",
677     "http/http_status_code.cc",
678     "http/http_status_code.h",
679     "http/http_status_code_list.h",
680     "http/http_stream.cc",
681     "http/http_stream.h",
682     "http/http_stream_factory.cc",
683     "http/http_stream_factory.h",
684     "http/http_stream_factory_job.cc",
685     "http/http_stream_factory_job.h",
686     "http/http_stream_factory_job_controller.cc",
687     "http/http_stream_factory_job_controller.h",
688     "http/http_stream_parser.cc",
689     "http/http_stream_parser.h",
690     "http/http_stream_request.cc",
691     "http/http_stream_request.h",
692     "http/http_transaction.h",
693     "http/http_transaction_factory.h",
694     "http/http_util.cc",
695     "http/http_util.h",
696     "http/http_vary_data.cc",
697     "http/http_vary_data.h",
698     "http/http_version.h",
699     "http/partial_data.cc",
700     "http/partial_data.h",
701     "http/proxy_client_socket.cc",
702     "http/proxy_client_socket.h",
703     "http/proxy_fallback.cc",
704     "http/proxy_fallback.h",
705     "http/structured_headers.h",
706     "http/transport_security_persister.cc",
707     "http/transport_security_persister.h",
708     "http/transport_security_state.h",
709     "http/transport_security_state_source.cc",
710     "http/transport_security_state_source.h",
711     "http/url_security_manager.cc",
712     "http/url_security_manager.h",
713     "log/file_net_log_observer.cc",
714     "log/file_net_log_observer.h",
715     "log/net_log.cc",
716     "log/net_log.h",
717     "log/net_log_capture_mode.cc",
718     "log/net_log_capture_mode.h",
719     "log/net_log_entry.cc",
720     "log/net_log_entry.h",
721     "log/net_log_event_type.cc",
722     "log/net_log_event_type.h",
723     "log/net_log_event_type_list.h",
724     "log/net_log_source.cc",
725     "log/net_log_source.h",
726     "log/net_log_source_type.h",
727     "log/net_log_source_type_list.h",
728     "log/net_log_util.cc",
729     "log/net_log_util.h",
730     "log/net_log_values.cc",
731     "log/net_log_values.h",
732     "log/net_log_with_source.cc",
733     "log/net_log_with_source.h",
734     "log/trace_net_log_observer.cc",
735     "log/trace_net_log_observer.h",
736     "nqe/cached_network_quality.cc",
737     "nqe/cached_network_quality.h",
738     "nqe/effective_connection_type.cc",
739     "nqe/effective_connection_type.h",
740     "nqe/effective_connection_type_observer.h",
741     "nqe/event_creator.cc",
742     "nqe/event_creator.h",
743     "nqe/network_id.cc",
744     "nqe/network_id.h",
745     "nqe/network_qualities_prefs_manager.cc",
746     "nqe/network_qualities_prefs_manager.h",
747     "nqe/network_quality.cc",
748     "nqe/network_quality.h",
749     "nqe/network_quality_estimator.cc",
750     "nqe/network_quality_estimator.h",
751     "nqe/network_quality_estimator_params.cc",
752     "nqe/network_quality_estimator_params.h",
753     "nqe/network_quality_estimator_util.cc",
754     "nqe/network_quality_estimator_util.h",
755     "nqe/network_quality_observation.cc",
756     "nqe/network_quality_observation.h",
757     "nqe/network_quality_observation_source.h",
758     "nqe/network_quality_store.cc",
759     "nqe/network_quality_store.h",
760     "nqe/observation_buffer.cc",
761     "nqe/observation_buffer.h",
762     "nqe/peer_to_peer_connections_count_observer.h",
763     "nqe/pref_names.cc",
764     "nqe/pref_names.h",
765     "nqe/rtt_throughput_estimates_observer.h",
766     "nqe/socket_watcher.cc",
767     "nqe/socket_watcher.h",
768     "nqe/socket_watcher_factory.cc",
769     "nqe/socket_watcher_factory.h",
770     "nqe/throughput_analyzer.cc",
771     "nqe/throughput_analyzer.h",
772     "nqe/weighted_observation.h",
773     "proxy_resolution/configured_proxy_resolution_request.cc",
774     "proxy_resolution/configured_proxy_resolution_request.h",
775     "proxy_resolution/configured_proxy_resolution_service.cc",
776     "proxy_resolution/configured_proxy_resolution_service.h",
777     "proxy_resolution/dhcp_pac_file_fetcher.cc",
778     "proxy_resolution/dhcp_pac_file_fetcher.h",
779     "proxy_resolution/multi_threaded_proxy_resolver.cc",
780     "proxy_resolution/multi_threaded_proxy_resolver.h",
781     "proxy_resolution/network_delegate_error_observer.cc",
782     "proxy_resolution/network_delegate_error_observer.h",
783     "proxy_resolution/pac_file_data.cc",
784     "proxy_resolution/pac_file_data.h",
785     "proxy_resolution/pac_file_decider.cc",
786     "proxy_resolution/pac_file_decider.h",
787     "proxy_resolution/pac_file_fetcher.cc",
788     "proxy_resolution/pac_file_fetcher.h",
789     "proxy_resolution/pac_file_fetcher_impl.cc",
790     "proxy_resolution/pac_file_fetcher_impl.h",
791     "proxy_resolution/polling_proxy_config_service.cc",
792     "proxy_resolution/polling_proxy_config_service.h",
793     "proxy_resolution/proxy_bypass_rules.cc",
794     "proxy_resolution/proxy_bypass_rules.h",
795     "proxy_resolution/proxy_config.cc",
796     "proxy_resolution/proxy_config.h",
797     "proxy_resolution/proxy_config_service.cc",
798     "proxy_resolution/proxy_config_service.h",
799     "proxy_resolution/proxy_config_service_fixed.cc",
800     "proxy_resolution/proxy_config_service_fixed.h",
801     "proxy_resolution/proxy_config_with_annotation.cc",
802     "proxy_resolution/proxy_config_with_annotation.h",
803     "proxy_resolution/proxy_info.cc",
804     "proxy_resolution/proxy_info.h",
805     "proxy_resolution/proxy_list.cc",
806     "proxy_resolution/proxy_list.h",
807     "proxy_resolution/proxy_resolution_request.h",
808     "proxy_resolution/proxy_resolution_service.h",
809     "proxy_resolution/proxy_resolve_dns_operation.h",
810     "proxy_resolution/proxy_resolver.h",
811     "proxy_resolution/proxy_resolver_error_observer.h",
812     "proxy_resolution/proxy_resolver_factory.cc",
813     "proxy_resolution/proxy_resolver_factory.h",
814     "proxy_resolution/proxy_retry_info.h",
815     "quic/address_utils.h",
816     "quic/bidirectional_stream_quic_impl.cc",
817     "quic/bidirectional_stream_quic_impl.h",
818     "quic/crypto/proof_source_chromium.cc",
819     "quic/crypto/proof_source_chromium.h",
820     "quic/crypto/proof_verifier_chromium.cc",
821     "quic/crypto/proof_verifier_chromium.h",
822     "quic/dedicated_web_transport_http3_client.cc",
823     "quic/dedicated_web_transport_http3_client.h",
824     "quic/network_connection.cc",
825     "quic/network_connection.h",
826     "quic/platform/impl/quic_chromium_clock.cc",
827     "quic/platform/impl/quic_chromium_clock.h",
828     "quic/properties_based_quic_server_info.cc",
829     "quic/properties_based_quic_server_info.h",
830     "quic/quic_address_mismatch.cc",
831     "quic/quic_address_mismatch.h",
832     "quic/quic_chromium_alarm_factory.cc",
833     "quic/quic_chromium_alarm_factory.h",
834     "quic/quic_chromium_client_session.cc",
835     "quic/quic_chromium_client_session.h",
836     "quic/quic_chromium_client_stream.cc",
837     "quic/quic_chromium_client_stream.h",
838     "quic/quic_chromium_connection_helper.cc",
839     "quic/quic_chromium_connection_helper.h",
840     "quic/quic_chromium_packet_reader.cc",
841     "quic/quic_chromium_packet_reader.h",
842     "quic/quic_chromium_packet_writer.cc",
843     "quic/quic_chromium_packet_writer.h",
844     "quic/quic_clock_skew_detector.cc",
845     "quic/quic_clock_skew_detector.h",
846     "quic/quic_connection_logger.cc",
847     "quic/quic_connection_logger.h",
848     "quic/quic_connectivity_monitor.cc",
849     "quic/quic_connectivity_monitor.h",
850     "quic/quic_context.cc",
851     "quic/quic_context.h",
852     "quic/quic_crypto_client_config_handle.cc",
853     "quic/quic_crypto_client_config_handle.h",
854     "quic/quic_crypto_client_stream_factory.cc",
855     "quic/quic_crypto_client_stream_factory.h",
856     "quic/quic_event_logger.cc",
857     "quic/quic_event_logger.h",
858     "quic/quic_http3_logger.cc",
859     "quic/quic_http3_logger.h",
860     "quic/quic_http_stream.cc",
861     "quic/quic_http_stream.h",
862     "quic/quic_http_utils.cc",
863     "quic/quic_http_utils.h",
864     "quic/quic_proxy_client_socket.cc",
865     "quic/quic_proxy_client_socket.h",
866     "quic/quic_server_info.cc",
867     "quic/quic_server_info.h",
868     "quic/quic_session_key.cc",
869     "quic/quic_session_key.h",
870     "quic/quic_stream_factory.cc",
871     "quic/quic_stream_factory.h",
872     "quic/set_quic_flag.cc",
873     "quic/set_quic_flag.h",
874     "quic/web_transport_client.cc",
875     "quic/web_transport_client.h",
876     "quic/web_transport_error.cc",
877     "quic/web_transport_error.h",
878     "socket/client_socket_factory.cc",
879     "socket/client_socket_factory.h",
880     "socket/client_socket_handle.cc",
881     "socket/client_socket_handle.h",
882     "socket/client_socket_pool.cc",
883     "socket/client_socket_pool.h",
884     "socket/client_socket_pool_manager.cc",
885     "socket/client_socket_pool_manager.h",
886     "socket/client_socket_pool_manager_impl.cc",
887     "socket/client_socket_pool_manager_impl.h",
888     "socket/connect_job.cc",
889     "socket/connect_job.h",
890     "socket/connect_job_factory.cc",
891     "socket/connect_job_factory.h",
892     "socket/connection_attempts.h",
893     "socket/datagram_client_socket.h",
894     "socket/datagram_server_socket.h",
895     "socket/datagram_socket.h",
896     "socket/diff_serv_code_point.h",
897     "socket/network_binding_client_socket_factory.cc",
898     "socket/network_binding_client_socket_factory.h",
899     "socket/next_proto.cc",
900     "socket/next_proto.h",
901     "socket/server_socket.cc",
902     "socket/server_socket.h",
903     "socket/socket.cc",
904     "socket/socket.h",
905     "socket/socket_bio_adapter.cc",
906     "socket/socket_bio_adapter.h",
907     "socket/socket_descriptor.cc",
908     "socket/socket_descriptor.h",
909     "socket/socket_net_log_params.cc",
910     "socket/socket_net_log_params.h",
911     "socket/socket_options.cc",
912     "socket/socket_options.h",
913     "socket/socket_performance_watcher.h",
914     "socket/socket_performance_watcher_factory.h",
915     "socket/socket_tag.cc",
916     "socket/socket_tag.h",
917     "socket/socks5_client_socket.cc",
918     "socket/socks5_client_socket.h",
919     "socket/socks_client_socket.cc",
920     "socket/socks_client_socket.h",
921     "socket/socks_connect_job.cc",
922     "socket/socks_connect_job.h",
923     "socket/ssl_client_socket.cc",
924     "socket/ssl_client_socket.h",
925     "socket/ssl_client_socket_impl.cc",
926     "socket/ssl_client_socket_impl.h",
927     "socket/ssl_connect_job.cc",
928     "socket/ssl_connect_job.h",
929     "socket/ssl_server_socket.h",
930     "socket/ssl_server_socket_impl.cc",
931     "socket/ssl_server_socket_impl.h",
932     "socket/ssl_socket.h",
933     "socket/stream_socket.cc",
934     "socket/stream_socket.h",
935     "socket/tcp_client_socket.cc",
936     "socket/tcp_client_socket.h",
937     "socket/tcp_server_socket.cc",
938     "socket/tcp_server_socket.h",
939     "socket/tcp_socket.h",
940     "socket/transport_client_socket.cc",
941     "socket/transport_client_socket.h",
942     "socket/transport_client_socket_pool.cc",
943     "socket/transport_client_socket_pool.h",
944     "socket/transport_connect_job.cc",
945     "socket/transport_connect_job.h",
946     "socket/transport_connect_sub_job.cc",
947     "socket/transport_connect_sub_job.h",
948     "socket/udp_client_socket.cc",
949     "socket/udp_client_socket.h",
950     "socket/udp_net_log_parameters.cc",
951     "socket/udp_net_log_parameters.h",
952     "socket/udp_server_socket.cc",
953     "socket/udp_server_socket.h",
954     "socket/udp_socket.h",
955     "socket/udp_socket_global_limits.cc",
956     "socket/udp_socket_global_limits.h",
957     "socket/websocket_endpoint_lock_manager.cc",
958     "socket/websocket_endpoint_lock_manager.h",
959     "socket/websocket_transport_client_socket_pool.cc",
960     "socket/websocket_transport_client_socket_pool.h",
961     "spdy/alps_decoder.cc",
962     "spdy/alps_decoder.h",
963     "spdy/bidirectional_stream_spdy_impl.cc",
964     "spdy/bidirectional_stream_spdy_impl.h",
965     "spdy/buffered_spdy_framer.cc",
966     "spdy/buffered_spdy_framer.h",
967     "spdy/header_coalescer.cc",
968     "spdy/header_coalescer.h",
969     "spdy/http2_priority_dependencies.cc",
970     "spdy/http2_priority_dependencies.h",
971     "spdy/multiplexed_http_stream.cc",
972     "spdy/multiplexed_http_stream.h",
973     "spdy/multiplexed_session.cc",
974     "spdy/multiplexed_session.h",
975     "spdy/spdy_buffer.cc",
976     "spdy/spdy_buffer.h",
977     "spdy/spdy_buffer_producer.cc",
978     "spdy/spdy_buffer_producer.h",
979     "spdy/spdy_http_stream.cc",
980     "spdy/spdy_http_stream.h",
981     "spdy/spdy_http_utils.cc",
982     "spdy/spdy_http_utils.h",
983     "spdy/spdy_log_util.cc",
984     "spdy/spdy_log_util.h",
985     "spdy/spdy_proxy_client_socket.cc",
986     "spdy/spdy_proxy_client_socket.h",
987     "spdy/spdy_read_queue.cc",
988     "spdy/spdy_read_queue.h",
989     "spdy/spdy_session.cc",
990     "spdy/spdy_session.h",
991     "spdy/spdy_session_key.cc",
992     "spdy/spdy_session_key.h",
993     "spdy/spdy_session_pool.cc",
994     "spdy/spdy_session_pool.h",
995     "spdy/spdy_stream.cc",
996     "spdy/spdy_stream.h",
997     "spdy/spdy_write_queue.cc",
998     "spdy/spdy_write_queue.h",
999     "ssl/cert_compression.cc",
1000     "ssl/cert_compression.h",
1001     "ssl/client_cert_identity.cc",
1002     "ssl/client_cert_identity.h",
1003     "ssl/client_cert_store.h",
1004     "ssl/openssl_ssl_util.cc",
1005     "ssl/openssl_ssl_util.h",
1006     "ssl/ssl_cert_request_info.cc",
1007     "ssl/ssl_cert_request_info.h",
1008     "ssl/ssl_cipher_suite_names.cc",
1009     "ssl/ssl_cipher_suite_names.h",
1010     "ssl/ssl_client_auth_cache.cc",
1011     "ssl/ssl_client_auth_cache.h",
1012     "ssl/ssl_client_session_cache.cc",
1013     "ssl/ssl_client_session_cache.h",
1014     "ssl/ssl_config.cc",
1015     "ssl/ssl_config.h",
1016     "ssl/ssl_config_service.cc",
1017     "ssl/ssl_config_service.h",
1018     "ssl/ssl_config_service_defaults.cc",
1019     "ssl/ssl_config_service_defaults.h",
1020     "ssl/ssl_connection_status_flags.h",
1021     "ssl/ssl_handshake_details.h",
1022     "ssl/ssl_info.cc",
1023     "ssl/ssl_info.h",
1024     "ssl/ssl_key_logger.cc",
1025     "ssl/ssl_key_logger.h",
1026     "ssl/ssl_key_logger_impl.cc",
1027     "ssl/ssl_key_logger_impl.h",
1028     "ssl/ssl_legacy_crypto_fallback.h",
1029     "ssl/ssl_platform_key_util.cc",
1030     "ssl/ssl_platform_key_util.h",
1031     "ssl/ssl_private_key.cc",
1032     "ssl/ssl_private_key.h",
1033     "ssl/ssl_server_config.cc",
1034     "ssl/ssl_server_config.h",
1035     "ssl/threaded_ssl_private_key.cc",
1036     "ssl/threaded_ssl_private_key.h",
1037     "url_request/clear_site_data.cc",
1038     "url_request/clear_site_data.h",
1039     "url_request/redirect_info.cc",
1040     "url_request/redirect_info.h",
1041     "url_request/redirect_util.cc",
1042     "url_request/redirect_util.h",
1043     "url_request/referrer_policy.h",
1044     "url_request/report_sender.cc",
1045     "url_request/report_sender.h",
1046     "url_request/static_http_user_agent_settings.cc",
1047     "url_request/static_http_user_agent_settings.h",
1048     "url_request/url_request.cc",
1049     "url_request/url_request.h",
1050     "url_request/url_request_context.cc",
1051     "url_request/url_request_context.h",
1052     "url_request/url_request_context_builder.cc",
1053     "url_request/url_request_context_builder.h",
1054     "url_request/url_request_context_getter.cc",
1055     "url_request/url_request_context_getter.h",
1056     "url_request/url_request_context_getter_observer.h",
1057     "url_request/url_request_error_job.cc",
1058     "url_request/url_request_error_job.h",
1059     "url_request/url_request_filter.cc",
1060     "url_request/url_request_filter.h",
1061     "url_request/url_request_http_job.cc",
1062     "url_request/url_request_http_job.h",
1063     "url_request/url_request_interceptor.cc",
1064     "url_request/url_request_interceptor.h",
1065     "url_request/url_request_job.cc",
1066     "url_request/url_request_job.h",
1067     "url_request/url_request_job_factory.cc",
1068     "url_request/url_request_job_factory.h",
1069     "url_request/url_request_netlog_params.cc",
1070     "url_request/url_request_netlog_params.h",
1071     "url_request/url_request_redirect_job.cc",
1072     "url_request/url_request_redirect_job.h",
1073     "url_request/url_request_throttler_entry.cc",
1074     "url_request/url_request_throttler_entry.h",
1075     "url_request/url_request_throttler_entry_interface.h",
1076     "url_request/url_request_throttler_manager.cc",
1077     "url_request/url_request_throttler_manager.h",
1078     "url_request/view_cache_helper.cc",
1079     "url_request/view_cache_helper.h",
1080     "url_request/websocket_handshake_userdata_key.cc",
1081     "url_request/websocket_handshake_userdata_key.h",
1082   ]
1083
1084   if (is_posix || is_fuchsia) {
1085     sources += [ "base/net_errors_posix.cc" ]
1086   }
1087   if (tizen_product_tv) {
1088     sources += [
1089       "url_request/dvb_protocol_handler.cc",
1090       "url_request/dvb_protocol_handler.h",
1091       "url_request/mmf_protocol_handler.cc",
1092       "url_request/mmf_protocol_handler.h",
1093     ]
1094   }
1095   defines = []
1096   if (disable_brotli_filter) {
1097     defines += [ "NET_DISABLE_BROTLI" ]
1098   }
1099   if (disable_zstd_filter) {
1100     defines += [ "NET_DISABLE_ZSTD" ]
1101   }
1102
1103   deps = [
1104     ":cronet_buildflags",
1105     ":net_deps",
1106     "//build:chromeos_buildflags",
1107     "//components/miracle_parameter/common",
1108     "//net/http:transport_security_state_generated_files",
1109   ]
1110
1111   public_deps = [
1112     ":net_export_header",
1113     ":net_public_deps",
1114     "//base",
1115     "//net/dns",
1116     "//net/dns:dns_client",
1117     "//net/dns:host_resolver",
1118     "//net/dns:host_resolver_manager",
1119     "//net/dns:mdns_client",
1120     "//net/dns/public",
1121     "//net/third_party/quiche",
1122   ]
1123
1124   allow_circular_includes_from = [
1125     "//net/dns",
1126     "//net/dns:dns_client",
1127     "//net/dns:host_resolver",
1128     "//net/dns:host_resolver_manager",
1129     "//net/dns:mdns_client",
1130     "//net/dns/public",
1131     "//net/http:transport_security_state_generated_files",
1132   ]
1133
1134   if (enable_reporting) {
1135     sources += [
1136       "network_error_logging/network_error_logging_service.cc",
1137       "network_error_logging/network_error_logging_service.h",
1138       "network_error_logging/persistent_reporting_and_nel_store.h",
1139       "reporting/reporting_browsing_data_remover.cc",
1140       "reporting/reporting_browsing_data_remover.h",
1141       "reporting/reporting_cache.cc",
1142       "reporting/reporting_cache.h",
1143       "reporting/reporting_cache_impl.cc",
1144       "reporting/reporting_cache_impl.h",
1145       "reporting/reporting_cache_observer.cc",
1146       "reporting/reporting_cache_observer.h",
1147       "reporting/reporting_context.cc",
1148       "reporting/reporting_context.h",
1149       "reporting/reporting_delegate.cc",
1150       "reporting/reporting_delegate.h",
1151       "reporting/reporting_delivery_agent.cc",
1152       "reporting/reporting_delivery_agent.h",
1153       "reporting/reporting_endpoint.cc",
1154       "reporting/reporting_endpoint.h",
1155       "reporting/reporting_endpoint_manager.cc",
1156       "reporting/reporting_endpoint_manager.h",
1157       "reporting/reporting_garbage_collector.cc",
1158       "reporting/reporting_garbage_collector.h",
1159       "reporting/reporting_header_parser.cc",
1160       "reporting/reporting_header_parser.h",
1161       "reporting/reporting_network_change_observer.cc",
1162       "reporting/reporting_network_change_observer.h",
1163       "reporting/reporting_policy.cc",
1164       "reporting/reporting_policy.h",
1165       "reporting/reporting_report.cc",
1166       "reporting/reporting_report.h",
1167       "reporting/reporting_service.cc",
1168       "reporting/reporting_service.h",
1169       "reporting/reporting_uploader.cc",
1170       "reporting/reporting_uploader.h",
1171     ]
1172   }
1173
1174   if (is_android) {
1175     sources += [
1176       "android/android_http_util.cc",
1177       "android/cert_verify_result_android.cc",
1178       "android/cert_verify_result_android.h",
1179       "android/gurl_utils.cc",
1180       "android/http_auth_negotiate_android.cc",
1181       "android/http_auth_negotiate_android.h",
1182       "android/keystore.cc",
1183       "android/keystore.h",
1184       "android/network_change_notifier_android.cc",
1185       "android/network_change_notifier_android.h",
1186       "android/network_change_notifier_delegate_android.cc",
1187       "android/network_change_notifier_delegate_android.h",
1188       "android/network_change_notifier_factory_android.cc",
1189       "android/network_change_notifier_factory_android.h",
1190       "android/network_library.cc",
1191       "android/network_library.h",
1192       "android/traffic_stats.cc",
1193       "android/traffic_stats.h",
1194       "cert/cert_verify_proc_android.cc",
1195       "cert/cert_verify_proc_android.h",
1196       "cert/test_root_certs_android.cc",
1197       "cert/x509_util_android.cc",
1198       "proxy_resolution/proxy_config_service_android.cc",
1199       "proxy_resolution/proxy_config_service_android.h",
1200       "ssl/ssl_platform_key_android.cc",
1201       "ssl/ssl_platform_key_android.h",
1202     ]
1203   }
1204
1205   if (is_chromeos && use_nss_certs) {
1206     sources += [
1207       "cert/nss_cert_database_chromeos.cc",
1208       "cert/nss_cert_database_chromeos.h",
1209       "cert/nss_profile_filter_chromeos.cc",
1210       "cert/nss_profile_filter_chromeos.h",
1211     ]
1212   }
1213
1214   if (is_ios) {
1215     sources += [
1216       "cert/cert_verify_proc_ios.cc",
1217       "cert/cert_verify_proc_ios.h",
1218       "cert/test_root_certs_ios.cc",
1219       "disk_cache/blockfile/file_ios.cc",
1220       "proxy_resolution/proxy_config_service_ios.cc",
1221       "proxy_resolution/proxy_config_service_ios.h",
1222     ]
1223   }
1224
1225   if (is_linux || is_tizen) {
1226     sources += [
1227       "base/network_change_notifier_linux.cc",
1228       "base/network_change_notifier_linux.h",
1229       "proxy_resolution/proxy_config_service_linux.cc",
1230       "proxy_resolution/proxy_config_service_linux.h",
1231     ]
1232   }
1233
1234   if (is_linux || is_chromeos || is_android || is_tizen) {
1235     sources += [
1236       "base/address_map_linux.cc",
1237       "base/address_map_linux.h",
1238       "base/address_tracker_linux.cc",
1239       "base/address_tracker_linux.h",
1240       "base/network_interfaces_linux.cc",
1241       "base/network_interfaces_linux.h",
1242       "base/platform_mime_util_linux.cc",
1243     ]
1244   }
1245
1246   if (is_linux || is_tizen) {
1247     sources += [
1248       "base/address_map_cache_linux.cc",
1249       "base/address_map_cache_linux.h",
1250     ]
1251   }
1252
1253   if (is_mac) {
1254     sources += [
1255       "base/network_notification_thread_mac.cc",
1256       "base/network_notification_thread_mac.h",
1257       "cert/cert_database_mac.cc",
1258       "cert/internal/trust_store_mac.cc",
1259       "cert/internal/trust_store_mac.h",
1260       "cert/test_keychain_search_list_mac.cc",
1261       "cert/test_keychain_search_list_mac.h",
1262       "cert/test_root_certs_builtin.cc",
1263       "proxy_resolution/proxy_config_service_mac.cc",
1264       "proxy_resolution/proxy_config_service_mac.h",
1265       "ssl/client_cert_identity_mac.cc",
1266       "ssl/client_cert_identity_mac.h",
1267       "ssl/client_cert_store_mac.cc",
1268       "ssl/client_cert_store_mac.h",
1269       "ssl/ssl_platform_key_mac.cc",
1270       "ssl/ssl_platform_key_mac.h",
1271     ]
1272   }
1273
1274   if (is_apple) {
1275     sources += [
1276       "base/mac/url_conversions.h",
1277       "base/mac/url_conversions.mm",
1278       "base/network_change_notifier_mac.h",
1279       "base/network_change_notifier_mac.mm",
1280       "base/network_config_watcher_mac.cc",
1281       "base/network_config_watcher_mac.h",
1282       "base/platform_mime_util_mac.mm",
1283       "cert/x509_util_apple.cc",
1284       "cert/x509_util_apple.h",
1285       "proxy_resolution/proxy_resolver_mac.cc",
1286       "proxy_resolution/proxy_resolver_mac.h",
1287       "proxy_resolution/proxy_server_util_mac.cc",
1288       "proxy_resolution/proxy_server_util_mac.h",
1289     ]
1290   }
1291
1292   if (is_win) {
1293     sources += [
1294       "base/file_stream_context_win.cc",
1295       "base/net_errors_win.cc",
1296       "base/network_change_notifier_win.cc",
1297       "base/network_change_notifier_win.h",
1298       "base/network_interfaces_win.cc",
1299       "base/network_interfaces_win.h",
1300       "base/platform_mime_util_win.cc",
1301       "base/winsock_init.cc",
1302       "base/winsock_init.h",
1303       "base/winsock_util.cc",
1304       "base/winsock_util.h",
1305       "cert/test_root_certs_builtin.cc",
1306       "cert/x509_util_win.cc",
1307       "cert/x509_util_win.h",
1308       "disk_cache/blockfile/file_win.cc",
1309       "disk_cache/blockfile/mapped_file_win.cc",
1310       "disk_cache/cache_util_win.cc",
1311       "disk_cache/simple/simple_util_win.cc",
1312       "http/http_auth_handler_ntlm_win.cc",
1313       "http/http_auth_sspi_win.cc",
1314       "http/http_auth_sspi_win.h",
1315       "http/url_security_manager_win.cc",
1316       "proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.cc",
1317       "proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.h",
1318       "proxy_resolution/win/dhcp_pac_file_fetcher_win.cc",
1319       "proxy_resolution/win/dhcp_pac_file_fetcher_win.h",
1320       "proxy_resolution/win/dhcpcsvc_init_win.cc",
1321       "proxy_resolution/win/dhcpcsvc_init_win.h",
1322       "proxy_resolution/win/proxy_config_service_win.cc",
1323       "proxy_resolution/win/proxy_config_service_win.h",
1324       "proxy_resolution/win/proxy_resolver_winhttp.cc",
1325       "proxy_resolution/win/proxy_resolver_winhttp.h",
1326       "proxy_resolution/win/windows_system_proxy_resolution_request.cc",
1327       "proxy_resolution/win/windows_system_proxy_resolution_request.h",
1328       "proxy_resolution/win/windows_system_proxy_resolution_service.cc",
1329       "proxy_resolution/win/windows_system_proxy_resolution_service.h",
1330       "proxy_resolution/win/windows_system_proxy_resolver.h",
1331       "proxy_resolution/win/winhttp_status.h",
1332       "socket/tcp_socket_win.cc",
1333       "socket/tcp_socket_win.h",
1334       "socket/udp_socket_win.cc",
1335       "socket/udp_socket_win.h",
1336       "ssl/client_cert_store_win.cc",
1337       "ssl/client_cert_store_win.h",
1338       "ssl/ssl_platform_key_win.cc",
1339     ]
1340   }
1341
1342   if (use_kerberos) {
1343     sources += [
1344       "http/http_auth_handler_negotiate.cc",
1345       "http/http_auth_handler_negotiate.h",
1346     ]
1347   }
1348
1349   if (is_posix || is_fuchsia) {
1350     sources += [
1351       "base/file_stream_context_posix.cc",
1352       "base/network_interfaces_posix.cc",
1353       "base/network_interfaces_posix.h",
1354       "base/sockaddr_util_posix.cc",
1355       "base/sockaddr_util_posix.h",
1356       "disk_cache/cache_util_posix.cc",
1357       "disk_cache/simple/simple_util_posix.cc",
1358       "http/url_security_manager_posix.cc",
1359       "socket/socket_posix.cc",
1360       "socket/socket_posix.h",
1361       "socket/tcp_socket_posix.cc",
1362       "socket/tcp_socket_posix.h",
1363       "socket/udp_socket_posix.cc",
1364       "socket/udp_socket_posix.h",
1365     ]
1366     if (!is_ios) {
1367       sources += [ "disk_cache/blockfile/file_posix.cc" ]
1368     }
1369     if (posix_bypass_mmap) {
1370       sources += [ "disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc" ]
1371     } else {
1372       sources += [ "disk_cache/blockfile/mapped_file_posix.cc" ]
1373     }
1374   }
1375
1376   if (is_android || is_chromeos || is_linux || is_tizen) {
1377     sources += [
1378       "base/network_change_notifier_passive.cc",
1379       "base/network_change_notifier_passive.h",
1380     ]
1381   }
1382
1383   if (!is_win) {
1384     sources += [
1385       "http/http_auth_handler_ntlm_portable.cc",
1386       "http/http_auth_ntlm_mechanism.cc",
1387       "http/http_auth_ntlm_mechanism.h",
1388       "ntlm/ntlm.cc",
1389       "ntlm/ntlm.h",
1390       "ntlm/ntlm_buffer_reader.cc",
1391       "ntlm/ntlm_buffer_reader.h",
1392       "ntlm/ntlm_buffer_writer.cc",
1393       "ntlm/ntlm_buffer_writer.h",
1394       "ntlm/ntlm_client.cc",
1395       "ntlm/ntlm_client.h",
1396       "ntlm/ntlm_constants.cc",
1397       "ntlm/ntlm_constants.h",
1398     ]
1399   }
1400
1401   if (use_external_gssapi) {
1402     sources += [
1403       "http/http_auth_gssapi_posix.cc",
1404       "http/http_auth_gssapi_posix.h",
1405     ]
1406   }
1407
1408   # Use getifaddrs() on POSIX platforms, except Linux.
1409   if (is_posix && !is_linux && !is_chromeos && !is_tizen) {
1410     sources += [
1411       "base/network_interfaces_getifaddrs.cc",
1412       "base/network_interfaces_getifaddrs.h",
1413     ]
1414     if (is_android) {
1415       sources += [
1416         "base/network_interfaces_getifaddrs_android.cc",
1417         "base/network_interfaces_getifaddrs_android.h",
1418       ]
1419     }
1420   }
1421
1422   if (chrome_root_store_supported) {
1423     sources += [
1424       "cert/internal/trust_store_chrome.cc",
1425       "cert/internal/trust_store_chrome.h",
1426     ]
1427     deps += [
1428       "//net/cert:root_store_proto_lite",
1429       "//net/data/ssl/chrome_root_store:gen_root_store_inc",
1430     ]
1431     if (is_win) {
1432       sources += [
1433         "cert/internal/trust_store_win.cc",
1434         "cert/internal/trust_store_win.h",
1435         "third_party/mozilla_win/cert/win_util.cc",
1436         "third_party/mozilla_win/cert/win_util.h",
1437       ]
1438     }
1439     if (is_android) {
1440       sources += [
1441         "cert/internal/trust_store_android.cc",
1442         "cert/internal/trust_store_android.h",
1443       ]
1444     }
1445   }
1446
1447   if (use_nss_certs) {
1448     sources += [
1449       "cert/internal/system_trust_store_nss.h",
1450       "cert/internal/trust_store_nss.cc",
1451       "cert/internal/trust_store_nss.h",
1452       "cert/nss_cert_database.cc",
1453       "cert/nss_cert_database.h",
1454       "cert/test_root_certs_builtin.cc",
1455       "cert/x509_util_nss.cc",
1456       "cert/x509_util_nss.h",
1457       "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
1458       "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
1459       "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
1460       "third_party/mozilla_security_manager/nsPKCS12Blob.h",
1461       "third_party/nss/ssl/cmpcert.cc",
1462       "third_party/nss/ssl/cmpcert.h",
1463     ]
1464     if (!is_castos) {
1465       sources += [
1466         "ssl/client_cert_store_nss.cc",
1467         "ssl/client_cert_store_nss.h",
1468         "ssl/ssl_platform_key_nss.cc",
1469         "ssl/ssl_platform_key_nss.h",
1470       ]
1471     }
1472
1473     # TODO(https://crbug.com/978854): This is a public config because
1474     # multi_threaded_cert_verifier.h depends on NSS. When the linked bug is
1475     # fixed, switch this to a non-public config, so NSS usage must be explicit
1476     # in the build.
1477     public_configs = [ "//build/config/linux/nss" ]
1478   }
1479
1480   if (is_fuchsia) {
1481     deps += [
1482       "//net/data/ssl/chrome_root_store:gen_root_store_inc",
1483       "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp",
1484     ]
1485     public_deps += [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp" ]
1486     sources += [
1487       "base/fuchsia/network_interface_cache.cc",
1488       "base/fuchsia/network_interface_cache.h",
1489       "base/network_change_notifier_fuchsia.cc",
1490       "base/network_change_notifier_fuchsia.h",
1491       "base/network_interfaces_fuchsia.cc",
1492       "base/network_interfaces_fuchsia.h",
1493       "base/platform_mime_util_fuchsia.cc",
1494       "cert/test_root_certs_builtin.cc",
1495     ]
1496   }
1497
1498   if (enable_unix_sockets) {
1499     sources += [
1500       "socket/unix_domain_client_socket_posix.cc",
1501       "socket/unix_domain_client_socket_posix.h",
1502       "socket/unix_domain_server_socket_posix.cc",
1503       "socket/unix_domain_server_socket_posix.h",
1504     ]
1505   }
1506
1507   cflags = []
1508
1509   if (is_mac) {
1510     libs = [ "resolv" ]
1511     frameworks = [
1512       "CFNetwork.framework",
1513       "CoreServices.framework",
1514       "Foundation.framework",
1515       "Security.framework",
1516       "SystemConfiguration.framework",
1517       "UniformTypeIdentifiers.framework",
1518     ]
1519   }
1520
1521   if (is_ios) {
1522     libs = [ "resolv" ]
1523     frameworks = [
1524       "CFNetwork.framework",
1525       "CoreTelephony.framework",
1526       "MobileCoreServices.framework",
1527       "Security.framework",
1528       "SystemConfiguration.framework",
1529       "UniformTypeIdentifiers.framework",
1530     ]
1531   }
1532
1533   if (is_win) {
1534     libs = [
1535       "crypt32.lib",
1536       "dhcpcsvc.lib",
1537       "iphlpapi.lib",
1538       "ncrypt.lib",
1539       "rpcrt4.lib",
1540       "secur32.lib",
1541       "urlmon.lib",
1542       "winhttp.lib",
1543     ]
1544
1545     ldflags = [ "/DELAYLOAD:urlmon.dll" ]
1546   }
1547
1548   if (!disable_file_support) {
1549     sources += [
1550       "base/directory_lister.cc",
1551       "base/directory_lister.h",
1552       "base/directory_listing.cc",
1553       "base/directory_listing.h",
1554     ]
1555   }
1556
1557   if (enable_websockets) {
1558     sources += [
1559       "websockets/websocket_basic_handshake_stream.cc",
1560       "websockets/websocket_basic_handshake_stream.h",
1561       "websockets/websocket_basic_stream.cc",
1562       "websockets/websocket_basic_stream.h",
1563       "websockets/websocket_basic_stream_adapters.cc",
1564       "websockets/websocket_basic_stream_adapters.h",
1565       "websockets/websocket_channel.cc",
1566       "websockets/websocket_channel.h",
1567       "websockets/websocket_deflate_parameters.cc",
1568       "websockets/websocket_deflate_parameters.h",
1569       "websockets/websocket_deflate_predictor.h",
1570       "websockets/websocket_deflate_predictor_impl.cc",
1571       "websockets/websocket_deflate_predictor_impl.h",
1572       "websockets/websocket_deflate_stream.cc",
1573       "websockets/websocket_deflate_stream.h",
1574       "websockets/websocket_deflater.cc",
1575       "websockets/websocket_deflater.h",
1576       "websockets/websocket_errors.cc",
1577       "websockets/websocket_errors.h",
1578       "websockets/websocket_event_interface.h",
1579       "websockets/websocket_extension.cc",
1580       "websockets/websocket_extension.h",
1581       "websockets/websocket_extension_parser.cc",
1582       "websockets/websocket_extension_parser.h",
1583       "websockets/websocket_frame.cc",
1584       "websockets/websocket_frame.h",
1585       "websockets/websocket_frame_parser.cc",
1586       "websockets/websocket_frame_parser.h",
1587       "websockets/websocket_handshake_challenge.cc",
1588       "websockets/websocket_handshake_challenge.h",
1589       "websockets/websocket_handshake_constants.cc",
1590       "websockets/websocket_handshake_constants.h",
1591       "websockets/websocket_handshake_request_info.cc",
1592       "websockets/websocket_handshake_request_info.h",
1593       "websockets/websocket_handshake_response_info.cc",
1594       "websockets/websocket_handshake_response_info.h",
1595       "websockets/websocket_handshake_stream_base.cc",
1596       "websockets/websocket_handshake_stream_base.h",
1597       "websockets/websocket_handshake_stream_create_helper.cc",
1598       "websockets/websocket_handshake_stream_create_helper.h",
1599       "websockets/websocket_http2_handshake_stream.cc",
1600       "websockets/websocket_http2_handshake_stream.h",
1601       "websockets/websocket_http3_handshake_stream.cc",
1602       "websockets/websocket_http3_handshake_stream.h",
1603       "websockets/websocket_inflater.cc",
1604       "websockets/websocket_inflater.h",
1605       "websockets/websocket_quic_spdy_stream.cc",
1606       "websockets/websocket_quic_spdy_stream.h",
1607       "websockets/websocket_stream.cc",
1608       "websockets/websocket_stream.h",
1609     ]
1610   }
1611
1612   # ICU support.
1613   if (use_platform_icu_alternatives) {
1614     if (is_android) {
1615       # Use ICU alternative on Android.
1616       sources += [ "base/net_string_util_icu_alternatives_android.cc" ]
1617     } else if (is_ios) {
1618       # Use ICU alternative on iOS.
1619       sources += [ "base/net_string_util_icu_alternatives_ios.mm" ]
1620     } else {
1621       assert(false,
1622              "ICU alternative is not implemented for platform: " + target_os)
1623     }
1624   } else {
1625     # Use ICU.
1626     sources += [
1627       "base/filename_util_icu.cc",
1628       "base/net_string_util_icu.cc",
1629     ]
1630   }
1631
1632   # Brotli support.
1633   if (!disable_brotli_filter) {
1634     sources += [
1635       "filter/brotli_source_stream.cc",
1636       "filter/brotli_source_stream.h",
1637     ]
1638   } else {
1639     sources += [ "filter/brotli_source_stream_disabled.cc" ]
1640   }
1641
1642   # Zstd support.
1643   if (!disable_zstd_filter) {
1644     sources += [
1645       "filter/zstd_source_stream.cc",
1646       "filter/zstd_source_stream.h",
1647     ]
1648   } else {
1649     sources += [
1650       "filter/zstd_source_stream.h",
1651       "filter/zstd_source_stream_disabled.cc",
1652     ]
1653   }
1654
1655   if (!is_debug && !optimize_for_size) {
1656     configs -= [ "//build/config/compiler:default_optimization" ]
1657     configs += [ "//build/config/compiler:optimize_max" ]
1658   }
1659 }
1660
1661 # net_export.h has its own build target so that code (eg
1662 # net_nqe_proto) can use it without depending on the whole of //net.
1663 source_set("net_export_header") {
1664   sources = [ "base/net_export.h" ]
1665 }
1666
1667 # Private dependencies for the //net component and for any build targets (e.g.
1668 # source sets with circular dependencies with //net) that need to share the same
1669 # dependencies.
1670 source_set("net_deps") {
1671   visibility = [
1672     ":net",
1673     "//net/dns",
1674     "//net/dns:dns_client",
1675     "//net/dns:host_resolver",
1676     "//net/dns:host_resolver_manager",
1677     "//net/dns:mdns_client",
1678     "//net/dns/public",
1679     "//net/http:transport_security_state_generated_files",
1680     "//net/third_party/quiche",
1681   ]
1682
1683   public_deps = [
1684     ":constants",
1685     ":cronet_buildflags",
1686     ":isolation_info_proto",
1687     ":net_export_header",
1688     ":preload_decoder",
1689     "//base",
1690     "//base/third_party/dynamic_annotations",
1691     "//net/base/registry_controlled_domains",
1692     "//third_party/protobuf:protobuf_lite",
1693     "//third_party/zlib",
1694     "//url:buildflags",
1695   ]
1696
1697   if (!disable_file_support) {
1698     public_deps += [ ":net_resources" ]
1699   }
1700
1701   public_configs = net_configs
1702
1703   if (use_gio) {
1704     public_configs += [ "//build/linux:gio_config" ]
1705   }
1706
1707   if (is_android) {
1708     public_deps += [ ":net_jni_headers" ]
1709   }
1710
1711   if (is_fuchsia) {
1712     public_deps += [
1713       "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network_hlcpp",
1714       "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp",
1715       "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
1716     ]
1717   }
1718
1719   if (use_platform_icu_alternatives) {
1720     if (is_android) {
1721       public_deps += [ ":net_jni_headers" ]
1722     }
1723   } else {
1724     public_deps += [
1725       "//base:i18n",
1726       "//third_party/icu",
1727     ]
1728   }
1729
1730   if (!disable_brotli_filter) {
1731     public_deps += [ "//third_party/brotli:dec" ]
1732   } else {
1733     public_deps += [ "//third_party/brotli:headers" ]
1734   }
1735
1736   if (!disable_zstd_filter) {
1737     public_deps += [ "//third_party/zstd:decompress" ]
1738   } else {
1739     public_deps += [ "//third_party/zstd:headers" ]
1740   }
1741 }
1742
1743 # Public dependencies for the //net component and for any build targets (e.g.
1744 # source sets with circular dependencies with //net) that need to share the same
1745 # dependencies.
1746 source_set("net_public_deps") {
1747   visibility = [
1748     ":net",
1749     "//net/dns",
1750     "//net/dns:dns_client",
1751     "//net/dns:host_resolver",
1752     "//net/dns:host_resolver_manager",
1753     "//net/dns:mdns_client",
1754     "//net/dns/public",
1755     "//net/http:transport_security_state_generated_files",
1756     "//net/third_party/quiche",
1757   ]
1758
1759   public_deps = [
1760     ":buildflags",
1761     ":net_nqe_proto",
1762     ":uri_template",
1763     "//base",
1764     "//crypto",
1765     "//net/third_party/quiche",
1766     "//net/third_party/quiche:net_quic_test_tools_proto",
1767     "//net/traffic_annotation",
1768     "//third_party/boringssl",
1769     "//url",
1770   ]
1771
1772   if (chrome_root_store_supported) {
1773     public_deps += [ "//net/cert:root_store_proto_lite" ]
1774   }
1775 }
1776
1777 if (is_android) {
1778   java_cpp_enum("effective_connection_type_java") {
1779     sources = [ "//net/nqe/effective_connection_type.h" ]
1780   }
1781 }
1782
1783 component("uri_template") {
1784   sources = [
1785     "third_party/uri_template/uri_template.cc",
1786     "third_party/uri_template/uri_template.h",
1787   ]
1788   visibility = [
1789     ":net_public_deps",
1790     "//net/third_party/quiche",
1791   ]
1792   defines = [ "IS_URI_TEMPLATE_IMPL" ]
1793   public_deps = [ "//base" ]
1794 }
1795
1796 grit("net_resources") {
1797   source = "base/net_resources.grd"
1798   outputs = [
1799     "grit/net_resources.h",
1800     "net_resources.pak",
1801   ]
1802 }
1803
1804 proto_library("net_nqe_proto") {
1805   visibility = [ ":net_public_deps" ]
1806
1807   sources = [ "nqe/proto/network_id_proto.proto" ]
1808   cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:"
1809   cc_include = "net/base/net_export.h"
1810   component_build_force_source_set = true
1811
1812   deps = [ ":net_export_header" ]
1813
1814   defines = [ "NET_IMPLEMENTATION" ]
1815
1816   extra_configs = [ "//build/config/compiler:wexit_time_destructors" ]
1817 }
1818
1819 proto_library("isolation_info_proto") {
1820   sources = [ "base/isolation_info.proto" ]
1821 }
1822
1823 component("extras") {
1824   sources = [
1825     "extras/sqlite/cookie_crypto_delegate.h",
1826     "extras/sqlite/sqlite_persistent_cookie_store.cc",
1827     "extras/sqlite/sqlite_persistent_cookie_store.h",
1828     "extras/sqlite/sqlite_persistent_shared_dictionary_store.cc",
1829     "extras/sqlite/sqlite_persistent_shared_dictionary_store.h",
1830     "extras/sqlite/sqlite_persistent_store_backend_base.cc",
1831     "extras/sqlite/sqlite_persistent_store_backend_base.h",
1832   ]
1833   defines = [ "IS_NET_EXTRAS_IMPL" ]
1834   configs += [ "//build/config/compiler:wexit_time_destructors" ]
1835   deps = [
1836     ":net",
1837     "//base",
1838     "//sql:sql",
1839   ]
1840   public_deps = [ ":shared_dictionary" ]
1841
1842   if (enable_reporting) {
1843     sources += [
1844       "extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc",
1845       "extras/sqlite/sqlite_persistent_reporting_and_nel_store.h",
1846     ]
1847   }
1848 }
1849
1850 component("shared_dictionary") {
1851   sources = [
1852     "extras/shared_dictionary/shared_dictionary_info.cc",
1853     "extras/shared_dictionary/shared_dictionary_info.h",
1854     "extras/shared_dictionary/shared_dictionary_isolation_key.cc",
1855     "extras/shared_dictionary/shared_dictionary_isolation_key.h",
1856     "extras/shared_dictionary/shared_dictionary_usage_info.h",
1857   ]
1858   defines = [ "IS_NET_SHARED_DICTIONARY_IMPL" ]
1859   configs += [ "//build/config/compiler:wexit_time_destructors" ]
1860   deps = [
1861     ":net",
1862     "//base",
1863   ]
1864 }
1865
1866 static_library("preload_decoder") {
1867   sources = [
1868     "extras/preload_data/decoder.cc",
1869     "extras/preload_data/decoder.h",
1870   ]
1871   deps = [ "//base" ]
1872 }
1873
1874 if (!is_ios) {
1875   executable("dump_cache") {
1876     testonly = true
1877     sources = [
1878       "tools/dump_cache/dump_cache.cc",
1879       "tools/dump_cache/dump_files.cc",
1880       "tools/dump_cache/dump_files.h",
1881     ]
1882
1883     deps = [
1884       ":net",
1885       ":test_support",
1886       "//base",
1887       "//build/win:default_exe_manifest",
1888     ]
1889   }
1890 }
1891
1892 if (is_ios) {
1893   bundle_data_from_filelist("test_support_bundle_data") {
1894     visibility = [ ":test_support" ]
1895     testonly = true
1896     filelist_name = "data/test_support_bundle_data.filelist"
1897   }
1898 }
1899
1900 static_library("gtest_util") {
1901   testonly = true
1902   sources = [
1903     "test/gtest_util.h",
1904     "test/scoped_disable_exit_on_dfatal.cc",
1905     "test/scoped_disable_exit_on_dfatal.h",
1906   ]
1907   public_deps = [
1908     "//base",
1909     "//base/test:test_support",
1910     "//net",
1911     "//testing/gmock",
1912     "//testing/gtest",
1913   ]
1914 }
1915
1916 static_library("test_support") {
1917   testonly = true
1918   sources = [
1919     "base/connection_endpoint_metadata_test_util.cc",
1920     "base/connection_endpoint_metadata_test_util.h",
1921     "base/load_timing_info_test_util.cc",
1922     "base/load_timing_info_test_util.h",
1923     "base/mock_file_stream.cc",
1924     "base/mock_file_stream.h",
1925     "base/mock_network_change_notifier.cc",
1926     "base/mock_network_change_notifier.h",
1927     "base/test_completion_callback.cc",
1928     "base/test_completion_callback.h",
1929     "base/test_data_stream.cc",
1930     "base/test_data_stream.h",
1931     "cert/mock_cert_net_fetcher.cc",
1932     "cert/mock_cert_net_fetcher.h",
1933     "cert/mock_cert_verifier.cc",
1934     "cert/mock_cert_verifier.h",
1935     "cert/mock_client_cert_verifier.cc",
1936     "cert/mock_client_cert_verifier.h",
1937     "cert/pki/mock_signature_verify_cache.cc",
1938     "cert/pki/mock_signature_verify_cache.h",
1939     "cookies/canonical_cookie_test_helpers.h",
1940     "cookies/cookie_change_dispatcher_test_helpers.cc",
1941     "cookies/cookie_change_dispatcher_test_helpers.h",
1942     "cookies/cookie_monster_store_test.cc",
1943     "cookies/cookie_monster_store_test.h",
1944     "cookies/cookie_store_change_unittest.h",
1945     "cookies/cookie_store_test_callbacks.cc",
1946     "cookies/cookie_store_test_callbacks.h",
1947     "cookies/cookie_store_test_helpers.cc",
1948     "cookies/cookie_store_test_helpers.h",
1949     "cookies/cookie_store_unittest.h",
1950     "cookies/test_cookie_access_delegate.cc",
1951     "cookies/test_cookie_access_delegate.h",
1952     "disk_cache/disk_cache_test_base.cc",
1953     "disk_cache/disk_cache_test_base.h",
1954     "disk_cache/disk_cache_test_util.cc",
1955     "disk_cache/disk_cache_test_util.h",
1956     "disk_cache/mock/mock_backend_impl.cc",
1957     "disk_cache/mock/mock_backend_impl.h",
1958     "disk_cache/mock/mock_entry_impl.cc",
1959     "disk_cache/mock/mock_entry_impl.h",
1960     "filter/filter_source_stream_test_util.cc",
1961     "filter/filter_source_stream_test_util.h",
1962     "filter/mock_source_stream.cc",
1963     "filter/mock_source_stream.h",
1964     "http/http_response_headers_test_util.cc",
1965     "http/http_response_headers_test_util.h",
1966     "http/http_stream_factory_test_util.cc",
1967     "http/http_stream_factory_test_util.h",
1968     "http/http_transaction_test_util.cc",
1969     "http/http_transaction_test_util.h",
1970     "http/mock_http_cache.cc",
1971     "http/mock_http_cache.h",
1972     "http/transport_security_state_test_util.cc",
1973     "http/transport_security_state_test_util.h",
1974     "log/test_net_log.cc",
1975     "log/test_net_log.h",
1976     "log/test_net_log_util.cc",
1977     "log/test_net_log_util.h",
1978     "nqe/network_quality_estimator_test_util.cc",
1979     "nqe/network_quality_estimator_test_util.h",
1980     "proxy_resolution/mock_pac_file_fetcher.cc",
1981     "proxy_resolution/mock_pac_file_fetcher.h",
1982     "proxy_resolution/mock_proxy_resolver.cc",
1983     "proxy_resolution/mock_proxy_resolver.h",
1984     "proxy_resolution/proxy_config_service_common_unittest.cc",
1985     "proxy_resolution/proxy_config_service_common_unittest.h",
1986     "socket/read_buffering_stream_socket.cc",
1987     "socket/read_buffering_stream_socket.h",
1988     "socket/socket_test_util.cc",
1989     "socket/socket_test_util.h",
1990     "socket/transport_client_socket_test_util.cc",
1991     "socket/transport_client_socket_test_util.h",
1992     "spdy/spdy_test_util_common.cc",
1993     "spdy/spdy_test_util_common.h",
1994     "ssl/client_cert_identity_test_util.cc",
1995     "ssl/client_cert_identity_test_util.h",
1996     "ssl/ssl_private_key_test_util.cc",
1997     "ssl/ssl_private_key_test_util.h",
1998     "ssl/test_ssl_config_service.cc",
1999     "ssl/test_ssl_config_service.h",
2000     "ssl/test_ssl_private_key.cc",
2001     "ssl/test_ssl_private_key.h",
2002     "test/cert_builder.cc",
2003     "test/cert_builder.h",
2004     "test/cert_test_util.cc",
2005     "test/cert_test_util.h",
2006     "test/ct_test_util.cc",
2007     "test/ct_test_util.h",
2008     "test/embedded_test_server/connection_tracker.cc",
2009     "test/embedded_test_server/connection_tracker.h",
2010     "test/embedded_test_server/controllable_http_response.cc",
2011     "test/embedded_test_server/controllable_http_response.h",
2012     "test/embedded_test_server/default_handlers.cc",
2013     "test/embedded_test_server/default_handlers.h",
2014     "test/embedded_test_server/embedded_test_server.cc",
2015     "test/embedded_test_server/embedded_test_server.h",
2016     "test/embedded_test_server/embedded_test_server_connection_listener.cc",
2017     "test/embedded_test_server/embedded_test_server_connection_listener.h",
2018     "test/embedded_test_server/http1_connection.cc",
2019     "test/embedded_test_server/http1_connection.h",
2020     "test/embedded_test_server/http2_connection.cc",
2021     "test/embedded_test_server/http2_connection.h",
2022     "test/embedded_test_server/http_connection.cc",
2023     "test/embedded_test_server/http_connection.h",
2024     "test/embedded_test_server/http_request.cc",
2025     "test/embedded_test_server/http_request.h",
2026     "test/embedded_test_server/http_response.cc",
2027     "test/embedded_test_server/http_response.h",
2028     "test/embedded_test_server/request_handler_util.cc",
2029     "test/embedded_test_server/request_handler_util.h",
2030     "test/embedded_test_server/simple_connection_listener.cc",
2031     "test/embedded_test_server/simple_connection_listener.h",
2032     "test/event_waiter.h",
2033     "test/key_util.cc",
2034     "test/key_util.h",
2035     "test/net_test_suite.cc",
2036     "test/net_test_suite.h",
2037     "test/quic_simple_test_server.cc",
2038     "test/quic_simple_test_server.h",
2039     "test/revocation_builder.cc",
2040     "test/revocation_builder.h",
2041     "test/ssl_test_util.cc",
2042     "test/ssl_test_util.h",
2043     "test/test_certificate_data.h",
2044     "test/test_data_directory.cc",
2045     "test/test_data_directory.h",
2046     "test/test_doh_server.cc",
2047     "test/test_doh_server.h",
2048     "test/test_with_task_environment.h",
2049     "test/url_request/ssl_certificate_error_job.cc",
2050     "test/url_request/ssl_certificate_error_job.h",
2051     "test/url_request/url_request_failed_job.cc",
2052     "test/url_request/url_request_failed_job.h",
2053     "test/url_request/url_request_hanging_read_job.cc",
2054     "test/url_request/url_request_hanging_read_job.h",
2055     "test/url_request/url_request_mock_data_job.cc",
2056     "test/url_request/url_request_mock_data_job.h",
2057     "url_request/url_request_test_job.cc",
2058     "url_request/url_request_test_job.h",
2059     "url_request/url_request_test_util.cc",
2060     "url_request/url_request_test_util.h",
2061   ]
2062
2063   if (is_linux || is_chromeos || is_android) {
2064     sources += [
2065       "base/address_tracker_linux_test_util.cc",
2066       "base/address_tracker_linux_test_util.h",
2067     ]
2068   }
2069
2070   configs += [ "//build/config:precompiled_headers" ]
2071
2072   public_deps = [
2073     ":cronet_buildflags",
2074     ":gtest_util",
2075     "//base",
2076     "//base/test:test_support",
2077     "//crypto",
2078     "//net",
2079     "//net/dns:test_support",
2080     "//net/tools/tld_cleanup",
2081     "//net/traffic_annotation:test_support",
2082     "//testing/gmock",
2083     "//testing/gtest",
2084     "//url",
2085   ]
2086
2087   deps = [
2088     ":quic_test_flags_utils",
2089     ":simple_quic_tools",
2090     "//net/http:transport_security_state_unittest_data_default",
2091     "//third_party/zlib",
2092   ]
2093
2094   allow_circular_includes_from = [ "//net/dns:test_support" ]
2095
2096   # Data dependencies shared with suites other than net_unittests.
2097   data = [
2098     "data/cert_net_fetcher_impl_unittest/",
2099     "data/dns/",
2100     "data/ov_name_constraints/",
2101     "data/parse_certificate_unittest/",
2102     "data/ssl/",
2103     "data/url_request_unittest/",
2104     "data/websocket/",
2105   ]
2106
2107   if (is_mac) {
2108     frameworks = [ "Security.framework" ]
2109   }
2110
2111   if (is_ios) {
2112     deps += [ ":test_support_bundle_data" ]
2113   }
2114
2115   if (use_nss_certs) {
2116     configs += [ "//build/config/linux/nss" ]
2117   }
2118
2119   if (enable_websockets || (is_cronet_build && !is_ios)) {
2120     sources += [
2121       "test/spawned_test_server/base_test_server.cc",
2122       "test/spawned_test_server/base_test_server.h",
2123       "test/spawned_test_server/spawned_test_server.h",
2124     ]
2125   }
2126
2127   public_configs = [ ":net_test_config" ]
2128
2129   if (use_remote_test_server) {
2130     sources += [
2131       "test/spawned_test_server/remote_test_server.cc",
2132       "test/spawned_test_server/remote_test_server.h",
2133       "test/spawned_test_server/remote_test_server_spawner_request.cc",
2134       "test/spawned_test_server/remote_test_server_spawner_request.h",
2135     ]
2136   } else if (!is_ios) {
2137     sources += [
2138       "test/spawned_test_server/local_test_server.cc",
2139       "test/spawned_test_server/local_test_server.h",
2140     ]
2141     if (is_win) {
2142       sources += [ "test/spawned_test_server/local_test_server_win.cc" ]
2143     } else if (is_posix || is_fuchsia) {
2144       sources += [ "test/spawned_test_server/local_test_server_posix.cc" ]
2145     }
2146   }
2147
2148   if (enable_python_utils) {
2149     sources += [
2150       "test/python_utils.cc",
2151       "test/python_utils.h",
2152     ]
2153   }
2154
2155   if (use_nss_certs) {
2156     sources += [ "test/cert_test_util_nss.cc" ]
2157   }
2158
2159   if (!disable_file_support) {
2160     sources += [
2161       "test/url_request/url_request_mock_http_job.cc",
2162       "test/url_request/url_request_mock_http_job.h",
2163       "test/url_request/url_request_test_job_backed_by_file.cc",
2164       "test/url_request/url_request_test_job_backed_by_file.h",
2165     ]
2166   }
2167
2168   if (enable_reporting) {
2169     sources += [
2170       "network_error_logging/mock_persistent_nel_store.cc",
2171       "network_error_logging/mock_persistent_nel_store.h",
2172       "network_error_logging/network_error_logging_test_util.cc",
2173       "network_error_logging/network_error_logging_test_util.h",
2174       "reporting/mock_persistent_reporting_store.cc",
2175       "reporting/mock_persistent_reporting_store.h",
2176       "reporting/reporting_test_util.cc",
2177       "reporting/reporting_test_util.h",
2178     ]
2179   }
2180 }
2181
2182 if (!is_ios && !is_android) {
2183   executable("cert_verify_tool") {
2184     testonly = true
2185     sources = [
2186       "tools/cert_verify_tool/cert_verify_tool.cc",
2187       "tools/cert_verify_tool/cert_verify_tool_util.cc",
2188       "tools/cert_verify_tool/cert_verify_tool_util.h",
2189       "tools/cert_verify_tool/verify_using_cert_verify_proc.cc",
2190       "tools/cert_verify_tool/verify_using_cert_verify_proc.h",
2191       "tools/cert_verify_tool/verify_using_path_builder.cc",
2192       "tools/cert_verify_tool/verify_using_path_builder.h",
2193     ]
2194
2195     deps = [
2196       ":net",
2197       ":test_support",
2198       "//base",
2199       "//build/win:default_exe_manifest",
2200     ]
2201
2202     if (is_mac) {
2203       frameworks = [ "Security.framework" ]
2204     }
2205   }
2206
2207   proto_library("cert_verify_comparison_tool_proto") {
2208     sources = [ "tools/cert_verify_tool/dumper.proto" ]
2209
2210     visibility = [ ":cert_verify_comparison_tool" ]
2211   }
2212
2213   executable("cert_verify_comparison_tool") {
2214     testonly = true
2215     sources = [
2216       "tools/cert_verify_tool/cert_verify_comparision_tool.cc",
2217       "tools/cert_verify_tool/cert_verify_tool_util.cc",
2218       "tools/cert_verify_tool/cert_verify_tool_util.h",
2219       "tools/cert_verify_tool/verify_using_cert_verify_proc.cc",
2220       "tools/cert_verify_tool/verify_using_cert_verify_proc.h",
2221     ]
2222
2223     deps = [
2224       ":cert_verify_comparison_tool_proto",
2225       ":net",
2226       ":test_support",
2227       "//base",
2228       "//build/win:default_exe_manifest",
2229     ]
2230
2231     if (is_mac) {
2232       frameworks = [ "Security.framework" ]
2233     }
2234   }
2235
2236   executable("crash_cache") {
2237     testonly = true
2238     sources = [ "tools/crash_cache/crash_cache.cc" ]
2239
2240     deps = [
2241       ":net",
2242       ":test_support",
2243       "//base",
2244       "//build/win:default_exe_manifest",
2245     ]
2246   }
2247
2248   executable("hpack_example_generator") {
2249     testonly = true
2250     sources = [ "spdy/fuzzing/hpack_example_generator.cc" ]
2251
2252     deps = [
2253       ":net",
2254       ":spdy_test_tools",
2255       "//base",
2256       "//build/win:default_exe_manifest",
2257     ]
2258   }
2259
2260   executable("net_watcher") {
2261     testonly = true
2262     sources = [ "tools/net_watcher/net_watcher.cc" ]
2263     deps = [
2264       ":net",
2265       "//base",
2266       "//build:chromeos_buildflags",
2267       "//build/win:default_exe_manifest",
2268     ]
2269   }
2270
2271   executable("run_testserver") {
2272     testonly = true
2273     sources = [ "tools/testserver/run_testserver.cc" ]
2274     deps = [
2275       ":test_support",
2276       "//base",
2277       "//base/test:test_support",
2278       "//build/win:default_exe_manifest",
2279       "//testing/gtest",
2280     ]
2281   }
2282
2283   executable("stress_cache") {
2284     testonly = true
2285     sources = [ "tools/stress_cache/stress_cache.cc" ]
2286
2287     deps = [
2288       ":net",
2289       ":test_support",
2290       "//base",
2291       "//build/win:default_exe_manifest",
2292     ]
2293   }
2294
2295   executable("tld_cleanup") {
2296     sources = [ "tools/tld_cleanup/tld_cleanup.cc" ]
2297
2298     deps = [
2299       "//base",
2300       "//base:i18n",
2301       "//build/win:default_exe_manifest",
2302       "//net/tools/tld_cleanup",
2303     ]
2304   }
2305 }
2306
2307 if (use_external_gssapi) {
2308   # In order for the tests to be reliable, these two targets cannot depend on a
2309   # valid GSSAPI library. This is easy to achieve on most platforms. But on
2310   # macOS care must be taken to not depend directly or indirectly on
2311   # GSS.framework. This is suprisingly easy to get wrong since
2312   # Security.framework is such a common dependency and it indirectly depends on
2313   # GSS.
2314   shared_library("test_gssapi") {
2315     testonly = true
2316     sources = [
2317       "tools/gssapi/gss_import_name.cc",
2318       "tools/gssapi/gss_methods.cc",
2319       "tools/gssapi/gss_types.h",
2320     ]
2321   }
2322
2323   shared_library("test_badgssapi") {
2324     testonly = true
2325     sources = [
2326       "tools/gssapi/gss_methods.cc",
2327       "tools/gssapi/gss_types.h",
2328     ]
2329   }
2330 }
2331
2332 if (is_linux || is_chromeos || is_mac) {
2333   executable("cachetool") {
2334     testonly = true
2335     sources = [ "tools/cachetool/cachetool.cc" ]
2336     deps = [
2337       ":net",
2338       ":test_support",
2339       "//base",
2340     ]
2341   }
2342
2343   executable("content_decoder_tool") {
2344     testonly = true
2345     sources = [
2346       "tools/content_decoder_tool/content_decoder_tool.cc",
2347       "tools/content_decoder_tool/content_decoder_tool.h",
2348       "tools/content_decoder_tool/content_decoder_tool_bin.cc",
2349     ]
2350     deps = [
2351       ":net",
2352       ":test_support",
2353       "//base",
2354       "//url",
2355     ]
2356   }
2357 }
2358
2359 if (is_android) {
2360   generate_jni("net_jni_headers") {
2361     sources = [
2362       "android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
2363       "android/java/src/org/chromium/net/AndroidKeyStore.java",
2364       "android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
2365       "android/java/src/org/chromium/net/AndroidTrafficStats.java",
2366       "android/java/src/org/chromium/net/DnsStatus.java",
2367       "android/java/src/org/chromium/net/GURLUtils.java",
2368       "android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
2369       "android/java/src/org/chromium/net/HttpUtil.java",
2370       "android/java/src/org/chromium/net/NetStringUtil.java",
2371       "android/java/src/org/chromium/net/NetworkActiveNotifier.java",
2372       "android/java/src/org/chromium/net/NetworkChangeNotifier.java",
2373       "android/java/src/org/chromium/net/ProxyChangeListener.java",
2374       "android/java/src/org/chromium/net/X509Util.java",
2375     ]
2376   }
2377 }
2378
2379 if (is_android || is_linux || is_chromeos) {
2380   executable("disk_cache_memory_test") {
2381     testonly = true
2382     sources = [ "tools/disk_cache_memory_test/disk_cache_memory_test.cc" ]
2383     deps = [
2384       ":net",
2385       "//base",
2386     ]
2387   }
2388 }
2389
2390 source_set("spdy_test_tools") {
2391   testonly = true
2392   sources = [
2393     "spdy/fuzzing/hpack_fuzz_util.cc",
2394     "spdy/fuzzing/hpack_fuzz_util.h",
2395   ]
2396   deps = [
2397     ":net",
2398     "//base",
2399     "//testing/gmock",
2400     "//testing/gtest",
2401   ]
2402 }
2403
2404 source_set("quic_test_flags_utils") {
2405   testonly = true
2406   sources = [
2407     "quic/platform/impl/quic_test_flags_utils.cc",
2408     "quic/platform/impl/quic_test_flags_utils.h",
2409   ]
2410   deps = [ ":net" ]
2411 }
2412
2413 source_set("quic_test_tools") {
2414   testonly = true
2415   sources = [
2416     "quic/crypto_test_utils_chromium.cc",
2417     "quic/crypto_test_utils_chromium.h",
2418     "quic/mock_crypto_client_stream.cc",
2419     "quic/mock_crypto_client_stream.h",
2420     "quic/mock_crypto_client_stream_factory.cc",
2421     "quic/mock_crypto_client_stream_factory.h",
2422     "quic/mock_decrypter.cc",
2423     "quic/mock_decrypter.h",
2424     "quic/mock_encrypter.cc",
2425     "quic/mock_encrypter.h",
2426     "quic/mock_quic_context.cc",
2427     "quic/mock_quic_context.h",
2428     "quic/test_task_runner.cc",
2429     "quic/test_task_runner.h",
2430   ]
2431   deps = [
2432     ":net",
2433     ":simple_quic_tools",
2434     ":test_support",
2435     "//base",
2436     "//crypto:test_support",
2437     "//testing/gmock",
2438     "//testing/gtest",
2439     "//third_party/boringssl",
2440     "//third_party/protobuf:protobuf_lite",
2441     "//third_party/quic_trace:quic_trace_proto",
2442   ]
2443   public_deps = [
2444     ":quic_test_flags_utils",
2445     "//net/third_party/quiche:quiche_test_support",
2446   ]
2447 }
2448
2449 source_set("simple_quic_tools") {
2450   testonly = true
2451   sources = [
2452     "tools/quic/quic_client_message_loop_network_helper.cc",
2453     "tools/quic/quic_client_message_loop_network_helper.h",
2454     "tools/quic/quic_simple_client.cc",
2455     "tools/quic/quic_simple_client.h",
2456     "tools/quic/quic_simple_server.cc",
2457     "tools/quic/quic_simple_server.h",
2458     "tools/quic/quic_simple_server_packet_writer.cc",
2459     "tools/quic/quic_simple_server_packet_writer.h",
2460     "tools/quic/quic_simple_server_session_helper.cc",
2461     "tools/quic/quic_simple_server_session_helper.h",
2462     "tools/quic/quic_simple_server_socket.cc",
2463     "tools/quic/quic_simple_server_socket.h",
2464     "tools/quic/synchronous_host_resolver.cc",
2465     "tools/quic/synchronous_host_resolver.h",
2466   ]
2467   deps = [
2468     ":net",
2469     "//base",
2470     "//base/third_party/dynamic_annotations",
2471     "//net/third_party/quiche:quiche_tool_support",
2472     "//third_party/protobuf:protobuf_lite",
2473     "//url",
2474   ]
2475   public_deps = [ "//net/third_party/quiche:quiche_tool_support" ]
2476 }
2477
2478 if (!is_ios) {
2479   executable("quic_client") {
2480     testonly = true
2481     sources = [ "tools/quic/quic_simple_client_bin.cc" ]
2482     deps = [
2483       ":net",
2484       ":simple_quic_tools",
2485       "//base",
2486       "//build/win:default_exe_manifest",
2487       "//net/third_party/quiche:quic_client_core",
2488       "//url",
2489     ]
2490   }
2491   executable("quic_server") {
2492     testonly = true
2493     sources = [
2494       "tools/quic/quic_simple_server_backend_factory.cc",
2495       "tools/quic/quic_simple_server_backend_factory.h",
2496       "tools/quic/quic_simple_server_bin.cc",
2497     ]
2498     deps = [
2499       ":net",
2500       ":simple_quic_tools",
2501       "//base",
2502       "//build/win:default_exe_manifest",
2503       "//net/third_party/quiche:quic_server_core",
2504       "//third_party/boringssl",
2505       "//third_party/protobuf:protobuf_lite",
2506     ]
2507   }
2508   executable("crypto_message_printer") {
2509     testonly = true
2510     sources = [ "tools/quic/crypto_message_printer_bin.cc" ]
2511     deps = [
2512       ":net",
2513       "//base",
2514       "//build/win:default_exe_manifest",
2515     ]
2516   }
2517 }
2518
2519 if (is_ios) {
2520   bundle_data_from_filelist("net_test_bundle_data") {
2521     testonly = true
2522     filelist_name = "data/test_bundle_data.filelist"
2523   }
2524 }
2525
2526 test("net_unittests") {
2527   sources = [
2528     "base/address_family_unittest.cc",
2529     "base/address_list_unittest.cc",
2530     "base/backoff_entry_serializer_unittest.cc",
2531     "base/backoff_entry_unittest.cc",
2532     "base/chunked_upload_data_stream_unittest.cc",
2533     "base/data_url_unittest.cc",
2534     "base/datagram_buffer_unittest.cc",
2535     "base/elements_upload_data_stream_unittest.cc",
2536     "base/expiring_cache_unittest.cc",
2537     "base/file_stream_unittest.cc",
2538     "base/filename_util_unittest.cc",
2539     "base/host_mapping_rules_unittest.cc",
2540     "base/host_port_pair_unittest.cc",
2541     "base/interval_test.cc",
2542     "base/ip_address_unittest.cc",
2543     "base/ip_endpoint_unittest.cc",
2544     "base/isolation_info_unittest.cc",
2545     "base/lookup_string_in_fixed_set_unittest.cc",
2546     "base/mime_sniffer_unittest.cc",
2547     "base/mime_util_unittest.cc",
2548     "base/net_errors_unittest.cc",
2549     "base/net_string_util_unittest.cc",
2550     "base/network_activity_monitor_unittest.cc",
2551     "base/network_anonymization_key_unittest.cc",
2552     "base/network_change_notifier_unittest.cc",
2553     "base/network_delegate_unittest.cc",
2554     "base/network_interfaces_unittest.cc",
2555     "base/network_isolation_key_unittest.cc",
2556     "base/parse_number_unittest.cc",
2557     "base/port_util_unittest.cc",
2558     "base/prioritized_dispatcher_unittest.cc",
2559     "base/prioritized_task_runner_unittest.cc",
2560     "base/priority_queue_unittest.cc",
2561     "base/proxy_chain_unittest.cc",
2562     "base/proxy_server_unittest.cc",
2563     "base/proxy_string_util_unittest.cc",
2564     "base/registry_controlled_domains/registry_controlled_domain_unittest.cc",
2565     "base/scheme_host_port_matcher_rule_unittest.cc",
2566     "base/scheme_host_port_matcher_unittest.cc",
2567     "base/schemeful_site_unittest.cc",
2568     "base/test_completion_callback_unittest.cc",
2569     "base/test_proxy_delegate.cc",
2570     "base/test_proxy_delegate.h",
2571     "base/upload_bytes_element_reader_unittest.cc",
2572     "base/upload_file_element_reader_unittest.cc",
2573     "base/url_search_params_unittest.cc",
2574     "base/url_util_unittest.cc",
2575     "cert/caching_cert_verifier_unittest.cc",
2576     "cert/cert_and_ct_verifier_unittest.cc",
2577     "cert/cert_database_unittest.cc",
2578     "cert/cert_verifier_unittest.cc",
2579     "cert/cert_verify_proc_builtin_unittest.cc",
2580     "cert/cert_verify_proc_unittest.cc",
2581     "cert/coalescing_cert_verifier_unittest.cc",
2582     "cert/crl_set_unittest.cc",
2583     "cert/ct_log_response_parser_unittest.cc",
2584     "cert/ct_log_verifier_unittest.cc",
2585     "cert/ct_objects_extractor_unittest.cc",
2586     "cert/ct_serialization_unittest.cc",
2587     "cert/ev_root_ca_metadata_unittest.cc",
2588     "cert/internal/cert_issuer_source_aia_unittest.cc",
2589     "cert/internal/cert_issuer_source_sync_unittest.cc",
2590     "cert/internal/revocation_checker_unittest.cc",
2591     "cert/internal/system_trust_store_unittest.cc",
2592     "cert/known_roots_unittest.cc",
2593     "cert/merkle_audit_proof_unittest.cc",
2594     "cert/merkle_tree_leaf_unittest.cc",
2595     "cert/multi_log_ct_verifier_unittest.cc",
2596     "cert/multi_threaded_cert_verifier_unittest.cc",
2597     "cert/pem_unittest.cc",
2598     "cert/pki/cert_issuer_source_static_unittest.cc",
2599     "cert/pki/cert_issuer_source_sync_unittest.h",
2600     "cert/pki/certificate_policies_unittest.cc",
2601     "cert/pki/crl_unittest.cc",
2602     "cert/pki/extended_key_usage_unittest.cc",
2603     "cert/pki/general_names_unittest.cc",
2604     "cert/pki/ip_util_unittest.cc",
2605     "cert/pki/name_constraints_unittest.cc",
2606     "cert/pki/nist_pkits_unittest.cc",
2607     "cert/pki/nist_pkits_unittest.h",
2608     "cert/pki/ocsp_unittest.cc",
2609     "cert/pki/parse_certificate_unittest.cc",
2610     "cert/pki/parse_name_unittest.cc",
2611     "cert/pki/parsed_certificate_unittest.cc",
2612     "cert/pki/path_builder_pkits_unittest.cc",
2613     "cert/pki/path_builder_unittest.cc",
2614     "cert/pki/path_builder_verify_certificate_chain_unittest.cc",
2615     "cert/pki/revocation_util_unittest.cc",
2616     "cert/pki/signature_algorithm_unittest.cc",
2617     "cert/pki/simple_path_builder_delegate_unittest.cc",
2618     "cert/pki/string_util_unittest.cc",
2619     "cert/pki/test_helpers.cc",
2620     "cert/pki/test_helpers.h",
2621     "cert/pki/trust_store_collection_unittest.cc",
2622     "cert/pki/trust_store_unittest.cc",
2623     "cert/pki/verify_certificate_chain_pkits_unittest.cc",
2624     "cert/pki/verify_certificate_chain_typed_unittest.h",
2625     "cert/pki/verify_certificate_chain_unittest.cc",
2626     "cert/pki/verify_name_match_unittest.cc",
2627     "cert/pki/verify_signed_data_unittest.cc",
2628     "cert/signed_certificate_timestamp_unittest.cc",
2629     "cert/symantec_certs_unittest.cc",
2630     "cert/test_root_certs_unittest.cc",
2631     "cert/time_conversions_unittest.cc",
2632     "cert/x509_cert_types_unittest.cc",
2633     "cert/x509_certificate_unittest.cc",
2634     "cert/x509_util_unittest.cc",
2635     "cert_net/cert_net_fetcher_url_request_unittest.cc",
2636     "cookies/canonical_cookie_unittest.cc",
2637     "cookies/cookie_constants_unittest.cc",
2638     "cookies/cookie_deletion_info_unittest.cc",
2639     "cookies/cookie_inclusion_status_unittest.cc",
2640     "cookies/cookie_monster_unittest.cc",
2641     "cookies/cookie_options_unittest.cc",
2642     "cookies/cookie_partition_key_collection_unittest.cc",
2643     "cookies/cookie_partition_key_unittest.cc",
2644     "cookies/cookie_util_unittest.cc",
2645     "cookies/parsed_cookie_unittest.cc",
2646     "cookies/site_for_cookies_unittest.cc",
2647     "cookies/static_cookie_policy_unittest.cc",
2648     "der/encode_values_unittest.cc",
2649     "der/input_unittest.cc",
2650     "der/parse_values_unittest.cc",
2651     "der/parser_unittest.cc",
2652     "disk_cache/backend_cleanup_tracker_unittest.cc",
2653     "disk_cache/backend_unittest.cc",
2654     "disk_cache/blockfile/addr_unittest.cc",
2655     "disk_cache/blockfile/bitmap_unittest.cc",
2656     "disk_cache/blockfile/block_files_unittest.cc",
2657     "disk_cache/blockfile/mapped_file_unittest.cc",
2658     "disk_cache/blockfile/stats_unittest.cc",
2659     "disk_cache/blockfile/storage_block_unittest.cc",
2660     "disk_cache/cache_util_unittest.cc",
2661     "disk_cache/entry_unittest.cc",
2662     "disk_cache/simple/simple_file_enumerator_unittest.cc",
2663     "disk_cache/simple/simple_file_tracker_unittest.cc",
2664     "disk_cache/simple/simple_index_file_unittest.cc",
2665     "disk_cache/simple/simple_index_unittest.cc",
2666     "disk_cache/simple/simple_test_util.cc",
2667     "disk_cache/simple/simple_test_util.h",
2668     "disk_cache/simple/simple_util_unittest.cc",
2669     "disk_cache/simple/simple_version_upgrade_unittest.cc",
2670     "filter/filter_source_stream_unittest.cc",
2671     "filter/gzip_source_stream_unittest.cc",
2672     "first_party_sets/addition_overlaps_union_find_unittest.cc",
2673     "first_party_sets/first_party_set_entry_override_unittest.cc",
2674     "first_party_sets/first_party_sets_cache_filter_unittest.cc",
2675     "first_party_sets/first_party_sets_context_config_unittest.cc",
2676     "first_party_sets/global_first_party_sets_unittest.cc",
2677     "http/alternative_service_unittest.cc",
2678     "http/bidirectional_stream_unittest.cc",
2679     "http/broken_alternative_services_unittest.cc",
2680     "http/http_auth_cache_unittest.cc",
2681     "http/http_auth_challenge_tokenizer_unittest.cc",
2682     "http/http_auth_controller_unittest.cc",
2683     "http/http_auth_filter_unittest.cc",
2684     "http/http_auth_handler_basic_unittest.cc",
2685     "http/http_auth_handler_digest_unittest.cc",
2686     "http/http_auth_handler_factory_unittest.cc",
2687     "http/http_auth_handler_mock.cc",
2688     "http/http_auth_handler_mock.h",
2689     "http/http_auth_handler_unittest.cc",
2690     "http/http_auth_multi_round_parse_unittest.cc",
2691     "http/http_auth_preferences_unittest.cc",
2692     "http/http_auth_unittest.cc",
2693     "http/http_basic_state_unittest.cc",
2694     "http/http_byte_range_unittest.cc",
2695     "http/http_cache_unittest.cc",
2696     "http/http_cache_writers_unittest.cc",
2697     "http/http_chunked_decoder_unittest.cc",
2698     "http/http_content_disposition_unittest.cc",
2699     "http/http_log_util_unittest.cc",
2700     "http/http_network_layer_unittest.cc",
2701     "http/http_network_transaction_unittest.cc",
2702     "http/http_no_vary_search_data_unittest.cc",
2703     "http/http_proxy_client_socket_unittest.cc",
2704     "http/http_proxy_connect_job_unittest.cc",
2705     "http/http_request_headers_unittest.cc",
2706     "http/http_request_info_unittest.cc",
2707     "http/http_response_body_drainer_unittest.cc",
2708     "http/http_response_headers_unittest.cc",
2709     "http/http_response_info_unittest.cc",
2710     "http/http_security_headers_unittest.cc",
2711     "http/http_server_properties_manager_unittest.cc",
2712     "http/http_server_properties_unittest.cc",
2713     "http/http_status_code_unittest.cc",
2714     "http/http_stream_factory_job_controller_unittest.cc",
2715     "http/http_stream_factory_unittest.cc",
2716     "http/http_stream_parser_unittest.cc",
2717     "http/http_stream_request_unittest.cc",
2718     "http/http_util_unittest.cc",
2719     "http/http_vary_data_unittest.cc",
2720     "http/mock_allow_http_auth_preferences.cc",
2721     "http/mock_allow_http_auth_preferences.h",
2722     "http/test_upload_data_stream_not_allow_http1.cc",
2723     "http/test_upload_data_stream_not_allow_http1.h",
2724     "http/transport_security_persister_unittest.cc",
2725     "http/transport_security_state_unittest.cc",
2726     "http/url_security_manager_unittest.cc",
2727     "log/file_net_log_observer_unittest.cc",
2728     "log/net_log_capture_mode_unittest.cc",
2729     "log/net_log_unittest.cc",
2730     "log/net_log_util_unittest.cc",
2731     "log/net_log_values_unittest.cc",
2732     "nqe/effective_connection_type_unittest.cc",
2733     "nqe/event_creator_unittest.cc",
2734     "nqe/network_id_unittest.cc",
2735     "nqe/network_qualities_prefs_manager_unittest.cc",
2736     "nqe/network_quality_estimator_params_unittest.cc",
2737     "nqe/network_quality_estimator_unittest.cc",
2738     "nqe/network_quality_estimator_util_unittest.cc",
2739     "nqe/network_quality_store_unittest.cc",
2740     "nqe/observation_buffer_unittest.cc",
2741     "nqe/socket_watcher_unittest.cc",
2742     "nqe/throughput_analyzer_unittest.cc",
2743     "proxy_resolution/configured_proxy_resolution_service_unittest.cc",
2744     "proxy_resolution/multi_threaded_proxy_resolver_unittest.cc",
2745     "proxy_resolution/network_delegate_error_observer_unittest.cc",
2746     "proxy_resolution/pac_file_decider_unittest.cc",
2747     "proxy_resolution/pac_file_fetcher_impl_unittest.cc",
2748     "proxy_resolution/proxy_bypass_rules_unittest.cc",
2749     "proxy_resolution/proxy_config_unittest.cc",
2750     "proxy_resolution/proxy_info_unittest.cc",
2751     "proxy_resolution/proxy_list_unittest.cc",
2752     "quic/bidirectional_stream_quic_impl_unittest.cc",
2753     "quic/crypto/proof_test_chromium.cc",
2754     "quic/crypto/proof_verifier_chromium_test.cc",
2755     "quic/dedicated_web_transport_http3_client_test.cc",
2756     "quic/mock_quic_data.cc",
2757     "quic/mock_quic_data.h",
2758     "quic/network_connection_unittest.cc",
2759     "quic/platform/impl/quic_chromium_clock_test.cc",
2760     "quic/properties_based_quic_server_info_test.cc",
2761     "quic/quic_address_mismatch_test.cc",
2762     "quic/quic_chromium_alarm_factory_test.cc",
2763     "quic/quic_chromium_client_session_peer.cc",
2764     "quic/quic_chromium_client_session_peer.h",
2765     "quic/quic_chromium_client_session_test.cc",
2766     "quic/quic_chromium_client_stream_test.cc",
2767     "quic/quic_chromium_connection_helper_test.cc",
2768     "quic/quic_clock_skew_detector_test.cc",
2769     "quic/quic_end_to_end_unittest.cc",
2770     "quic/quic_http_stream_test.cc",
2771     "quic/quic_http_utils_test.cc",
2772     "quic/quic_network_transaction_unittest.cc",
2773     "quic/quic_proxy_client_socket_unittest.cc",
2774     "quic/quic_stream_factory_peer.cc",
2775     "quic/quic_stream_factory_peer.h",
2776     "quic/quic_stream_factory_test.cc",
2777     "quic/quic_test_packet_maker.cc",
2778     "quic/quic_test_packet_maker.h",
2779     "quic/quic_test_packet_printer.cc",
2780     "quic/quic_test_packet_printer.h",
2781     "quic/set_quic_flag_test.cc",
2782     "quic/test_quic_crypto_client_config_handle.cc",
2783     "quic/test_quic_crypto_client_config_handle.h",
2784     "socket/client_socket_pool_base_unittest.cc",
2785     "socket/client_socket_pool_unittest.cc",
2786     "socket/connect_job_factory_unittest.cc",
2787     "socket/connect_job_test_util.cc",
2788     "socket/connect_job_test_util.h",
2789     "socket/connect_job_unittest.cc",
2790     "socket/mock_client_socket_pool_manager.cc",
2791     "socket/mock_client_socket_pool_manager.h",
2792     "socket/sequenced_socket_data_unittest.cc",
2793     "socket/socket_bio_adapter_unittest.cc",
2794     "socket/socket_tag_unittest.cc",
2795     "socket/socks5_client_socket_unittest.cc",
2796     "socket/socks_client_socket_unittest.cc",
2797     "socket/socks_connect_job_unittest.cc",
2798     "socket/ssl_client_socket_unittest.cc",
2799     "socket/ssl_connect_job_unittest.cc",
2800     "socket/ssl_server_socket_unittest.cc",
2801     "socket/tcp_client_socket_unittest.cc",
2802     "socket/tcp_server_socket_unittest.cc",
2803     "socket/tcp_socket_unittest.cc",
2804     "socket/transport_client_socket_pool_test_util.cc",
2805     "socket/transport_client_socket_pool_test_util.h",
2806     "socket/transport_client_socket_pool_unittest.cc",
2807     "socket/transport_client_socket_unittest.cc",
2808     "socket/transport_connect_job_unittest.cc",
2809     "socket/udp_socket_unittest.cc",
2810     "socket/websocket_endpoint_lock_manager_unittest.cc",
2811     "socket/websocket_transport_client_socket_pool_unittest.cc",
2812     "spdy/alps_decoder_test.cc",
2813     "spdy/bidirectional_stream_spdy_impl_unittest.cc",
2814     "spdy/buffered_spdy_framer_unittest.cc",
2815     "spdy/fuzzing/hpack_fuzz_util_test.cc",
2816     "spdy/header_coalescer_test.cc",
2817     "spdy/http2_priority_dependencies_unittest.cc",
2818     "spdy/spdy_buffer_unittest.cc",
2819     "spdy/spdy_http_stream_unittest.cc",
2820     "spdy/spdy_http_utils_unittest.cc",
2821     "spdy/spdy_log_util_unittest.cc",
2822     "spdy/spdy_network_transaction_unittest.cc",
2823     "spdy/spdy_proxy_client_socket_unittest.cc",
2824     "spdy/spdy_read_queue_unittest.cc",
2825     "spdy/spdy_session_key_unittest.cc",
2826     "spdy/spdy_session_pool_unittest.cc",
2827     "spdy/spdy_session_test_util.cc",
2828     "spdy/spdy_session_test_util.h",
2829     "spdy/spdy_session_unittest.cc",
2830     "spdy/spdy_stream_test_util.cc",
2831     "spdy/spdy_stream_test_util.h",
2832     "spdy/spdy_stream_unittest.cc",
2833     "spdy/spdy_write_queue_unittest.cc",
2834     "ssl/client_cert_identity_unittest.cc",
2835     "ssl/client_cert_store_unittest-inl.h",
2836     "ssl/ssl_cipher_suite_names_unittest.cc",
2837     "ssl/ssl_client_auth_cache_unittest.cc",
2838     "ssl/ssl_client_session_cache_unittest.cc",
2839     "ssl/ssl_config_service_unittest.cc",
2840     "ssl/ssl_config_unittest.cc",
2841     "ssl/ssl_connection_status_flags_unittest.cc",
2842     "ssl/ssl_platform_key_util_unittest.cc",
2843     "test/embedded_test_server/embedded_test_server_unittest.cc",
2844     "test/embedded_test_server/http_request_unittest.cc",
2845     "test/embedded_test_server/http_response_unittest.cc",
2846     "test/run_all_unittests.cc",
2847     "third_party/nist-pkits/pkits_testcases-inl.h",
2848     "third_party/uri_template/uri_template_test.cc",
2849     "tools/content_decoder_tool/content_decoder_tool.cc",
2850     "tools/content_decoder_tool/content_decoder_tool.h",
2851     "tools/content_decoder_tool/content_decoder_tool_unittest.cc",
2852     "tools/quic/quic_simple_client_test.cc",
2853     "tools/tld_cleanup/tld_cleanup_util_unittest.cc",
2854     "url_request/redirect_info_unittest.cc",
2855     "url_request/redirect_util_unittest.cc",
2856     "url_request/report_sender_unittest.cc",
2857     "url_request/url_request_context_builder_unittest.cc",
2858     "url_request/url_request_filter_unittest.cc",
2859     "url_request/url_request_http_job_unittest.cc",
2860     "url_request/url_request_job_factory_unittest.cc",
2861     "url_request/url_request_job_unittest.cc",
2862     "url_request/url_request_quic_unittest.cc",
2863     "url_request/url_request_throttler_simulation_unittest.cc",
2864     "url_request/url_request_throttler_test_support.cc",
2865     "url_request/url_request_throttler_test_support.h",
2866     "url_request/url_request_throttler_unittest.cc",
2867     "url_request/url_request_unittest.cc",
2868     "url_request/view_cache_helper_unittest.cc",
2869   ]
2870
2871   if (is_android) {
2872     sources += [
2873       "android/dummy_spnego_authenticator.cc",
2874       "android/dummy_spnego_authenticator.h",
2875       "android/http_auth_negotiate_android_unittest.cc",
2876       "android/network_change_notifier_android_unittest.cc",
2877       "android/network_library_unittest.cc",
2878       "android/traffic_stats_unittest.cc",
2879       "cert/cert_verify_proc_android_unittest.cc",
2880       "proxy_resolution/proxy_config_service_android_unittest.cc",
2881       "ssl/ssl_platform_key_android_unittest.cc",
2882     ]
2883   }
2884
2885   if (is_chromeos_ash && use_nss_certs) {
2886     sources += [
2887       "cert/nss_cert_database_chromeos_unittest.cc",
2888       "cert/nss_profile_filter_chromeos_unittest.cc",
2889     ]
2890   }
2891
2892   if (is_linux) {
2893     sources += [
2894       "base/network_change_notifier_linux_unittest.cc",
2895       "proxy_resolution/proxy_config_service_linux_unittest.cc",
2896     ]
2897   }
2898
2899   if (is_linux || is_chromeos) {
2900     sources += [
2901       "base/address_tracker_linux_unittest.cc",
2902       "base/network_interfaces_linux_unittest.cc",
2903     ]
2904   }
2905
2906   if (is_mac) {
2907     sources += [
2908       "cert/internal/trust_store_mac_unittest.cc",
2909       "ssl/client_cert_store_mac_unittest.cc",
2910       "ssl/ssl_platform_key_mac_unittest.cc",
2911     ]
2912   }
2913
2914   if (is_apple) {
2915     sources += [
2916       "cert/x509_util_apple_unittest.cc",
2917       "proxy_resolution/proxy_server_util_mac_unittest.cc",
2918     ]
2919   }
2920
2921   if (is_win) {
2922     sources += [
2923       "base/network_change_notifier_win_unittest.cc",
2924       "base/network_interfaces_win_unittest.cc",
2925       "http/http_auth_sspi_win_unittest.cc",
2926       "http/mock_sspi_library_win.cc",
2927       "http/mock_sspi_library_win.h",
2928       "proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc",
2929       "proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc",
2930       "proxy_resolution/win/proxy_config_service_win_unittest.cc",
2931       "proxy_resolution/win/windows_system_proxy_resolution_service_unittest.cc",
2932       "ssl/client_cert_store_win_unittest.cc",
2933       "ssl/ssl_platform_key_win_unittest.cc",
2934     ]
2935   }
2936
2937   configs += [ "//build/config:precompiled_headers" ]
2938   defines = []
2939
2940   deps = [
2941     ":cronet_buildflags",
2942     ":net",
2943     ":preload_decoder",
2944     ":quic_test_tools",
2945     ":simple_quic_tools",
2946     ":spdy_test_tools",
2947     ":test_support",
2948     "//base",
2949     "//base:i18n",
2950     "//base/third_party/dynamic_annotations",
2951     "//build:chromeos_buildflags",
2952     "//crypto",
2953     "//crypto:test_support",
2954     "//net/base/registry_controlled_domains",
2955     "//net/base/registry_controlled_domains:lookup_strings_test_sets",
2956     "//net/dns:tests",
2957     "//net/dns/public:tests",
2958     "//net/http:transport_security_state_unittest_data",
2959     "//net/http:transport_security_state_unittest_data_default",
2960     "//net/third_party/quiche:quiche_tests",
2961     "//net/tools/huffman_trie:huffman_trie_generator_sources",
2962     "//testing/gmock",
2963     "//testing/gtest",
2964     "//third_party/anonymous_tokens:anonymous_tokens_tests",
2965     "//third_party/protobuf:protobuf_lite",
2966     "//third_party/zlib",
2967     "//url",
2968     "//url:buildflags",
2969   ]
2970
2971   if (!is_cronet_build) {
2972     sources += [
2973       "extras/shared_dictionary/shared_dictionary_isolation_key_unittest.cc",
2974       "extras/sqlite/sqlite_persistent_cookie_store_unittest.cc",
2975       "extras/sqlite/sqlite_persistent_shared_dictionary_store_unittest.cc",
2976       "log/trace_net_log_observer_unittest.cc",
2977     ]
2978
2979     deps += [
2980       ":extras",
2981       "//components/sqlite_proto",
2982       "//sql",
2983       "//sql:test_support",
2984     ]
2985   }
2986
2987   if (enable_websockets) {
2988     deps += [ "//net/server:tests" ]
2989   }
2990
2991   if (is_posix) {
2992     sources += [ "base/sockaddr_util_posix_unittest.cc" ]
2993   }
2994
2995   if (is_android || is_chromeos_ash) {
2996     sources += [ "base/network_change_notifier_passive_unittest.cc" ]
2997   }
2998
2999   if (enable_reporting) {
3000     sources += [
3001       "network_error_logging/mock_persistent_nel_store_unittest.cc",
3002       "network_error_logging/network_error_logging_service_unittest.cc",
3003       "reporting/mock_persistent_reporting_store_unittest.cc",
3004       "reporting/reporting_browsing_data_remover_unittest.cc",
3005       "reporting/reporting_cache_unittest.cc",
3006       "reporting/reporting_delivery_agent_unittest.cc",
3007       "reporting/reporting_endpoint_manager_unittest.cc",
3008       "reporting/reporting_garbage_collector_unittest.cc",
3009       "reporting/reporting_header_parser_unittest.cc",
3010       "reporting/reporting_network_change_observer_unittest.cc",
3011       "reporting/reporting_service_unittest.cc",
3012       "reporting/reporting_uploader_unittest.cc",
3013     ]
3014     if (!is_cronet_build) {
3015       sources += [
3016         "extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc",
3017       ]
3018     }
3019   }
3020
3021   data = [
3022     "data/cache_tests/",
3023     "data/certificate_policies_unittest/",
3024     "data/cert_issuer_source_aia_unittest/",
3025     "data/cert_issuer_source_static_unittest/",
3026     "data/crl_unittest/",
3027     "data/embedded_test_server/",
3028     "data/file_stream_unittest/",
3029     "data/filter_unittests/",
3030     "data/gencerts/",
3031     "data/name_constraints_unittest/",
3032     "data/ocsp_unittest/",
3033     "data/pac_file_fetcher_unittest/",
3034     "data/path_builder_unittest/",
3035     "data/quic_http_response_cache_data/",
3036     "data/quic_http_response_cache_data_with_push/",
3037     "data/spdy_tests/",
3038     "data/test.html",
3039     "data/verify_certificate_chain_unittest/",
3040     "data/verify_name_match_unittest/",
3041     "data/verify_signed_data_unittest/",
3042   ]
3043   data_deps = [
3044     "third_party/nist-pkits/",
3045     "//testing/buildbot/filters:net_unittests_filters",
3046   ]
3047
3048   if (is_linux || is_chromeos || is_mac || is_win || is_fuchsia) {
3049     deps += [ "//third_party/pywebsocket3/" ]
3050     data_deps += [ "//third_party/pywebsocket3/" ]
3051     data += [
3052       "tools/testserver/",
3053       "//third_party/pywebsocket3/src/mod_pywebsocket/",
3054     ]
3055   }
3056
3057   if (is_linux || is_chromeos) {
3058     sources += [ "tools/quic/quic_simple_server_test.cc" ]
3059   }
3060
3061   if (is_apple) {
3062     sources += [ "base/mac/url_conversions_unittest.mm" ]
3063   }
3064
3065   if (is_mac) {
3066     frameworks = [ "Security.framework" ]
3067   }
3068
3069   if (!is_win) {
3070     sources += [
3071       "http/http_auth_handler_ntlm_portable_unittest.cc",
3072       "ntlm/ntlm_buffer_reader_unittest.cc",
3073       "ntlm/ntlm_buffer_writer_unittest.cc",
3074       "ntlm/ntlm_client_unittest.cc",
3075       "ntlm/ntlm_test_data.h",
3076       "ntlm/ntlm_unittest.cc",
3077     ]
3078   }
3079
3080   if (enable_python_utils) {
3081     sources += [ "test/python_utils_unittest.cc" ]
3082   }
3083
3084   if (is_fuchsia) {
3085     use_test_server = true
3086     deps += [
3087       "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp",
3088       "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
3089     ]
3090     sources += [
3091       "base/fuchsia/network_interface_cache_unittest.cc",
3092       "base/network_change_notifier_fuchsia_unittest.cc",
3093     ]
3094     additional_manifest_fragments =
3095         [ "//build/config/fuchsia/test/network.shard.test-cml" ]
3096   }
3097
3098   if (use_nss_certs) {
3099     sources += [
3100       "cert/internal/system_trust_store_nss_unittest.cc",
3101       "cert/internal/trust_store_nss_unittest.cc",
3102       "cert/nss_cert_database_unittest.cc",
3103       "cert/x509_util_nss_unittest.cc",
3104     ]
3105     if (!is_castos) {
3106       sources += [
3107         "ssl/client_cert_store_nss_unittest.cc",
3108         "ssl/ssl_platform_key_nss_unittest.cc",
3109       ]
3110     }
3111     configs += [ "//build/config/linux/nss" ]
3112   }
3113
3114   if (use_external_gssapi) {
3115     sources += [
3116       "http/http_auth_gssapi_posix_unittest.cc",
3117       "http/mock_gssapi_library_posix.cc",
3118       "http/mock_gssapi_library_posix.h",
3119     ]
3120     data_deps += [
3121       ":test_badgssapi",
3122       ":test_gssapi",
3123     ]
3124   }
3125
3126   if (use_kerberos) {
3127     sources += [ "http/http_auth_handler_negotiate_unittest.cc" ]
3128   }
3129
3130   if (enable_websockets) {
3131     sources += [
3132       "websockets/websocket_basic_handshake_stream_test.cc",
3133       "websockets/websocket_basic_stream_adapters_test.cc",
3134       "websockets/websocket_basic_stream_test.cc",
3135       "websockets/websocket_channel_test.cc",
3136       "websockets/websocket_deflate_parameters_test.cc",
3137       "websockets/websocket_deflate_predictor_impl_test.cc",
3138       "websockets/websocket_deflate_stream_test.cc",
3139       "websockets/websocket_deflater_test.cc",
3140       "websockets/websocket_errors_test.cc",
3141       "websockets/websocket_extension_parser_test.cc",
3142       "websockets/websocket_extension_test.cc",
3143       "websockets/websocket_frame_parser_test.cc",
3144       "websockets/websocket_frame_test.cc",
3145       "websockets/websocket_handshake_challenge_test.cc",
3146       "websockets/websocket_handshake_stream_create_helper_test.cc",
3147       "websockets/websocket_inflater_test.cc",
3148       "websockets/websocket_stream_cookie_test.cc",
3149       "websockets/websocket_stream_create_test_base.cc",
3150       "websockets/websocket_stream_create_test_base.h",
3151       "websockets/websocket_stream_test.cc",
3152       "websockets/websocket_test_util.cc",
3153       "websockets/websocket_test_util.h",
3154     ]
3155
3156     if (!is_ios) {
3157       # TODO(crbug.com/1281277): iOS does not have support for the spawned test
3158       # server, which is used by this test. The long term plan is to add
3159       # websocket support to the embedded test server and when that happens,
3160       # this test could be enabled.
3161       sources += [ "websockets/websocket_end_to_end_test.cc" ]
3162     }
3163   }
3164
3165   if (!disable_file_support) {
3166     sources += [
3167       "base/directory_lister_unittest.cc",
3168       "base/directory_listing_unittest.cc",
3169       "test/url_request/url_request_test_job_backed_by_file_unittest.cc",
3170     ]
3171   }
3172
3173   if (enable_built_in_dns) {
3174     sources += [ "url_request/http_with_dns_over_https_unittest.cc" ]
3175   }
3176
3177   if (is_ios) {
3178     bundle_deps = [
3179       ":net_test_bundle_data",
3180       "//net/third_party/nist-pkits:test_bundle_data",
3181     ]
3182   }
3183
3184   if (enable_unix_sockets) {
3185     sources += [
3186       "socket/unix_domain_client_socket_posix_unittest.cc",
3187       "socket/unix_domain_server_socket_posix_unittest.cc",
3188     ]
3189   }
3190
3191   # Use getifaddrs() on POSIX platforms, except Linux.
3192   if (is_posix && !is_linux && !is_chromeos) {
3193     sources += [ "base/network_interfaces_getifaddrs_unittest.cc" ]
3194   }
3195
3196   # Unit tests that aren't supported by the current ICU alternatives on Android.
3197   if (is_android && use_platform_icu_alternatives) {
3198     sources -= [
3199       "base/filename_util_unittest.cc",
3200       "base/url_util_unittest.cc",
3201       "cert/x509_certificate_unittest.cc",
3202       "url_request/url_request_job_unittest.cc",
3203     ]
3204     deps += [ "//url:url_java" ]
3205   }
3206
3207   # Unit tests that are not supported by the current ICU alternatives on iOS.
3208   if (is_ios && use_platform_icu_alternatives) {
3209     sources -= [
3210       "base/filename_util_unittest.cc",
3211       "base/url_util_unittest.cc",
3212       "cert/x509_certificate_unittest.cc",
3213       "http/http_auth_handler_basic_unittest.cc",
3214       "http/http_auth_handler_digest_unittest.cc",
3215       "http/http_auth_handler_factory_unittest.cc",
3216       "http/http_auth_unittest.cc",
3217       "http/http_content_disposition_unittest.cc",
3218       "http/http_network_transaction_unittest.cc",
3219       "spdy/spdy_network_transaction_unittest.cc",
3220       "spdy/spdy_proxy_client_socket_unittest.cc",
3221       "url_request/url_request_job_unittest.cc",
3222       "url_request/url_request_unittest.cc",
3223     ]
3224   }
3225
3226   if (!disable_brotli_filter) {
3227     sources += [ "filter/brotli_source_stream_unittest.cc" ]
3228   }
3229
3230   if (!disable_zstd_filter) {
3231     sources += [ "filter/zstd_source_stream_unittest.cc" ]
3232   }
3233
3234   if (is_android) {
3235     data_deps += [ "//net/tools/testserver:testserver_py" ]
3236     deps += [
3237       ":net_jni_headers",
3238       "//base:base_java_unittest_support",
3239       "//net/android:net_java",
3240       "//net/android:net_java_test_support",
3241       "//net/android:net_test_support_jni",
3242       "//net/android:net_test_support_provider_java",
3243       "//net/android:net_test_support_provider_jni",
3244       "//net/android:net_tests_java",
3245       "//net/android:net_tests_jni",
3246       "//net/android:net_unittests_apk_resources",
3247
3248       # TODO(mmenke):  This depends on test_support_base, which depends on
3249       #                icu.  Figure out a way to remove that dependency.
3250       "//testing/android/native_test:native_test_native_code",
3251     ]
3252     android_manifest = "//net/android/unittest_support/AndroidManifest.xml"
3253
3254     sources += [
3255       "base/address_tracker_linux_unittest.cc",
3256       "base/network_interfaces_linux_unittest.cc",
3257     ]
3258     shard_timeout = 300
3259   }
3260
3261   if (is_win) {
3262     libs = [
3263       "iphlpapi.lib",
3264       "ncrypt.lib",
3265     ]
3266   }
3267
3268   if (chrome_root_store_supported) {
3269     sources += [ "cert/internal/trust_store_chrome_unittest.cc" ]
3270     deps += [ "//net/data/ssl/chrome_root_store:gen_root_store_test_inc" ]
3271
3272     if (is_win) {
3273       sources += [ "cert/internal/trust_store_win_unittest.cc" ]
3274       sources += [ "cert/internal/path_builder_trust_store_win_unittest.cc" ]
3275       libs += [ "crypt32.lib" ]
3276     }
3277   }
3278
3279   # Include transport_security_state_generator tests.
3280   if (host_toolchain == current_toolchain) {
3281     deps += [
3282       "//net/tools/huffman_trie:huffman_trie_generator_test_sources",
3283       "//net/tools/transport_security_state_generator:transport_security_state_generator_test_sources",
3284     ]
3285   }
3286 }
3287
3288 # !is_android && !is_win && !is_mac
3289 if (!is_ios) {
3290   # TODO(crbug.com/594965): this should be converted to "app" template and
3291   # enabled on iOS too.
3292   test("net_perftests") {
3293     sources = [
3294       "base/mime_sniffer_perftest.cc",
3295       "cookies/cookie_monster_perftest.cc",
3296       "disk_cache/disk_cache_perftest.cc",
3297       "extras/sqlite/sqlite_persistent_cookie_store_perftest.cc",
3298       "socket/udp_socket_perftest.cc",
3299       "spdy/spdy_http_utils_perftest.cc",
3300       "url_request/url_request_quic_perftest.cc",
3301     ]
3302
3303     deps = [
3304       ":extras",
3305       ":net",
3306       ":quic_test_tools",
3307       ":simple_quic_tools",
3308       ":test_support",
3309       "//base",
3310       "//base:i18n",
3311       "//base/test:test_support_perf",
3312       "//testing/gtest",
3313       "//testing/perf",
3314       "//third_party/google_benchmark:google_benchmark",
3315       "//url",
3316     ]
3317     data_deps = [
3318       # Needed for isolate script to execute.
3319       "//testing:run_perf_test",
3320     ]
3321     if (enable_websockets) {
3322       sources += [ "websockets/websocket_frame_perftest.cc" ]
3323     }
3324     if (is_win) {
3325       deps += [ "//build/win:default_exe_manifest" ]
3326     }
3327   }
3328 }
3329
3330 # Fuzzers
3331
3332 # This has a global (InitGlobals) that must always be linked in, so
3333 # must be a source set instead of a static library.
3334 if (use_fuzzing_engine) {
3335   # fuzzer_test targets are no-op when |use_fuzzing_engine| is false. Fuzzer
3336   # support targets should be disabled too.
3337   source_set("net_fuzzer_test_support") {
3338     testonly = true
3339
3340     sources = [
3341       "base/fuzzer_test_support.cc",
3342       "filter/fuzzed_source_stream.cc",
3343       "filter/fuzzed_source_stream.h",
3344       "socket/fuzzed_datagram_client_socket.cc",
3345       "socket/fuzzed_datagram_client_socket.h",
3346       "socket/fuzzed_server_socket.cc",
3347       "socket/fuzzed_server_socket.h",
3348       "socket/fuzzed_socket.cc",
3349       "socket/fuzzed_socket.h",
3350       "socket/fuzzed_socket_factory.cc",
3351       "socket/fuzzed_socket_factory.h",
3352     ]
3353     public_deps = [
3354       "//base/test:test_support",
3355       "//net/dns:fuzzer_test_support",
3356     ]
3357     deps = [
3358       "//base",
3359       "//base:i18n",
3360       "//net",
3361     ]
3362     data = [
3363       "data/fuzzer_data",
3364       "data/fuzzer_dictionaries",
3365     ]
3366     allow_circular_includes_from = [ "//net/dns:fuzzer_test_support" ]
3367   }
3368 }
3369
3370 fuzzer_test("net_der_parser_fuzzer") {
3371   sources = [ "der/parser_fuzzer.cc" ]
3372   deps = [
3373     "//net",
3374     "//third_party/abseil-cpp:absl",
3375   ]
3376 }
3377
3378 fuzzer_test("host_port_pair_fuzzer") {
3379   sources = [ "base/host_port_pair_fuzzer.cc" ]
3380   deps = [ "//net" ]
3381 }
3382
3383 proto_library("disk_cache_lpm_fuzzer_proto") {
3384   sources = [ "disk_cache/disk_cache_fuzzer.proto" ]
3385 }
3386
3387 fuzzer_test("disk_cache_lpm_fuzzer") {
3388   sources = [ "disk_cache/disk_cache_fuzzer.cc" ]
3389   deps = [
3390     ":disk_cache_lpm_fuzzer_proto",
3391     ":test_support",
3392     "//base",
3393     "//net",
3394     "//third_party/libprotobuf-mutator",
3395   ]
3396 }
3397
3398 proto_library("backoff_entry_serializer_fuzzer_input") {
3399   proto_in_dir = "//"
3400   sources = [ "base/backoff_entry_serializer_fuzzer_input.proto" ]
3401   link_deps = [ "//testing/libfuzzer/proto:json_proto" ]
3402 }
3403
3404 fuzzer_test("net_backoff_entry_serializer_fuzzer") {
3405   sources = [ "base/backoff_entry_serializer_fuzzer.cc" ]
3406   deps = [
3407     ":backoff_entry_serializer_fuzzer_input",
3408     ":net_fuzzer_test_support",
3409     ":test_support",
3410     "//base",
3411     "//net",
3412     "//testing/libfuzzer/proto:json_proto",
3413     "//testing/libfuzzer/proto:json_proto_converter",
3414     "//third_party/libprotobuf-mutator",
3415   ]
3416 }
3417
3418 fuzzer_test("net_data_url_fuzzer") {
3419   sources = [ "base/data_url_fuzzer.cc" ]
3420   deps = [
3421     ":net_fuzzer_test_support",
3422     ":test_support",
3423     "//base",
3424     "//net",
3425   ]
3426   dict = "data/fuzzer_dictionaries/net_data_url_fuzzer.dict"
3427
3428   # IsTokenChar() and ToLowerASCII() are surprisingly slow in instrumented builds.
3429   libfuzzer_options = [ "max_len=100000" ]
3430 }
3431
3432 fuzzer_test("net_mime_sniffer_fuzzer") {
3433   sources = [ "base/mime_sniffer_fuzzer.cc" ]
3434   deps = [
3435     ":net_fuzzer_test_support",
3436     "//base",
3437     "//net",
3438   ]
3439   dict = "data/fuzzer_dictionaries/net_mime_sniffer_fuzzer.dict"
3440 }
3441
3442 fuzzer_test("net_parse_proxy_list_pac_fuzzer") {
3443   sources = [ "proxy_resolution/parse_proxy_list_pac_fuzzer.cc" ]
3444   deps = [
3445     ":net_fuzzer_test_support",
3446     "//net",
3447   ]
3448 }
3449
3450 fuzzer_test("net_parse_proxy_list_fuzzer") {
3451   sources = [ "proxy_resolution/parse_proxy_list_fuzzer.cc" ]
3452   deps = [
3453     ":net_fuzzer_test_support",
3454     "//net",
3455   ]
3456 }
3457
3458 fuzzer_test("net_parse_proxy_bypass_rules_fuzzer") {
3459   sources = [ "proxy_resolution/parse_proxy_bypass_rules_fuzzer.cc" ]
3460
3461   libfuzzer_options = [
3462     # The proxy bypass rules aren't very complicated, so this is more than
3463     # enough to explore the grammar. Allowing the length to become too large
3464     # can result in test timeouts (https://crbug.com/813619).
3465     "max_len=512",
3466   ]
3467
3468   deps = [
3469     ":net_fuzzer_test_support",
3470     "//net",
3471   ]
3472 }
3473
3474 fuzzer_test("net_parse_proxy_rules_fuzzer") {
3475   sources = [ "proxy_resolution/parse_proxy_rules_fuzzer.cc" ]
3476   deps = [
3477     ":net_fuzzer_test_support",
3478     "//net",
3479   ]
3480   dict = "data/fuzzer_dictionaries/net_parse_proxy_bypass_rules_fuzzer.dict"
3481 }
3482
3483 fuzzer_test("net_get_domain_and_registry_fuzzer") {
3484   sources =
3485       [ "base/registry_controlled_domains/get_domain_and_registry_fuzzer.cc" ]
3486   deps = [
3487     ":net_fuzzer_test_support",
3488     "//base",
3489     "//net",
3490   ]
3491   dict = "data/fuzzer_dictionaries/net_get_domain_and_registry_fuzzer.dict"
3492 }
3493
3494 fuzzer_test("net_lookup_string_in_fixed_set_fuzzer") {
3495   sources = [ "base/lookup_string_in_fixed_set_fuzzer.cc" ]
3496   deps = [
3497     ":net_fuzzer_test_support",
3498     "//base",
3499     "//net",
3500     "//net/base/registry_controlled_domains:lookup_strings_test_sets",
3501   ]
3502   dict = "data/fuzzer_dictionaries/net_get_domain_and_registry_fuzzer.dict"
3503 }
3504
3505 fuzzer_test("net_base_schemeful_site_fuzzer") {
3506   sources = [ "base/schemeful_site_fuzzer.cc" ]
3507   deps = [
3508     ":net_fuzzer_test_support",
3509     "//base",
3510     "//net",
3511     "//testing/libfuzzer/proto:url_proto",
3512     "//testing/libfuzzer/proto:url_proto_converter",
3513     "//third_party/libprotobuf-mutator",
3514   ]
3515 }
3516
3517 fuzzer_test("net_cert_ct_decode_signed_certificate_timestamp_fuzzer") {
3518   sources = [ "cert/decode_signed_certificate_timestamp_fuzzer.cc" ]
3519   deps = [
3520     ":net_fuzzer_test_support",
3521     "//base",
3522     "//net",
3523   ]
3524 }
3525
3526 fuzzer_test("net_cert_verify_name_match_fuzzer") {
3527   sources = [ "cert/pki/verify_name_match_fuzzer.cc" ]
3528   deps = [
3529     ":net_fuzzer_test_support",
3530     "//base",
3531     "//net",
3532   ]
3533 }
3534
3535 fuzzer_test("net_cert_normalize_name_fuzzer") {
3536   sources = [ "cert/pki/verify_name_match_normalizename_fuzzer.cc" ]
3537   deps = [
3538     "//base",
3539     "//net",
3540   ]
3541 }
3542
3543 fuzzer_test("net_cert_verify_name_in_subtree_fuzzer") {
3544   sources = [ "cert/pki/verify_name_match_verifynameinsubtree_fuzzer.cc" ]
3545   deps = [
3546     ":net_fuzzer_test_support",
3547     "//base",
3548     "//net",
3549   ]
3550 }
3551
3552 fuzzer_test("net_cert_crl_parse_crl_certificatelist_fuzzer") {
3553   sources = [ "cert/pki/crl_parse_crl_certificatelist_fuzzer.cc" ]
3554   seed_corpus = "data/fuzzer_data/crl_parse_crl_certificatelist_fuzzer"
3555   deps = [
3556     "//base",
3557     "//net",
3558   ]
3559 }
3560
3561 fuzzer_test("net_cert_crl_parse_crl_tbscertlist_fuzzer") {
3562   sources = [ "cert/pki/crl_parse_crl_tbscertlist_fuzzer.cc" ]
3563   seed_corpus = "data/fuzzer_data/crl_parse_crl_tbscertlist_fuzzer"
3564   deps = [
3565     "//base",
3566     "//net",
3567   ]
3568 }
3569
3570 fuzzer_test("net_cert_crl_parse_issuing_distribution_point_fuzzer") {
3571   sources = [ "cert/pki/crl_parse_issuing_distribution_point_fuzzer.cc" ]
3572   seed_corpus = "data/fuzzer_data/crl_parse_issuing_distribution_point_fuzzer"
3573   deps = [
3574     "//base",
3575     "//net",
3576   ]
3577 }
3578
3579 fuzzer_test("net_cert_crl_getcrlstatusforcert_fuzzer") {
3580   sources = [ "cert/pki/crl_getcrlstatusforcert_fuzzer.cc" ]
3581   seed_corpus = "data/fuzzer_data/crl_getcrlstatusforcert_fuzzer"
3582   deps = [
3583     "//base",
3584     "//net",
3585   ]
3586 }
3587
3588 fuzzer_test("net_cert_ocsp_parse_ocsp_cert_id_fuzzer") {
3589   sources = [ "cert/pki/ocsp_parse_ocsp_cert_id_fuzzer.cc" ]
3590   seed_corpus = "data/fuzzer_data/parse_ocsp_cert_id_fuzzer"
3591   deps = [
3592     "//base",
3593     "//net",
3594   ]
3595 }
3596
3597 fuzzer_test("net_cert_ocsp_parse_ocsp_single_response_fuzzer") {
3598   sources = [ "cert/pki/ocsp_parse_ocsp_single_response_fuzzer.cc" ]
3599   seed_corpus = "data/fuzzer_data/parse_ocsp_single_response_fuzzer"
3600   deps = [
3601     "//base",
3602     "//net",
3603   ]
3604 }
3605
3606 fuzzer_test("net_cert_ocsp_parse_ocsp_response_data_fuzzer") {
3607   sources = [ "cert/pki/ocsp_parse_ocsp_response_data_fuzzer.cc" ]
3608   seed_corpus = "data/fuzzer_data/parse_ocsp_response_data_fuzzer"
3609   deps = [
3610     "//base",
3611     "//net",
3612   ]
3613 }
3614
3615 fuzzer_test("net_cert_ocsp_parse_ocsp_response_fuzzer") {
3616   sources = [ "cert/pki/ocsp_parse_ocsp_response_fuzzer.cc" ]
3617   seed_corpus = "data/fuzzer_data/parse_ocsp_response_fuzzer"
3618   deps = [
3619     "//base",
3620     "//net",
3621   ]
3622 }
3623
3624 fuzzer_test("net_cert_parse_authority_key_identifier_fuzzer") {
3625   sources = [ "cert/pki/parse_authority_key_identifier_fuzzer.cc" ]
3626   seed_corpus = "data/fuzzer_data/parse_authority_key_identifier_fuzzer"
3627   deps = [
3628     "//base",
3629     "//net",
3630   ]
3631 }
3632
3633 fuzzer_test("net_cert_parse_certificate_fuzzer") {
3634   sources = [ "cert/pki/parse_certificate_fuzzer.cc" ]
3635   deps = [
3636     "//base",
3637     "//net",
3638   ]
3639 }
3640
3641 fuzzer_test("net_cert_parse_crldp_fuzzer") {
3642   sources = [ "cert/pki/parse_crldp_fuzzer.cc" ]
3643   seed_corpus = "data/fuzzer_data/parse_crldp_fuzzer"
3644   deps = [
3645     "//base",
3646     "//net",
3647   ]
3648 }
3649
3650 fuzzer_test("net_canonical_cookie_fuzzer") {
3651   sources = [ "cookies/canonical_cookie_fuzzer.cc" ]
3652   deps = [
3653     ":net_fuzzer_test_support",
3654     "//net",
3655   ]
3656   dict = "data/fuzzer_dictionaries/net_cookies_fuzzer.dict"
3657   seed_corpus = "data/fuzzer_data/cookies/"
3658 }
3659
3660 fuzzer_test("net_cookie_partition_key_fuzzer") {
3661   sources = [ "cookies/cookie_partition_key_fuzzer.cc" ]
3662   deps = [
3663     ":net_fuzzer_test_support",
3664     "//net",
3665   ]
3666 }
3667
3668 fuzzer_test("net_cookie_util_parsing_fuzzer") {
3669   sources = [ "cookies/cookie_util_parsing_fuzzer.cc" ]
3670   deps = [
3671     ":net_fuzzer_test_support",
3672     "//net",
3673   ]
3674   dict = "data/fuzzer_dictionaries/net_cookies_fuzzer.dict"
3675   libfuzzer_options = [ "max_len=8192" ]
3676   seed_corpus = "data/fuzzer_data/cookies/"
3677 }
3678
3679 fuzzer_test("net_parse_cookie_line_fuzzer") {
3680   sources = [ "cookies/parse_cookie_line_fuzzer.cc" ]
3681   deps = [
3682     ":net_fuzzer_test_support",
3683     "//net",
3684   ]
3685   dict = "data/fuzzer_dictionaries/net_cookies_fuzzer.dict"
3686   seed_corpus = "data/fuzzer_data/cookies/"
3687 }
3688
3689 fuzzer_test("net_http_stream_parser_fuzzer") {
3690   sources = [ "http/http_stream_parser_fuzzer.cc" ]
3691   deps = [
3692     ":net_fuzzer_test_support",
3693     ":test_support",
3694     "//base",
3695     "//net",
3696   ]
3697   dict = "data/fuzzer_dictionaries/net_http_stream_parser_fuzzer.dict"
3698 }
3699
3700 if (!is_win) {
3701   fuzzer_test("net_ntlm_ntlm_client_fuzzer") {
3702     sources = [
3703       "ntlm/ntlm_client_fuzzer.cc",
3704       "ntlm/ntlm_test_data.h",
3705     ]
3706     deps = [
3707       ":net_fuzzer_test_support",
3708       ":test_support",
3709       "//base",
3710       "//net",
3711     ]
3712     dict = "data/fuzzer_dictionaries/net_ntlm_ntlm_client_fuzzer.dict"
3713     seed_corpus = "data/fuzzer_data/ntlm_client_fuzzer/"
3714   }
3715 }
3716
3717 if (!disable_brotli_filter) {
3718   fuzzer_test("net_brotli_source_stream_fuzzer") {
3719     sources = [ "filter/brotli_source_stream_fuzzer.cc" ]
3720     deps = [
3721       ":net_fuzzer_test_support",
3722       ":test_support",
3723       "//base",
3724       "//net",
3725     ]
3726   }
3727 }
3728
3729 if (!disable_zstd_filter) {
3730   fuzzer_test("net_zstd_source_stream_fuzzer") {
3731     sources = [ "filter/zstd_source_stream_fuzzer.cc" ]
3732     deps = [
3733       ":net_fuzzer_test_support",
3734       ":test_support",
3735       "//base",
3736       "//net",
3737     ]
3738   }
3739 }
3740
3741 fuzzer_test("net_gzip_source_stream_fuzzer") {
3742   sources = [ "filter/gzip_source_stream_fuzzer.cc" ]
3743   deps = [
3744     ":net_fuzzer_test_support",
3745     ":test_support",
3746     "//base",
3747     "//net",
3748   ]
3749 }
3750
3751 fuzzer_test("net_crl_set_fuzzer") {
3752   sources = [ "cert/crl_set_fuzzer.cc" ]
3753   deps = [
3754     ":net_fuzzer_test_support",
3755     ":test_support",
3756     "//base",
3757     "//net",
3758   ]
3759   seed_corpus = "data/fuzzer_data/net_crl_set_fuzzer/"
3760 }
3761
3762 fuzzer_test("net_spdy_headers_to_http_response_headers_fuzzer") {
3763   sources = [ "spdy/spdy_headers_to_http_response_headers_fuzzer.cc" ]
3764   deps = [
3765     ":net_fuzzer_test_support",
3766     "//base",
3767     "//net",
3768   ]
3769   dict = "data/fuzzer_dictionaries/net_http_stream_parser_fuzzer.dict"
3770   libfuzzer_options = [ "max_len = 512" ]
3771 }
3772
3773 fuzzer_test("net_unescape_url_component_fuzzer") {
3774   sources = [ "base/unescape_url_component_fuzzer.cc" ]
3775   deps = [
3776     ":net_fuzzer_test_support",
3777     "//base",
3778     "//net",
3779   ]
3780   dict = "data/fuzzer_dictionaries/unescape_url_component_fuzzer.dict"
3781   libfuzzer_options = [ "max_len = 2048" ]
3782 }
3783
3784 fuzzer_test("net_websocket_deflate_stream_fuzzer") {
3785   sources = [ "websockets/websocket_deflate_stream_fuzzer.cc" ]
3786   deps = [
3787     ":net_fuzzer_test_support",
3788     "//net",
3789   ]
3790   dict = "data/fuzzer_dictionaries/net_websocket_frame_parser_fuzzer.dict"
3791   libfuzzer_options = [ "max_len=512" ]
3792 }
3793
3794 fuzzer_test("net_websocket_extension_parser_fuzzer") {
3795   sources = [ "websockets/websocket_extension_parser_fuzzer.cc" ]
3796   deps = [
3797     ":net_fuzzer_test_support",
3798     "//net",
3799   ]
3800   dict = "data/fuzzer_dictionaries/net_websocket_extension_parser_fuzzer.dict"
3801   libfuzzer_options = [ "max_len = 256" ]
3802 }
3803
3804 fuzzer_test("net_websocket_frame_parser_fuzzer") {
3805   sources = [ "websockets/websocket_frame_parser_fuzzer.cc" ]
3806   deps = [
3807     ":net_fuzzer_test_support",
3808     "//net",
3809   ]
3810   dict = "data/fuzzer_dictionaries/net_websocket_frame_parser_fuzzer.dict"
3811   libfuzzer_options = [ "max_len=256" ]
3812 }
3813
3814 if (use_fuzzing_engine) {
3815   # This is a separate target because //net/server:http_server
3816   # wants to limit its visibility to a select number of target, but the
3817   # "fuzzer_test" template expands on iOS to many targets that need to
3818   # have the "deps" information propagated in order to support "fat"
3819   # binaries.
3820   source_set("net_web_socket_encoder_fuzzer_deps") {
3821     testonly = true
3822     visibility = [
3823       ":net_web_socket_encoder_fuzzer",
3824       ":net_web_socket_encoder_fuzzer_executable",
3825       ":run_net_web_socket_encoder_fuzzer",
3826     ]
3827     public_deps = [
3828       ":net_fuzzer_test_support",
3829       "//net",
3830       "//net/server:http_server",
3831     ]
3832   }
3833
3834   fuzzer_test("net_web_socket_encoder_fuzzer") {
3835     sources = [ "server/web_socket_encoder_fuzzer.cc" ]
3836     deps = [ ":net_web_socket_encoder_fuzzer_deps" ]
3837     libfuzzer_options = [ "max_len=256" ]
3838   }
3839 }
3840
3841 fuzzer_test("net_http_chunked_decoder_fuzzer") {
3842   sources = [ "http/http_chunked_decoder_fuzzer.cc" ]
3843   deps = [
3844     ":net_fuzzer_test_support",
3845     "//net",
3846   ]
3847   dict = "data/fuzzer_dictionaries/http_chunked_decoder_fuzzer.dict"
3848 }
3849
3850 fuzzer_test("net_http_auth_handler_basic_fuzzer") {
3851   sources = [ "http/http_auth_handler_basic_fuzzer.cc" ]
3852   dict = "data/fuzzer_dictionaries/net_http_auth_handler_basic_fuzzer.dict"
3853   deps = [
3854     ":net_fuzzer_test_support",
3855     ":test_support",
3856     "//net",
3857   ]
3858 }
3859
3860 fuzzer_test("net_http_auth_handler_digest_fuzzer") {
3861   sources = [ "http/http_auth_handler_digest_fuzzer.cc" ]
3862   dict = "data/fuzzer_dictionaries/net_http_auth_handler_digest_fuzzer.dict"
3863   deps = [
3864     ":net_fuzzer_test_support",
3865     ":test_support",
3866     "//net",
3867   ]
3868 }
3869
3870 fuzzer_test("net_http_auth_handler_fuzzer") {
3871   sources = [ "http/http_auth_handler_fuzzer.cc" ]
3872   deps = [
3873     ":net_fuzzer_test_support",
3874     ":test_support",
3875     "//base",
3876     "//net",
3877   ]
3878 }
3879
3880 fuzzer_test("net_http_content_disposition_fuzzer") {
3881   sources = [ "http/http_content_disposition_fuzzer.cc" ]
3882   dict = "data/fuzzer_dictionaries/net_http_content_disposition_fuzzer.dict"
3883   deps = [
3884     ":net_fuzzer_test_support",
3885     "//net",
3886   ]
3887 }
3888
3889 fuzzer_test("net_http_proxy_client_socket_fuzzer") {
3890   sources = [ "http/http_proxy_client_socket_fuzzer.cc" ]
3891   deps = [
3892     ":net_fuzzer_test_support",
3893     ":test_support",
3894     "//base",
3895     "//net",
3896   ]
3897   dict = "data/fuzzer_dictionaries/net_http_proxy_client_socket_fuzzer.dict"
3898 }
3899
3900 fuzzer_test("net_structured_headers_fuzzer") {
3901   sources = [ "http/structured_headers_fuzzer.cc" ]
3902   deps = [
3903     ":net_fuzzer_test_support",
3904     ":test_support",
3905     "//base",
3906     "//net",
3907   ]
3908   seed_corpus = "data/fuzzer_data/structured_headers_corpus"
3909 }
3910
3911 fuzzer_test("net_parse_url_hostname_to_address_fuzzer") {
3912   sources = [ "base/parse_url_hostname_to_address_fuzzer.cc" ]
3913   deps = [
3914     ":net_fuzzer_test_support",
3915     "//base",
3916     "//net",
3917   ]
3918   libfuzzer_options = [ "max_len=512" ]
3919   seed_corpus = "data/fuzzer_data/hostnames/"
3920 }
3921
3922 fuzzer_test("net_quic_crypto_framer_parse_message_fuzzer") {
3923   sources = [ "quic/quic_crypto_framer_parse_message_fuzzer.cc" ]
3924   deps = [
3925     ":net_fuzzer_test_support",
3926     "//base",
3927     "//net",
3928   ]
3929 }
3930
3931 fuzzer_test("net_quic_transport_parameters_fuzzer") {
3932   sources = [ "quic/quic_transport_parameters_fuzzer.cc" ]
3933   deps = [
3934     ":net_fuzzer_test_support",
3935     "//base",
3936     "//net",
3937   ]
3938 }
3939
3940 fuzzer_test("net_socks_client_socket_fuzzer") {
3941   sources = [ "socket/socks_client_socket_fuzzer.cc" ]
3942   deps = [
3943     ":net_fuzzer_test_support",
3944     ":test_support",
3945     "//base",
3946     "//net",
3947   ]
3948 }
3949
3950 fuzzer_test("net_socks5_client_socket_fuzzer") {
3951   sources = [ "socket/socks5_client_socket_fuzzer.cc" ]
3952   deps = [
3953     ":net_fuzzer_test_support",
3954     ":test_support",
3955     "//base",
3956     "//net",
3957   ]
3958 }
3959
3960 fuzzer_test("net_url_request_fuzzer") {
3961   sources = [ "url_request/url_request_fuzzer.cc" ]
3962   deps = [
3963     ":net_fuzzer_test_support",
3964     ":test_support",
3965     "//base",
3966     "//net",
3967   ]
3968   dict = "data/fuzzer_dictionaries/net_url_request_fuzzer.dict"
3969 }
3970
3971 fuzzer_test("net_auth_challenge_tokenizer_fuzzer") {
3972   sources = [ "http/http_auth_challenge_tokenizer_fuzzer.cc" ]
3973   deps = [
3974     ":net_fuzzer_test_support",
3975     ":test_support",
3976     "//base",
3977     "//net",
3978   ]
3979 }
3980
3981 fuzzer_test("net_http_security_headers_hsts_fuzzer") {
3982   sources = [ "http/http_security_headers_hsts_fuzzer.cc" ]
3983   deps = [
3984     "//base",
3985     "//net",
3986   ]
3987   dict = "data/fuzzer_dictionaries/net_http_security_headers_fuzzer.dict"
3988   seed_corpus = "data/fuzzer_data/http_security_headers/"
3989 }
3990
3991 fuzzer_test("net_http_transport_security_state_static_fuzzer") {
3992   sources = [ "http/transport_security_state_static_fuzzer.cc" ]
3993   deps = [
3994     ":net_fuzzer_test_support",
3995     "//net",
3996   ]
3997   dict =
3998       "data/fuzzer_dictionaries/net_http_transport_security_state_fuzzer.dict"
3999 }
4000
4001 fuzzer_test("net_spdy_session_fuzzer") {
4002   sources = [ "spdy/spdy_session_fuzzer.cc" ]
4003   deps = [
4004     ":net_fuzzer_test_support",
4005     ":test_support",
4006     "//base",
4007     "//net",
4008     "//net/data/ssl/certificates:generate_fuzzer_cert_includes",
4009   ]
4010   dict = "data/fuzzer_dictionaries/net_spdy_session_fuzzer.dict"
4011   seed_corpus = "data/fuzzer_data/net_spdy_session_fuzzer/"
4012 }
4013
4014 fuzzer_test("net_http2_frame_decoder_fuzzer") {
4015   sources = [ "spdy/fuzzing/http2_frame_decoder_fuzzer.cc" ]
4016   deps = [
4017     ":net_fuzzer_test_support",
4018     ":test_support",
4019     "//base",
4020     "//net",
4021   ]
4022 }
4023
4024 fuzzer_test("net_hpack_decoder_fuzzer") {
4025   sources = [ "spdy/fuzzing/hpack_decoder_fuzzer.cc" ]
4026   deps = [
4027     ":net_fuzzer_test_support",
4028     ":test_support",
4029     "//base",
4030     "//net",
4031   ]
4032 }
4033
4034 proto_library("reporting_policy_proto") {
4035   proto_in_dir = "//"
4036   sources = [ "reporting/reporting_policy.proto" ]
4037   link_deps = [ "//testing/libfuzzer/proto:json_proto" ]
4038 }
4039
4040 fuzzer_test("net_reporting_header_parser_fuzzer") {
4041   sources = [ "reporting/reporting_header_parser_fuzzer.cc" ]
4042
4043   deps = [
4044     ":net_fuzzer_test_support",
4045     ":reporting_policy_proto",
4046     ":test_support",
4047     "//base",
4048     "//net",
4049     "//testing/libfuzzer/proto:json_proto",
4050     "//testing/libfuzzer/proto:json_proto_converter",
4051     "//third_party/libprotobuf-mutator",
4052   ]
4053 }
4054
4055 fuzzer_test("net_quic_stream_factory_fuzzer") {
4056   sources = [ "quic/quic_stream_factory_fuzzer.cc" ]
4057
4058   deps = [
4059     ":net_fuzzer_test_support",
4060     ":quic_test_tools",
4061     ":test_support",
4062     "//net",
4063     "//net/data/ssl/certificates:generate_fuzzer_cert_includes",
4064   ]
4065 }
4066
4067 fuzzer_test("net_uri_template_fuzzer") {
4068   sources = [ "third_party/uri_template/uri_template_fuzzer.cc" ]
4069   deps = [
4070     ":net_fuzzer_test_support",
4071     "//base",
4072     "//net",
4073   ]
4074   dict = "data/fuzzer_dictionaries/net_uri_template_fuzzer.dict"
4075 }
4076
4077 if (is_linux || is_chromeos) {
4078   fuzzer_test("net_base_address_tracker_linux_fuzzer") {
4079     sources = [ "base/address_tracker_linux_fuzzer.cc" ]
4080     deps = [
4081       ":net_fuzzer_test_support",
4082       ":test_support",
4083       "//base",
4084       "//net",
4085     ]
4086   }
4087 }