1# Copyright (c) 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/crypto.gni")
6import("//build/config/features.gni")
7import("//build/config/ui.gni")
8import("//url/config.gni")
9
10# TODO(cjhopman): //build/config/android/rules.gni also imports grit_rule.gni.
11# Currently, that file can't be imported multiple times.  Make this always
12# imported when http://crbug.com/393704 is fixed.
13if (!is_android) {
14  import("//tools/grit/grit_rule.gni")
15}
16
17if (is_android) {
18  import("//build/config/android/config.gni")
19  import("//build/config/android/rules.gni")
20} else if (is_mac) {
21  import("//build/config/mac/mac_sdk.gni")
22}
23
24# The list of net files is kept in net.gypi. Read it.
25gypi_values = exec_script(
26    "//build/gypi_to_gn.py",
27    [ rebase_path("net.gypi") ],
28    "scope",
29    [ "net.gypi" ])
30
31# Disable Kerberos on ChromeOS, Android and iOS, at least for now. It needs
32# configuration (krb5.conf and so on).
33use_kerberos = !is_chromeos && !is_android && !is_ios
34
35# The way the cache uses mmap() is inefficient on some Android devices. If
36# this flag is set, we hackily avoid using mmap() in the disk cache. We are
37# pretty confident that mmap-ing the index would not hurt any existing x86
38# android devices, but we cannot be so sure about the variety of ARM devices.
39# So enable it for x86 only for now.
40posix_avoid_mmap = is_android && cpu_arch != "x86"
41
42# WebSockets and socket stream code are used everywhere except iOS.
43enable_websockets = !is_ios
44use_v8_in_net = !is_ios
45enable_built_in_dns = !is_ios
46disable_ftp_support = is_ios
47
48declare_args() {
49  # Disables support for file URLs.  File URL support requires use of icu.
50  disable_file_support = false
51}
52
53config("net_config") {
54  defines = []
55  if (posix_avoid_mmap) {
56    defines += [ "POSIX_AVOID_MMAP" ]
57  }
58  if (disable_file_support) {
59    defines += [ "DISABLE_FILE_SUPPORT" ]
60  }
61}
62
63# Disables Windows warning about size to int truncations.
64# TODO(jschuh): crbug.com/167187 fix this and delete this config.
65config("net_win_size_truncation") {
66  if (is_win) {
67    cflags = [ "/wd4267" ]
68  }
69}
70
71component("net") {
72  sources =
73    gypi_values.net_nacl_common_sources +
74    gypi_values.net_non_nacl_sources
75
76  cflags = []
77  defines = [
78    # TODO(GYP) Note that he GYP file supports linux_link_kerberos (defaults to
79    # 0) which implies that we run pkg_config on kerberos and link to that
80    # rather than setting this define which will dynamically open it. That
81    # doesn't seem to be set in the regular builds, so we're skipping this
82    # capability here.
83    "DLOPEN_KERBEROS",
84    "NET_IMPLEMENTATION"
85  ]
86  configs += [ ":net_win_size_truncation" ]
87  public_configs = [ ":net_config" ]
88  include_dirs = []
89
90  public_deps = [
91    "//crypto",
92    "//crypto:platform"
93  ]
94  deps = [
95   ":net_resources",
96    "//base",
97    "//base:i18n",
98    "//base:prefs",
99    "//base/third_party/dynamic_annotations",
100    "//net/base/registry_controlled_domains",
101    "//sdch",
102    "//third_party/icu",
103    "//third_party/zlib",
104    "//url",
105  ]
106
107  if (use_kerberos) {
108    defines += [ "USE_KERBEROS" ]
109    if (is_android) {
110      include_dirs += [ "/usr/include/kerberosV" ]
111    }
112  } else {
113    sources -= [
114      "http/http_auth_gssapi_posix.cc",
115      "http/http_auth_gssapi_posix.h",
116      "http/http_auth_handler_negotiate.h",
117      "http/http_auth_handler_negotiate.cc",
118    ]
119  }
120
121  if (is_posix) {
122    if (posix_avoid_mmap) {
123      sources -= [ "disk_cache/blockfile/mapped_file_posix.cc" ]
124    } else {
125      sources -= [ "disk_cache/blockfile/mapped_file_avoid_mmap_posix.cc" ]
126    }
127  }
128
129  if (disable_file_support) {
130    sources -= [
131      "base/directory_lister.cc",
132      "base/directory_lister.h",
133      "url_request/url_request_file_dir_job.cc",
134      "url_request/url_request_file_dir_job.h",
135      "url_request/url_request_file_job.cc",
136      "url_request/url_request_file_job.h",
137      "url_request/file_protocol_handler.cc",
138      "url_request/file_protocol_handler.h",
139    ]
140  }
141
142  if (disable_ftp_support) {
143    sources -= [
144      "ftp/ftp_auth_cache.cc",
145      "ftp/ftp_auth_cache.h",
146      "ftp/ftp_ctrl_response_buffer.cc",
147      "ftp/ftp_ctrl_response_buffer.h",
148      "ftp/ftp_directory_listing_parser.cc",
149      "ftp/ftp_directory_listing_parser.h",
150      "ftp/ftp_directory_listing_parser_ls.cc",
151      "ftp/ftp_directory_listing_parser_ls.h",
152      "ftp/ftp_directory_listing_parser_netware.cc",
153      "ftp/ftp_directory_listing_parser_netware.h",
154      "ftp/ftp_directory_listing_parser_os2.cc",
155      "ftp/ftp_directory_listing_parser_os2.h",
156      "ftp/ftp_directory_listing_parser_vms.cc",
157      "ftp/ftp_directory_listing_parser_vms.h",
158      "ftp/ftp_directory_listing_parser_windows.cc",
159      "ftp/ftp_directory_listing_parser_windows.h",
160      "ftp/ftp_network_layer.cc",
161      "ftp/ftp_network_layer.h",
162      "ftp/ftp_network_session.cc",
163      "ftp/ftp_network_session.h",
164      "ftp/ftp_network_transaction.cc",
165      "ftp/ftp_network_transaction.h",
166      "ftp/ftp_request_info.h",
167      "ftp/ftp_response_info.cc",
168      "ftp/ftp_response_info.h",
169      "ftp/ftp_server_type_histograms.cc",
170      "ftp/ftp_server_type_histograms.h",
171      "ftp/ftp_transaction.h",
172      "ftp/ftp_transaction_factory.h",
173      "ftp/ftp_util.cc",
174      "ftp/ftp_util.h",
175      "url_request/ftp_protocol_handler.cc",
176      "url_request/ftp_protocol_handler.h",
177      "url_request/url_request_ftp_job.cc",
178      "url_request/url_request_ftp_job.h",
179    ]
180  }
181
182  if (enable_built_in_dns) {
183    defines += [ "ENABLE_BUILT_IN_DNS" ]
184  } else {
185    sources -= [
186      "dns/address_sorter_posix.cc",
187      "dns/address_sorter_posix.h",
188      "dns/dns_client.cc",
189    ]
190  }
191
192  if (use_openssl) {
193    sources -= [
194      "base/nss_memio.c",
195      "base/nss_memio.h",
196      "cert/ct_log_verifier_nss.cc",
197      "cert/ct_objects_extractor_nss.cc",
198      "cert/jwk_serializer_nss.cc",
199      "cert/scoped_nss_types.h",
200      "cert/x509_util_nss.cc",
201      "cert/x509_util_nss.h",
202      "quic/crypto/aead_base_decrypter_nss.cc",
203      "quic/crypto/aead_base_encrypter_nss.cc",
204      "quic/crypto/aes_128_gcm_12_decrypter_nss.cc",
205      "quic/crypto/aes_128_gcm_12_encrypter_nss.cc",
206      "quic/crypto/chacha20_poly1305_decrypter_nss.cc",
207      "quic/crypto/chacha20_poly1305_encrypter_nss.cc",
208      "quic/crypto/channel_id_nss.cc",
209      "quic/crypto/p256_key_exchange_nss.cc",
210      "socket/nss_ssl_util.cc",
211      "socket/nss_ssl_util.h",
212      "socket/ssl_client_socket_nss.cc",
213      "socket/ssl_client_socket_nss.h",
214      "socket/ssl_server_socket_nss.cc",
215      "socket/ssl_server_socket_nss.h",
216    ]
217    if (is_chromeos) {
218      sources -= [
219        "cert/nss_cert_database_chromeos.cc",
220        "cert/nss_cert_database_chromeos.h",
221        "cert/nss_profile_filter_chromeos.cc",
222        "cert/nss_profile_filter_chromeos.h",
223      ]
224    }
225    if (is_linux) {
226      # These are always removed for non-Linux cases below.
227      sources -= [
228        "base/crypto_module_nss.cc",
229        "base/keygen_handler_nss.cc",
230        "cert/cert_database_nss.cc",
231        "cert/nss_cert_database.cc",
232        "cert/nss_cert_database.h",
233        "cert/x509_certificate_nss.cc",
234        "third_party/mozilla_security_manager/nsKeygenHandler.cpp",
235        "third_party/mozilla_security_manager/nsKeygenHandler.h",
236        "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
237        "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
238        "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
239        "third_party/mozilla_security_manager/nsPKCS12Blob.h",
240      ]
241    }
242    if (is_ios) {
243      # Always removed for !ios below.
244      sources -= [
245        "cert/cert_verify_proc_nss.cc",
246        "cert/cert_verify_proc_nss.h",
247        "cert/test_root_certs_nss.cc",
248        "ocsp/nss_ocsp.cc",
249        "ocsp/nss_ocsp.h",
250      ]
251    }
252  } else {
253    sources -= [
254      "base/crypto_module_openssl.cc",
255      "cert/ct_log_verifier_openssl.cc",
256      "cert/ct_objects_extractor_openssl.cc",
257      "cert/jwk_serializer_openssl.cc",
258      "cert/x509_util_openssl.cc",
259      "cert/x509_util_openssl.h",
260      "quic/crypto/aead_base_decrypter_openssl.cc",
261      "quic/crypto/aead_base_encrypter_openssl.cc",
262      "quic/crypto/aes_128_gcm_12_decrypter_openssl.cc",
263      "quic/crypto/aes_128_gcm_12_encrypter_openssl.cc",
264      "quic/crypto/chacha20_poly1305_decrypter_openssl.cc",
265      "quic/crypto/chacha20_poly1305_encrypter_openssl.cc",
266      "quic/crypto/channel_id_openssl.cc",
267      "quic/crypto/p256_key_exchange_openssl.cc",
268      "quic/crypto/scoped_evp_aead_ctx.cc",
269      "quic/crypto/scoped_evp_aead_ctx.h",
270      "socket/ssl_client_socket_openssl.cc",
271      "socket/ssl_client_socket_openssl.h",
272      "socket/ssl_server_socket_openssl.cc",
273      "socket/ssl_server_socket_openssl.h",
274      "socket/ssl_session_cache_openssl.cc",
275      "socket/ssl_session_cache_openssl.h",
276      "ssl/openssl_platform_key.h",
277      "ssl/openssl_ssl_util.cc",
278      "ssl/openssl_ssl_util.h",
279    ]
280    if (is_mac) {
281      sources -= [
282        "ssl/openssl_platform_key_mac.cc",
283      ]
284    }
285    if (is_win) {
286      sources -= [
287        "ssl/openssl_platform_key_win.cc",
288      ]
289    }
290  }
291
292  if (!use_openssl_certs) {
293    sources -= [
294      "base/keygen_handler_openssl.cc",
295      "base/openssl_private_key_store.h",
296      "base/openssl_private_key_store_memory.cc",
297      "cert/cert_database_openssl.cc",
298      "cert/cert_verify_proc_openssl.cc",
299      "cert/cert_verify_proc_openssl.h",
300      "cert/test_root_certs_openssl.cc",
301      "cert/x509_certificate_openssl.cc",
302      "ssl/openssl_client_key_store.cc",
303      "ssl/openssl_client_key_store.h",
304    ]
305    if (is_android) {
306      sources -= [
307        "base/openssl_private_key_store_android.cc",
308      ]
309    }
310  } else if (is_android) {
311    # Android doesn't use these even when using OpenSSL.
312    sources -= [
313      "base/openssl_private_key_store_memory.cc",
314      "cert/cert_database_openssl.cc",
315      "cert/cert_verify_proc_openssl.cc",
316      "cert/test_root_certs_openssl.cc",
317    ]
318  }
319
320  if (use_glib) {
321    configs += [ "//build/config/linux:gconf" ]
322    deps += [ "//build/config/linux:gio" ]
323  }
324
325  if (is_linux) {
326    configs += [ "//build/config/linux:libresolv" ]
327  } else {
328    sources -= [
329      "base/crypto_module_nss.cc",
330      "base/keygen_handler_nss.cc",
331      "cert/cert_database_nss.cc",
332      "cert/nss_cert_database.cc",
333      "cert/nss_cert_database.h",
334      "cert/x509_certificate_nss.cc",
335      "third_party/mozilla_security_manager/nsKeygenHandler.cpp",
336      "third_party/mozilla_security_manager/nsKeygenHandler.h",
337      "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
338      "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
339      "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
340      "third_party/mozilla_security_manager/nsPKCS12Blob.h",
341    ]
342
343    if (!is_ios) {
344      # These files are part of the partial implementation of NSS on iOS so
345      # keep them in that case.
346      sources -= [
347        "cert/test_root_certs_nss.cc",
348        "ocsp/nss_ocsp.cc",
349        "ocsp/nss_ocsp.h",
350      ]
351    }
352  }
353
354  if (!use_nss_certs) {
355    sources -= [
356      "ssl/client_cert_store_nss.cc",
357      "ssl/client_cert_store_nss.h",
358    ]
359    if (!is_ios) {
360      # These files are part of the partial implementation of NSS on iOS so
361      # keep them in that case (even though use_nss_certs is not set).
362      sources -= [
363        "cert/cert_verify_proc_nss.cc",
364        "cert/cert_verify_proc_nss.h",
365      ]
366    }
367    if (is_chromeos) {
368      # These were already removed on non-ChromeOS.
369      sources -= [
370        "ssl/client_cert_store_chromeos.cc",
371        "ssl/client_cert_store_chromeos.h",
372      ]
373    }
374  }
375
376  if (!enable_websockets) {
377    sources -= [
378      "socket_stream/socket_stream.cc",
379      "socket_stream/socket_stream.h",
380      "socket_stream/socket_stream_job.cc",
381      "socket_stream/socket_stream_job.h",
382      "socket_stream/socket_stream_job_manager.cc",
383      "socket_stream/socket_stream_job_manager.h",
384      "socket_stream/socket_stream_metrics.cc",
385      "socket_stream/socket_stream_metrics.h",
386      "spdy/spdy_websocket_stream.cc",
387      "spdy/spdy_websocket_stream.h",
388      "websockets/websocket_basic_handshake_stream.cc",
389      "websockets/websocket_basic_handshake_stream.h",
390      "websockets/websocket_basic_stream.cc",
391      "websockets/websocket_basic_stream.h",
392      "websockets/websocket_channel.cc",
393      "websockets/websocket_channel.h",
394      "websockets/websocket_deflate_predictor.h",
395      "websockets/websocket_deflate_predictor_impl.cc",
396      "websockets/websocket_deflate_predictor_impl.h",
397      "websockets/websocket_deflate_stream.cc",
398      "websockets/websocket_deflate_stream.h",
399      "websockets/websocket_deflater.cc",
400      "websockets/websocket_deflater.h",
401      "websockets/websocket_errors.cc",
402      "websockets/websocket_errors.h",
403      "websockets/websocket_extension.cc",
404      "websockets/websocket_extension.h",
405      "websockets/websocket_extension_parser.cc",
406      "websockets/websocket_extension_parser.h",
407      "websockets/websocket_frame.cc",
408      "websockets/websocket_frame.h",
409      "websockets/websocket_frame_parser.cc",
410      "websockets/websocket_frame_parser.h",
411      "websockets/websocket_handshake_constants.cc",
412      "websockets/websocket_handshake_constants.h",
413      "websockets/websocket_handshake_handler.cc",
414      "websockets/websocket_handshake_handler.h",
415      "websockets/websocket_handshake_request_info.cc",
416      "websockets/websocket_handshake_request_info.h",
417      "websockets/websocket_handshake_response_info.cc",
418      "websockets/websocket_handshake_response_info.h",
419      "websockets/websocket_handshake_stream_base.h",
420      "websockets/websocket_handshake_stream_create_helper.cc",
421      "websockets/websocket_handshake_stream_create_helper.h",
422      "websockets/websocket_inflater.cc",
423      "websockets/websocket_inflater.h",
424      "websockets/websocket_job.cc",
425      "websockets/websocket_job.h",
426      "websockets/websocket_mux.h",
427      "websockets/websocket_net_log_params.cc",
428      "websockets/websocket_net_log_params.h",
429      "websockets/websocket_stream.cc",
430      "websockets/websocket_stream.h",
431      "websockets/websocket_throttle.cc",
432      "websockets/websocket_throttle.h",
433    ]
434  }
435
436  if (!enable_mdns) {
437    sources -= [
438      "dns/mdns_cache.cc",
439      "dns/mdns_cache.h",
440      "dns/mdns_client.cc",
441      "dns/mdns_client.h",
442      "dns/mdns_client_impl.cc",
443      "dns/mdns_client_impl.h",
444      "dns/record_parsed.cc",
445      "dns/record_parsed.h",
446      "dns/record_rdata.cc",
447      "dns/record_rdata.h",
448    ]
449  }
450
451  if (is_win) {
452    sources -= [
453      "http/http_auth_handler_ntlm_portable.cc",
454      "socket/socket_libevent.cc",
455      "socket/socket_libevent.h",
456      "socket/tcp_socket_libevent.cc",
457      "socket/tcp_socket_libevent.h",
458      "udp/udp_socket_libevent.cc",
459      "udp/udp_socket_libevent.h",
460    ]
461    deps += [
462      "//third_party/nss:nspr",
463      "//third_party/nss",
464    ]
465  } else {  # !is_win
466    sources -= [
467      "base/winsock_init.cc",
468      "base/winsock_init.h",
469      "base/winsock_util.cc",
470      "base/winsock_util.h",
471      "proxy/proxy_resolver_winhttp.cc",
472      "proxy/proxy_resolver_winhttp.h",
473    ]
474  }
475
476  if (is_mac) {
477    if (!use_openssl) {
478      deps += [
479        "//third_party/nss:nspr",
480        "//third_party/nss",
481      ]
482    }
483    libs = [
484      "Foundation.framework",
485      "Security.framework",
486      "SystemConfiguration.framework",
487      "resolv",
488    ]
489  }
490
491  if (is_ios) {
492    # Add back some sources that were otherwise filtered out. iOS additionally
493    # doesn't set USE_NSS but needs some of the files.
494    set_sources_assignment_filter([])
495    sources += [
496      "base/network_change_notifier_mac.cc",
497      "base/network_config_watcher_mac.cc",
498      "base/platform_mime_util_mac.mm",
499      "cert/cert_verify_proc_nss.cc",
500      "cert/cert_verify_proc_nss.h",
501      "cert/test_root_certs_nss.cc",
502      "cert/x509_util_nss.cc",
503      "cert/x509_util_nss.h",
504      "proxy/proxy_resolver_mac.cc",
505      "proxy/proxy_server_mac.cc",
506      "ocsp/nss_ocsp.cc",
507      "ocsp/nss_ocsp.h",
508    ]
509    set_sources_assignment_filter(sources_assignment_filter)
510
511    sources -= [ "disk_cache/blockfile/file_posix.cc" ]
512    deps += [
513      "//third_party/nss",
514    ]
515    libs = [
516      "CFNetwork.framework",
517      "MobileCoreServices.framework",
518      "Security.framework",
519      "SystemConfiguration.framework",
520      "resolv",
521    ]
522  }
523
524  if (is_android) {
525    # Add some Linux sources that were excluded by the filter, but which
526    # are needed.
527    set_sources_assignment_filter([])
528    sources += [
529      "base/platform_mime_util_linux.cc",
530      "base/address_tracker_linux.cc",
531      "base/address_tracker_linux.h",
532    ]
533    set_sources_assignment_filter(sources_assignment_filter)
534
535    if (!is_android_webview_build) {
536      deps += [ ":net_jni_headers" ]
537    }
538  }
539
540  if (use_icu_alternatives_on_android) {
541    deps -= [
542      "//base:i18n",
543      "//third_party/icu",
544    ]
545    sources -= [
546      "base/filename_util_icu.cc",
547      "base/net_string_util_icu.cc",
548      "base/net_util_icu.cc",
549    ]
550    sources += [
551      "base/net_string_util_icu_alternatives_android.cc",
552      "base/net_string_util_icu_alternatives_android.h",
553    ]
554  }
555}
556
557grit("net_resources") {
558  source = "base/net_resources.grd"
559  use_qualified_include = true
560  outputs = [
561    "grit/net_resources.h",
562    "net_resources.pak",
563    "net_resources.rc",
564  ]
565}
566
567static_library("extras") {
568  sources = gypi_values.net_extras_sources
569  configs += [ "//build/config/compiler:wexit_time_destructors" ]
570  deps = [
571    ":net",
572    "//sql:sql",
573  ]
574}
575
576static_library("http_server") {
577  sources = [
578    "server/http_connection.cc",
579    "server/http_connection.h",
580    "server/http_server.cc",
581    "server/http_server.h",
582    "server/http_server_request_info.cc",
583    "server/http_server_request_info.h",
584    "server/http_server_response_info.cc",
585    "server/http_server_response_info.h",
586    "server/web_socket.cc",
587    "server/web_socket.h",
588  ]
589  configs += [ "//build/config/compiler:wexit_time_destructors" ]
590  deps = [
591    ":net",
592    "//base",
593  ]
594}
595
596executable("dump_cache") {
597  testonly = true
598  sources = [
599    "tools/dump_cache/cache_dumper.cc",
600    "tools/dump_cache/cache_dumper.h",
601    "tools/dump_cache/dump_cache.cc",
602    "tools/dump_cache/dump_files.cc",
603    "tools/dump_cache/dump_files.h",
604    "tools/dump_cache/simple_cache_dumper.cc",
605    "tools/dump_cache/simple_cache_dumper.h",
606    "tools/dump_cache/url_to_filename_encoder.cc",
607    "tools/dump_cache/url_to_filename_encoder.h",
608    "tools/dump_cache/url_utilities.h",
609    "tools/dump_cache/url_utilities.cc",
610  ]
611
612  configs += [ ":net_win_size_truncation" ]
613
614  deps = [
615    "//base",
616    ":net",
617    ":test_support",
618  ]
619}
620
621source_set("test_support") {
622  testonly = true
623  sources = [
624    "base/capturing_net_log.cc",
625    "base/capturing_net_log.h",
626    "base/load_timing_info_test_util.cc",
627    "base/load_timing_info_test_util.h",
628    "base/mock_file_stream.cc",
629    "base/mock_file_stream.h",
630    "base/test_completion_callback.cc",
631    "base/test_completion_callback.h",
632    "base/test_data_directory.cc",
633    "base/test_data_directory.h",
634    "cert/mock_cert_verifier.cc",
635    "cert/mock_cert_verifier.h",
636    "cookies/cookie_monster_store_test.cc",
637    "cookies/cookie_monster_store_test.h",
638    "cookies/cookie_store_test_callbacks.cc",
639    "cookies/cookie_store_test_callbacks.h",
640    "cookies/cookie_store_test_helpers.cc",
641    "cookies/cookie_store_test_helpers.h",
642    "disk_cache/disk_cache_test_base.cc",
643    "disk_cache/disk_cache_test_base.h",
644    "disk_cache/disk_cache_test_util.cc",
645    "disk_cache/disk_cache_test_util.h",
646    "dns/dns_test_util.cc",
647    "dns/dns_test_util.h",
648    "dns/mock_host_resolver.cc",
649    "dns/mock_host_resolver.h",
650    "dns/mock_mdns_socket_factory.cc",
651    "dns/mock_mdns_socket_factory.h",
652    "http/http_transaction_test_util.cc",
653    "http/http_transaction_test_util.h",
654    "proxy/mock_proxy_resolver.cc",
655    "proxy/mock_proxy_resolver.h",
656    "proxy/mock_proxy_script_fetcher.cc",
657    "proxy/mock_proxy_script_fetcher.h",
658    "proxy/proxy_config_service_common_unittest.cc",
659    "proxy/proxy_config_service_common_unittest.h",
660    "socket/socket_test_util.cc",
661    "socket/socket_test_util.h",
662    "test/cert_test_util.cc",
663    "test/cert_test_util.h",
664    "test/cert_test_util_nss.cc",
665    "test/ct_test_util.cc",
666    "test/ct_test_util.h",
667    "test/embedded_test_server/embedded_test_server.cc",
668    "test/embedded_test_server/embedded_test_server.h",
669    "test/embedded_test_server/http_connection.cc",
670    "test/embedded_test_server/http_connection.h",
671    "test/embedded_test_server/http_request.cc",
672    "test/embedded_test_server/http_request.h",
673    "test/embedded_test_server/http_response.cc",
674    "test/embedded_test_server/http_response.h",
675    "test/net_test_suite.cc",
676    "test/net_test_suite.h",
677    "test/python_utils.cc",
678    "test/python_utils.h",
679    "test/spawned_test_server/base_test_server.cc",
680    "test/spawned_test_server/base_test_server.h",
681    "test/spawned_test_server/local_test_server_posix.cc",
682    "test/spawned_test_server/local_test_server_win.cc",
683    "test/spawned_test_server/local_test_server.cc",
684    "test/spawned_test_server/local_test_server.h",
685    "test/spawned_test_server/remote_test_server.cc",
686    "test/spawned_test_server/remote_test_server.h",
687    "test/spawned_test_server/spawned_test_server.h",
688    "test/spawned_test_server/spawner_communicator.cc",
689    "test/spawned_test_server/spawner_communicator.h",
690    "url_request/test_url_fetcher_factory.cc",
691    "url_request/test_url_fetcher_factory.h",
692    "url_request/test_url_request_interceptor.cc",
693    "url_request/test_url_request_interceptor.h",
694    "url_request/url_request_test_util.cc",
695    "url_request/url_request_test_util.h",
696  ]
697
698  configs += [ ":net_win_size_truncation" ]
699
700  public_deps = [
701    "//base",
702    "//base/test:test_support",
703    "//crypto",
704    "//net",
705    "//net/tools/tld_cleanup",
706    "//testing/gmock",
707    "//testing/gtest",
708    "//url",
709  ]
710
711  if (is_ios) {
712    public_deps += [ "//third_party/nss" ]
713  }
714
715  if (!is_android) {
716    sources -= [
717      "test/spawned_test_server/remote_test_server.cc",
718      "test/spawned_test_server/remote_test_server.h",
719      "test/spawned_test_server/spawner_communicator.cc",
720      "test/spawned_test_server/spawner_communicator.h",
721    ]
722  }
723
724  if (use_v8_in_net) {
725    public_deps += [ ":net_with_v8" ]
726  }
727
728  if (!enable_mdns) {
729    sources -= [
730      "dns/mock_mdns_socket_factory.cc",
731      "dns/mock_mdns_socket_factory.h",
732    ]
733  }
734
735  if (use_nss_certs) {
736    public_deps += ["//crypto:platform" ]
737  } else {
738    sources -= [
739      "test/cert_test_util_nss.cc",
740    ]
741  }
742}
743
744source_set("balsa") {
745  sources = [
746    "tools/balsa/balsa_enums.h",
747    "tools/balsa/balsa_frame.cc",
748    "tools/balsa/balsa_frame.h",
749    "tools/balsa/balsa_headers.cc",
750    "tools/balsa/balsa_headers.h",
751    "tools/balsa/balsa_headers_token_utils.cc",
752    "tools/balsa/balsa_headers_token_utils.h",
753    "tools/balsa/balsa_visitor_interface.h",
754    "tools/balsa/http_message_constants.cc",
755    "tools/balsa/http_message_constants.h",
756    "tools/balsa/noop_balsa_visitor.h",
757    "tools/balsa/simple_buffer.cc",
758    "tools/balsa/simple_buffer.h",
759    "tools/balsa/split.cc",
760    "tools/balsa/split.h",
761    "tools/balsa/string_piece_utils.h",
762    "tools/quic/spdy_utils.cc",
763    "tools/quic/spdy_utils.h",
764  ]
765  deps = [
766    ":net",
767    "//base",
768    "//url",
769  ]
770}
771
772if (use_v8_in_net) {
773  component("net_with_v8") {
774    sources = [
775      "proxy/proxy_resolver_v8.cc",
776      "proxy/proxy_resolver_v8.h",
777      "proxy/proxy_resolver_v8_tracing.cc",
778      "proxy/proxy_resolver_v8_tracing.h",
779      "proxy/proxy_service_v8.cc",
780      "proxy/proxy_service_v8.h",
781    ]
782
783    defines = [ "NET_IMPLEMENTATION" ]
784    configs += [
785      ":net_win_size_truncation",
786      "//build/config/compiler:wexit_time_destructors",
787    ]
788
789    public_deps = [
790      ":net",
791    ]
792    deps = [
793      "//base",
794      "//gin",
795      "//url",
796      "//v8",
797    ]
798  }
799}
800
801if (!is_ios && !is_android) {
802  executable("crash_cache") {
803    testonly = true
804    sources = [ "tools/crash_cache/crash_cache.cc" ]
805    configs += [ ":net_win_size_truncation" ]
806    deps = [
807      ":net",
808      ":test_support",
809      "//base",
810    ]
811  }
812
813  executable("crl_set_dump") {
814    testonly = true
815    sources = [ "tools/crl_set_dump/crl_set_dump.cc" ]
816    configs += [ ":net_win_size_truncation" ]
817    deps = [
818      ":net",
819      "//base",
820    ]
821  }
822
823  executable("dns_fuzz_stub") {
824    testonly = true
825    sources = [ "tools/dns_fuzz_stub/dns_fuzz_stub.cc" ]
826    configs += [ ":net_win_size_truncation" ]
827    deps = [
828      ":net",
829      "//base",
830    ]
831  }
832
833  executable("gdig") {
834    testonly = true
835    sources = [
836      "tools/gdig/file_net_log.cc",
837      "tools/gdig/gdig.cc",
838    ]
839    deps = [
840      ":net",
841      "//base",
842    ]
843  }
844
845  executable("get_server_time") {
846    testonly = true
847    sources = [ "tools/get_server_time/get_server_time.cc" ]
848    configs += [ ":net_win_size_truncation" ]
849    deps = [
850      ":net",
851      "//base",
852      "//base:i18n",
853      "//url",
854    ]
855  }
856
857  if (use_v8_in_net) {
858    executable("net_watcher") {
859      testonly = true
860      sources = [ "tools/net_watcher/net_watcher.cc" ]
861      deps = [
862        ":net",
863        ":net_with_v8",
864        "//base",
865      ]
866
867      if (is_linux) {
868        configs += [
869          "//build/config/linux:gconf",
870          "//build/config/linux:glib",
871        ]
872        deps += [ "//build/config/linux:gio" ]
873      }
874    }
875  }
876
877  executable("run_testserver") {
878    testonly = true
879    sources = [ "tools/testserver/run_testserver.cc" ]
880    deps = [
881      ":net",  # TODO(brettw) bug 363749: this shouldn't be necessary. It's not
882               # in the GYP build, and can be removed when the bug is fixed.
883      ":test_support",
884      "//base",
885      "//base/test:test_support",
886      "//testing/gtest",
887    ]
888  }
889
890  executable("stress_cache") {
891    testonly = true
892    sources = [ "disk_cache/blockfile/stress_cache.cc" ]
893    configs += [ ":net_win_size_truncation" ]
894    deps = [
895      ":net",
896      ":test_support",
897      "//base",
898    ]
899  }
900
901  executable("tld_cleanup") {
902    sources = [ "tools/tld_cleanup/tld_cleanup.cc" ]
903    configs += [ ":net_win_size_truncation" ]
904    deps = [
905      "//base",
906      "//base:i18n",
907      "//net/tools/tld_cleanup",
908    ]
909  }
910}
911
912if (is_linux) {
913  static_library("epoll_server") {
914    sources = [
915      "tools/epoll_server/epoll_server.cc",
916      "tools/epoll_server/epoll_server.h",
917    ]
918    deps = [
919      ":net",
920      "//base",
921    ]
922  }
923
924  static_library("flip_in_mem_edsm_server_base") {
925    testonly = true
926    sources = [
927      "tools/dump_cache/url_to_filename_encoder.cc",
928      "tools/dump_cache/url_to_filename_encoder.h",
929      "tools/dump_cache/url_utilities.h",
930      "tools/dump_cache/url_utilities.cc",
931      "tools/flip_server/acceptor_thread.h",
932      "tools/flip_server/acceptor_thread.cc",
933      "tools/flip_server/create_listener.cc",
934      "tools/flip_server/create_listener.h",
935      "tools/flip_server/constants.h",
936      "tools/flip_server/flip_config.cc",
937      "tools/flip_server/flip_config.h",
938      "tools/flip_server/http_interface.cc",
939      "tools/flip_server/http_interface.h",
940      "tools/flip_server/loadtime_measurement.h",
941      "tools/flip_server/mem_cache.h",
942      "tools/flip_server/mem_cache.cc",
943      "tools/flip_server/output_ordering.cc",
944      "tools/flip_server/output_ordering.h",
945      "tools/flip_server/ring_buffer.cc",
946      "tools/flip_server/ring_buffer.h",
947      "tools/flip_server/sm_connection.cc",
948      "tools/flip_server/sm_connection.h",
949      "tools/flip_server/sm_interface.h",
950      "tools/flip_server/spdy_ssl.cc",
951      "tools/flip_server/spdy_ssl.h",
952      "tools/flip_server/spdy_interface.cc",
953      "tools/flip_server/spdy_interface.h",
954      "tools/flip_server/spdy_util.cc",
955      "tools/flip_server/spdy_util.h",
956      "tools/flip_server/streamer_interface.cc",
957      "tools/flip_server/streamer_interface.h",
958    ]
959    deps = [
960      ":balsa",
961      ":epoll_server",
962      ":net",
963      "//base",
964      "//third_party/boringssl",
965    ]
966  }
967
968  executable("flip_in_mem_edsm_server_unittests") {
969    testonly = true
970    sources = [
971      "tools/flip_server/flip_test_utils.cc",
972      "tools/flip_server/flip_test_utils.h",
973      "tools/flip_server/http_interface_test.cc",
974      "tools/flip_server/mem_cache_test.cc",
975      "tools/flip_server/run_all_tests.cc",
976      "tools/flip_server/spdy_interface_test.cc",
977    ]
978    deps = [
979      ":flip_in_mem_edsm_server_base",
980      ":net",
981      ":test_support",
982      "//testing/gtest",
983      "//testing/gmock",
984      "//third_party/boringssl",
985    ]
986  }
987
988  executable("flip_in_mem_edsm_server") {
989    testonly = true
990    sources = [ "tools/flip_server/flip_in_mem_edsm_server.cc" ]
991    deps = [
992      ":flip_in_mem_edsm_server_base",
993      ":net",
994      "//base",
995    ]
996  }
997
998  source_set("quic_base") {
999    sources = [
1000      "tools/quic/quic_client.cc",
1001      "tools/quic/quic_client.h",
1002      "tools/quic/quic_client_session.cc",
1003      "tools/quic/quic_client_session.h",
1004      "tools/quic/quic_default_packet_writer.cc",
1005      "tools/quic/quic_default_packet_writer.h",
1006      "tools/quic/quic_dispatcher.h",
1007      "tools/quic/quic_dispatcher.cc",
1008      "tools/quic/quic_epoll_clock.cc",
1009      "tools/quic/quic_epoll_clock.h",
1010      "tools/quic/quic_epoll_connection_helper.cc",
1011      "tools/quic/quic_epoll_connection_helper.h",
1012      "tools/quic/quic_in_memory_cache.cc",
1013      "tools/quic/quic_in_memory_cache.h",
1014      "tools/quic/quic_packet_writer_wrapper.cc",
1015      "tools/quic/quic_packet_writer_wrapper.h",
1016      "tools/quic/quic_per_connection_packet_writer.cc",
1017      "tools/quic/quic_per_connection_packet_writer.h",
1018      "tools/quic/quic_server.cc",
1019      "tools/quic/quic_server.h",
1020      "tools/quic/quic_server_session.cc",
1021      "tools/quic/quic_server_session.h",
1022      "tools/quic/quic_socket_utils.cc",
1023      "tools/quic/quic_socket_utils.h",
1024      "tools/quic/quic_spdy_client_stream.cc",
1025      "tools/quic/quic_spdy_client_stream.h",
1026      "tools/quic/quic_spdy_server_stream.cc",
1027      "tools/quic/quic_spdy_server_stream.h",
1028      "tools/quic/quic_time_wait_list_manager.h",
1029      "tools/quic/quic_time_wait_list_manager.cc",
1030    ]
1031    deps = [
1032      ":balsa",
1033      ":epoll_server",
1034      ":net",
1035      "//base",
1036      "//base/third_party/dynamic_annotations",
1037      "//crypto",
1038      "//third_party/boringssl",
1039      "//url",
1040    ]
1041  }
1042
1043  executable("quic_client") {
1044    sources = [ "tools/quic/quic_client_bin.cc" ]
1045    deps = [
1046      ":quic_base",
1047      ":net",
1048      "//base",
1049      "//third_party/boringssl",
1050    ]
1051  }
1052}
1053
1054if (is_android) {
1055  generate_jni("net_jni_headers") {
1056    sources = [
1057      "android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
1058      "android/java/src/org/chromium/net/AndroidKeyStore.java",
1059      "android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
1060      "android/java/src/org/chromium/net/AndroidPrivateKey.java",
1061      "android/java/src/org/chromium/net/GURLUtils.java",
1062      "android/java/src/org/chromium/net/NetworkChangeNotifier.java",
1063      "android/java/src/org/chromium/net/ProxyChangeListener.java",
1064      "android/java/src/org/chromium/net/X509Util.java",
1065    ]
1066    jni_package = "net"
1067  }
1068  generate_jni("net_test_jni_headers") {
1069    sources = [
1070      "android/javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java",
1071    ]
1072    jni_package = "net"
1073  }
1074}
1075
1076if (is_android || is_linux) {
1077  executable("disk_cache_memory_test") {
1078    testonly = true
1079    sources = [ "tools/disk_cache_memory_test/disk_cache_memory_test.cc" ]
1080    deps = [
1081      ":net",
1082      "//base",
1083    ]
1084  }
1085}
1086
1087# TODO(GYP) make this compile on Android, we need some native test deps done.
1088# TODO(GYP) Also doesn't work on Windows; dependency on boringssl is wrong.
1089if (!is_android && !is_win) {
1090
1091source_set("quic_tools") {
1092  sources = [
1093    "quic/quic_dispatcher.cc",
1094    "quic/quic_dispatcher.h",
1095    "quic/quic_in_memory_cache.cc",
1096    "quic/quic_in_memory_cache.h",
1097    "quic/quic_per_connection_packet_writer.cc",
1098    "quic/quic_per_connection_packet_writer.h",
1099    "quic/quic_server.cc",
1100    "quic/quic_server.h",
1101    "quic/quic_server_packet_writer.cc",
1102    "quic/quic_server_packet_writer.h",
1103    "quic/quic_server_session.cc",
1104    "quic/quic_server_session.h",
1105    "quic/quic_spdy_server_stream.cc",
1106    "quic/quic_spdy_server_stream.h",
1107    "quic/quic_time_wait_list_manager.cc",
1108    "quic/quic_time_wait_list_manager.h",
1109  ]
1110  deps = [
1111    ":net",
1112    "//base",
1113    "//base/third_party/dynamic_annotations",
1114    "//url",
1115  ]
1116}
1117
1118test("net_unittests") {
1119  sources = gypi_values.net_test_sources
1120
1121  configs += [ ":net_win_size_truncation" ]
1122  defines = []
1123
1124  deps = [
1125    ":extras",
1126    ":http_server",
1127    ":net",
1128    ":quic_tools",
1129    ":test_support",
1130    "//base",
1131    "//base:i18n",
1132    "//base:prefs_test_support",
1133    "//base/allocator",
1134    "//base/third_party/dynamic_annotations",
1135    "//crypto",
1136    "//crypto:platform",
1137    "//crypto:test_support",
1138    "//net/base/registry_controlled_domains",
1139    "//testing/gmock",
1140    "//testing/gtest",
1141    "//third_party/zlib",
1142    "//url",
1143  ]
1144
1145  if (is_linux) {
1146    sources += gypi_values.net_linux_test_sources
1147    deps += [
1148      ":balsa",
1149      ":epoll_server",
1150      ":flip_in_mem_edsm_server_base",
1151      ":quic_base",
1152    ]
1153  }
1154
1155  if (is_chromeos) {
1156    sources -= [
1157      "proxy/proxy_config_service_linux_unittest.cc",
1158    ]
1159  }
1160
1161  if (is_android) {
1162    sources -= [
1163      # See bug http://crbug.com/344533.
1164      "disk_cache/blockfile/index_table_v3_unittest.cc",
1165      # No res_ninit() et al on Android, so this doesn't make a lot of
1166      # sense.
1167      "dns/dns_config_service_posix_unittest.cc",
1168    ]
1169    deps += [
1170      ":net_javatests",  # FIXME(brettw)
1171      ":net_test_jni_headers",
1172    ]
1173  }
1174
1175  if (!use_nss_certs) {
1176    sources -= [
1177      "ssl/client_cert_store_nss_unittest.cc",
1178    ]
1179    if (is_chromeos) {  # Already removed for all non-ChromeOS builds.
1180      sources -= [
1181        "ssl/client_cert_store_chromeos_unittest.cc",
1182      ]
1183    }
1184  }
1185
1186  if (use_openssl) {
1187    # When building for OpenSSL, we need to exclude NSS specific tests
1188    # or functionality not supported by OpenSSL yet.
1189    # TODO(bulach): Add equivalent tests when the underlying
1190    #               functionality is ported to OpenSSL.
1191    sources -= [
1192      "cert/nss_cert_database_unittest.cc",
1193      "cert/x509_util_nss_unittest.cc",
1194      "quic/test_tools/crypto_test_utils_nss.cc",
1195    ]
1196    if (is_chromeos) {
1197      # These were already removed in the non-ChromeOS case.
1198      sources -= [
1199        "cert/nss_cert_database_chromeos_unittest.cc",
1200        "cert/nss_profile_filter_chromeos_unittest.cc",
1201      ]
1202    }
1203  } else {
1204    sources -= [
1205      "cert/x509_util_openssl_unittest.cc",
1206      "quic/test_tools/crypto_test_utils_openssl.cc",
1207      "socket/ssl_client_socket_openssl_unittest.cc",
1208      "socket/ssl_session_cache_openssl_unittest.cc",
1209    ]
1210    if (!is_desktop_linux && !is_chromeos) {
1211      sources -= [ "cert/nss_cert_database_unittest.cc" ]
1212    }
1213  }
1214
1215  if (use_kerberos) {
1216    defines += [ "USE_KERBEROS" ]
1217  } else {
1218    sources -= [
1219      "http/http_auth_gssapi_posix_unittest.cc",
1220      "http/http_auth_handler_negotiate_unittest.cc",
1221      "http/mock_gssapi_library_posix.cc",
1222      "http/mock_gssapi_library_posix.h",
1223    ]
1224  }
1225
1226  if (use_openssl || (!is_desktop_linux && !is_chromeos && !is_ios)) {
1227    # Only include this test when on Posix and using NSS for
1228    # cert verification or on iOS (which also uses NSS for certs).
1229    sources -= [ "ocsp/nss_ocsp_unittest.cc" ]
1230  }
1231
1232  if (!use_openssl_certs) {
1233    sources -= [ "ssl/openssl_client_key_store_unittest.cc" ]
1234  }
1235
1236  if (!enable_websockets) {
1237    sources -= [
1238      "socket_stream/socket_stream_metrics_unittest.cc",
1239      "socket_stream/socket_stream_unittest.cc",
1240      "spdy/spdy_websocket_stream_unittest.cc",
1241      "websockets/websocket_basic_stream_test.cc",
1242      "websockets/websocket_channel_test.cc",
1243      "websockets/websocket_deflate_predictor_impl_test.cc",
1244      "websockets/websocket_deflate_stream_test.cc",
1245      "websockets/websocket_deflater_test.cc",
1246      "websockets/websocket_errors_test.cc",
1247      "websockets/websocket_extension_parser_test.cc",
1248      "websockets/websocket_frame_parser_test.cc",
1249      "websockets/websocket_frame_test.cc",
1250      "websockets/websocket_handshake_handler_spdy_test.cc",
1251      "websockets/websocket_handshake_handler_test.cc",
1252      "websockets/websocket_handshake_stream_create_helper_test.cc",
1253      "websockets/websocket_inflater_test.cc",
1254      "websockets/websocket_job_test.cc",
1255      "websockets/websocket_net_log_params_test.cc",
1256      "websockets/websocket_stream_test.cc",
1257      "websockets/websocket_test_util.cc",
1258      "websockets/websocket_test_util.h",
1259      "websockets/websocket_throttle_test.cc",
1260    ]
1261  }
1262
1263  if (disable_file_support) {
1264    sources -= [
1265      "base/directory_lister_unittest.cc",
1266      "url_request/url_request_file_job_unittest.cc",
1267    ]
1268  }
1269
1270  if (disable_ftp_support) {
1271    sources -= [
1272      "ftp/ftp_auth_cache_unittest.cc",
1273      "ftp/ftp_ctrl_response_buffer_unittest.cc",
1274      "ftp/ftp_directory_listing_parser_ls_unittest.cc",
1275      "ftp/ftp_directory_listing_parser_netware_unittest.cc",
1276      "ftp/ftp_directory_listing_parser_os2_unittest.cc",
1277      "ftp/ftp_directory_listing_parser_unittest.cc",
1278      "ftp/ftp_directory_listing_parser_unittest.h",
1279      "ftp/ftp_directory_listing_parser_vms_unittest.cc",
1280      "ftp/ftp_directory_listing_parser_windows_unittest.cc",
1281      "ftp/ftp_network_transaction_unittest.cc",
1282      "ftp/ftp_util_unittest.cc",
1283      "url_request/url_request_ftp_job_unittest.cc",
1284    ]
1285  }
1286
1287  if (!enable_built_in_dns) {
1288    sources -= [
1289      "dns/address_sorter_posix_unittest.cc",
1290      "dns/address_sorter_unittest.cc",
1291    ]
1292  }
1293
1294  # Always need use_v8_in_net to be 1 to run on Android, so just remove
1295  # net_unittest's dependency on v8 when using icu alternatives instead of
1296  # setting use_v8_in_net to 0.
1297  if (use_v8_in_net && !use_icu_alternatives_on_android) {
1298    deps += [ ":net_with_v8" ]
1299  } else {
1300    sources -= [
1301      "proxy/proxy_resolver_v8_unittest.cc",
1302      "proxy/proxy_resolver_v8_tracing_unittest.cc",
1303    ]
1304  }
1305
1306  if (!enable_mdns) {
1307    sources -= [
1308      "dns/mdns_cache_unittest.cc",
1309      "dns/mdns_client_unittest.cc",
1310      "dns/record_parsed_unittest.cc",
1311      "dns/record_rdata_unittest.cc",
1312    ]
1313  }
1314
1315  if (is_ios) {
1316    # TODO(GYP)
1317    #  'actions': [
1318    #    {
1319    #      'action_name': 'copy_test_data',
1320    #      'variables': {
1321    #        'test_data_files': [
1322    #          'data/ssl/certificates/',
1323    #          'data/test.html',
1324    #          'data/url_request_unittest/',
1325    #        ],
1326    #        'test_data_prefix': 'net',
1327    #      },
1328    #      'includes': [ '../build/copy_test_data_ios.gypi' ],
1329    #    },
1330    #  ],
1331    sources -= [
1332      # TODO(droger): The following tests are disabled because the
1333      # implementation is missing or incomplete.
1334      # KeygenHandler::GenKeyAndSignChallenge() is not ported to iOS.
1335      "base/keygen_handler_unittest.cc",
1336      "disk_cache/backend_unittest.cc",
1337      "disk_cache/blockfile/block_files_unittest.cc",
1338      # Need to read input data files.
1339      "filter/gzip_filter_unittest.cc",
1340      "socket/ssl_server_socket_unittest.cc",
1341      "spdy/fuzzing/hpack_fuzz_util_test.cc",
1342      # Need TestServer.
1343      "proxy/proxy_script_fetcher_impl_unittest.cc",
1344      "socket/ssl_client_socket_unittest.cc",
1345      "url_request/url_fetcher_impl_unittest.cc",
1346      "url_request/url_request_context_builder_unittest.cc",
1347      # Needs GetAppOutput().
1348      "test/python_utils_unittest.cc",
1349
1350      # The following tests are disabled because they don't apply to
1351      # iOS.
1352      # OS is not "linux" or "freebsd" or "openbsd".
1353      "socket/unix_domain_client_socket_posix_unittest.cc",
1354      "socket/unix_domain_listen_socket_posix_unittest.cc",
1355      "socket/unix_domain_server_socket_posix_unittest.cc",
1356
1357      # See bug http://crbug.com/344533.
1358      "disk_cache/blockfile/index_table_v3_unittest.cc",
1359    ]
1360  }
1361
1362  if (is_android) {
1363    sources -= [
1364      "dns/dns_config_service_posix_unittest.cc",
1365    ]
1366    # TODO(GYP)
1367    # # TODO(mmenke):  This depends on test_support_base, which depends on
1368    # #                icu.  Figure out a way to remove that dependency.
1369    # 'dependencies': [
1370    #   '../testing/android/native_test.gyp:native_test_native_code',
1371    # ]
1372
1373    set_sources_assignment_filter([])
1374    sources += [ "base/address_tracker_linux_unittest.cc" ]
1375    set_sources_assignment_filter(sources_assignment_filter)
1376  }
1377
1378  if (use_icu_alternatives_on_android) {
1379    sources -= [
1380      "base/filename_util_unittest.cc",
1381      "base/net_util_icu_unittest.cc",
1382    ]
1383    deps -= [ "//base:i18n" ]
1384  }
1385}
1386
1387executable("quic_server") {
1388  sources = [ "quic/quic_server_bin.cc" ]
1389  deps = [
1390    ":quic_tools",
1391    ":net",
1392    "//base",
1393    "//third_party/boringssl",
1394  ]
1395}
1396
1397}  # !is_android
1398