Support logging signin status to UMA on android.
[chromium-blink-merge.git] / net / net.gyp
blobc7c2c9458723077e26985402567f553ac812660e
1 # Copyright 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.
6   'variables': {
7     'chromium_code': 1,
9     'linux_link_kerberos%': 0,
10     'use_tracing_cache_backend%': 0,
11     'conditions': [
12       ['chromeos==1 or embedded==1 or OS=="android" or OS=="ios"', {
13         # Disable Kerberos on ChromeOS, Android and iOS, at least for now.
14         # It needs configuration (krb5.conf and so on).
15         'use_kerberos%': 0,
16       }, {  # chromeos == 0 and embedded==0 and OS!="android" and OS!="ios"
17         'use_kerberos%': 1,
18       }],
19       ['OS=="android" and target_arch != "ia32"', {
20         # The way the cache uses mmap() is inefficient on some Android devices.
21         # If this flag is set, we hackily avoid using mmap() in the disk cache.
22         # We are pretty confident that mmap-ing the index would not hurt any
23         # existing x86 android devices, but we cannot be so sure about the
24         # variety of ARM devices. So enable it for x86 only for now.
25         'posix_avoid_mmap%': 1,
26       }, {
27         'posix_avoid_mmap%': 0,
28       }],
29       ['OS=="ios"', {
30         # Websockets and socket stream are not used on iOS.
31         'enable_websockets%': 0,
32         # iOS does not use V8.
33         'use_v8_in_net%': 0,
34         'enable_built_in_dns%': 0,
35       }, {
36         'enable_websockets%': 1,
37         'use_v8_in_net%': 1,
38         'enable_built_in_dns%': 1,
39       }],
40     ],
41   },
42   'includes': [
43     '../build/win_precompile.gypi',
44     'net.gypi',
45   ],
46   'targets': [
47     {
48       'target_name': 'net_derived_sources',
49       'type': 'none',
50       'sources': [
51         'base/registry_controlled_domains/effective_tld_names.gperf',
52         'base/registry_controlled_domains/effective_tld_names_unittest1.gperf',
53         'base/registry_controlled_domains/effective_tld_names_unittest2.gperf',
54         'base/registry_controlled_domains/effective_tld_names_unittest3.gperf',
55         'base/registry_controlled_domains/effective_tld_names_unittest4.gperf',
56         'base/registry_controlled_domains/effective_tld_names_unittest5.gperf',
57         'base/registry_controlled_domains/effective_tld_names_unittest6.gperf',
58       ],
59       'rules': [
60         {
61           'rule_name': 'dafsa',
62           'extension': 'gperf',
63           'outputs': [
64             '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
65           ],
66           'inputs': [
67             'tools/tld_cleanup/make_dafsa.py',
68           ],
69           'action': [
70             'python',
71             'tools/tld_cleanup/make_dafsa.py',
72             '<(RULE_INPUT_PATH)',
73             '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
74           ],
75         },
76       ],
77       'direct_dependent_settings': {
78         'include_dirs': [
79           '<(SHARED_INTERMEDIATE_DIR)'
80         ],
81       },
82     },
83     {
84       'target_name': 'net',
85       'type': '<(component)',
86       'variables': { 'enable_wexit_time_destructors': 1, },
87       'dependencies': [
88         '../base/base.gyp:base',
89         '../base/base.gyp:base_i18n',
90         '../base/base.gyp:base_prefs',
91         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
92         '../crypto/crypto.gyp:crypto',
93         '../sdch/sdch.gyp:sdch',
94         '../third_party/icu/icu.gyp:icui18n',
95         '../third_party/icu/icu.gyp:icuuc',
96         '../third_party/zlib/zlib.gyp:zlib',
97         '../url/url.gyp:url_lib',
98         'net_derived_sources',
99         'net_resources',
100       ],
101       'sources': [
102         '<@(net_nacl_common_sources)',
103         '<@(net_non_nacl_sources)',
104       ],
105       'defines': [
106         'NET_IMPLEMENTATION',
107       ],
108       'export_dependent_settings': [
109         '../base/base.gyp:base',
110       ],
111       'conditions': [
112         ['chromeos==1', {
113           'sources!': [
114              'base/network_change_notifier_linux.cc',
115              'base/network_change_notifier_linux.h',
116              'base/network_change_notifier_netlink_linux.cc',
117              'base/network_change_notifier_netlink_linux.h',
118              'proxy/proxy_config_service_linux.cc',
119              'proxy/proxy_config_service_linux.h',
120           ],
121         }],
122         ['use_kerberos==1', {
123           'defines': [
124             'USE_KERBEROS',
125           ],
126           'conditions': [
127             ['OS=="openbsd"', {
128               'include_dirs': [
129                 '/usr/include/kerberosV'
130               ],
131             }],
132             ['linux_link_kerberos==1', {
133               'link_settings': {
134                 'ldflags': [
135                   '<!@(krb5-config --libs gssapi)',
136                 ],
137               },
138             }, { # linux_link_kerberos==0
139               'defines': [
140                 'DLOPEN_KERBEROS',
141               ],
142             }],
143           ],
144         }, { # use_kerberos == 0
145           'sources!': [
146             'http/http_auth_gssapi_posix.cc',
147             'http/http_auth_gssapi_posix.h',
148             'http/http_auth_handler_negotiate.h',
149             'http/http_auth_handler_negotiate.cc',
150           ],
151         }],
152         ['posix_avoid_mmap==1', {
153           'defines': [
154             'POSIX_AVOID_MMAP',
155           ],
156           'direct_dependent_settings': {
157             'defines': [
158               'POSIX_AVOID_MMAP',
159             ],
160           },
161           'sources!': [
162             'disk_cache/blockfile/mapped_file_posix.cc',
163           ],
164         }, { # else
165           'sources!': [
166             'disk_cache/blockfile/mapped_file_avoid_mmap_posix.cc',
167           ],
168         }],
169         ['disable_file_support==1', {
170           # TODO(mmenke):  Should probably get rid of the dependency on
171           # net_resources in this case (It's used in net_util, to format
172           # directory listings.  Also used outside of net/).
173           'sources!': [
174             'base/directory_lister.cc',
175             'base/directory_lister.h',
176             'url_request/url_request_file_dir_job.cc',
177             'url_request/url_request_file_dir_job.h',
178             'url_request/url_request_file_job.cc',
179             'url_request/url_request_file_job.h',
180             'url_request/file_protocol_handler.cc',
181             'url_request/file_protocol_handler.h',
182           ],
183         }],
184         ['disable_ftp_support==1', {
185           'sources/': [
186             ['exclude', '^ftp/'],
187           ],
188           'sources!': [
189             'url_request/ftp_protocol_handler.cc',
190             'url_request/ftp_protocol_handler.h',
191             'url_request/url_request_ftp_job.cc',
192             'url_request/url_request_ftp_job.h',
193           ],
194         }],
195         ['enable_built_in_dns==1', {
196           'defines': [
197             'ENABLE_BUILT_IN_DNS',
198           ]
199         }, { # else
200           'sources!': [
201             'dns/address_sorter_posix.cc',
202             'dns/address_sorter_posix.h',
203             'dns/dns_client.cc',
204           ],
205         }],
206         ['use_tracing_cache_backend==1', {
207           'defines': [
208             'USE_TRACING_CACHE_BACKEND'
209           ],
210          }],
211         ['use_openssl==1', {
212             'sources!': [
213               'base/crypto_module_nss.cc',
214               'base/keygen_handler_nss.cc',
215               'base/nss_memio.c',
216               'base/nss_memio.h',
217               'cert/cert_database_nss.cc',
218               'cert/cert_verify_proc_nss.cc',
219               'cert/cert_verify_proc_nss.h',
220               'cert/ct_log_verifier_nss.cc',
221               'cert/ct_objects_extractor_nss.cc',
222               'cert/jwk_serializer_nss.cc',
223               'cert/nss_cert_database.cc',
224               'cert/nss_cert_database.h',
225               'cert/nss_cert_database_chromeos.cc',
226               'cert/nss_cert_database_chromeos.h',
227               'cert/nss_profile_filter_chromeos.cc',
228               'cert/nss_profile_filter_chromeos.h',
229               'cert/scoped_nss_types.h',
230               'cert/test_root_certs_nss.cc',
231               'cert/x509_certificate_nss.cc',
232               'cert/x509_util_nss.cc',
233               'cert/x509_util_nss.h',
234               'ocsp/nss_ocsp.cc',
235               'ocsp/nss_ocsp.h',
236               'quic/crypto/aead_base_decrypter_nss.cc',
237               'quic/crypto/aead_base_encrypter_nss.cc',
238               'quic/crypto/aes_128_gcm_12_decrypter_nss.cc',
239               'quic/crypto/aes_128_gcm_12_encrypter_nss.cc',
240               'quic/crypto/chacha20_poly1305_decrypter_nss.cc',
241               'quic/crypto/chacha20_poly1305_encrypter_nss.cc',
242               'quic/crypto/channel_id_nss.cc',
243               'quic/crypto/p256_key_exchange_nss.cc',
244               'socket/nss_ssl_util.cc',
245               'socket/nss_ssl_util.h',
246               'socket/ssl_client_socket_nss.cc',
247               'socket/ssl_client_socket_nss.h',
248               'socket/ssl_server_socket_nss.cc',
249               'socket/ssl_server_socket_nss.h',
250               'third_party/mozilla_security_manager/nsKeygenHandler.cpp',
251               'third_party/mozilla_security_manager/nsKeygenHandler.h',
252               'third_party/mozilla_security_manager/nsNSSCertificateDB.cpp',
253               'third_party/mozilla_security_manager/nsNSSCertificateDB.h',
254               'third_party/mozilla_security_manager/nsPKCS12Blob.cpp',
255               'third_party/mozilla_security_manager/nsPKCS12Blob.h',
256             ],
257             'dependencies': [
258               '../third_party/boringssl/boringssl.gyp:boringssl',
259             ],
260           },
261           {  # else !use_openssl: remove the unneeded files
262             'sources!': [
263               'base/crypto_module_openssl.cc',
264               'cert/ct_log_verifier_openssl.cc',
265               'cert/ct_objects_extractor_openssl.cc',
266               'cert/jwk_serializer_openssl.cc',
267               'cert/x509_util_openssl.cc',
268               'cert/x509_util_openssl.h',
269               'crypto/scoped_openssl_types.h',
270               'quic/crypto/aead_base_decrypter_openssl.cc',
271               'quic/crypto/aead_base_encrypter_openssl.cc',
272               'quic/crypto/aes_128_gcm_12_decrypter_openssl.cc',
273               'quic/crypto/aes_128_gcm_12_encrypter_openssl.cc',
274               'quic/crypto/chacha20_poly1305_decrypter_openssl.cc',
275               'quic/crypto/chacha20_poly1305_encrypter_openssl.cc',
276               'quic/crypto/channel_id_openssl.cc',
277               'quic/crypto/p256_key_exchange_openssl.cc',
278               'quic/crypto/scoped_evp_aead_ctx.cc',
279               'quic/crypto/scoped_evp_aead_ctx.h',
280               'socket/ssl_client_socket_openssl.cc',
281               'socket/ssl_client_socket_openssl.h',
282               'socket/ssl_server_socket_openssl.cc',
283               'socket/ssl_server_socket_openssl.h',
284               'socket/ssl_session_cache_openssl.cc',
285               'socket/ssl_session_cache_openssl.h',
286               'ssl/openssl_platform_key_mac.cc',
287               'ssl/openssl_platform_key_win.cc',
288               'ssl/openssl_platform_key.h',
289               'ssl/openssl_ssl_util.cc',
290               'ssl/openssl_ssl_util.h',
291             ],
292           },
293         ],
294         [ 'use_openssl_certs == 0', {
295             'sources!': [
296               'base/keygen_handler_openssl.cc',
297               'base/openssl_private_key_store.h',
298               'base/openssl_private_key_store_android.cc',
299               'base/openssl_private_key_store_memory.cc',
300               'cert/cert_database_openssl.cc',
301               'cert/cert_verify_proc_openssl.cc',
302               'cert/cert_verify_proc_openssl.h',
303               'cert/test_root_certs_openssl.cc',
304               'cert/x509_certificate_openssl.cc',
305               'ssl/openssl_client_key_store.cc',
306               'ssl/openssl_client_key_store.h',
307             ],
308         }],
309         [ 'use_glib == 1', {
310             'dependencies': [
311               '../build/linux/system.gyp:gconf',
312               '../build/linux/system.gyp:gio',
313             ],
314         }],
315         [ 'desktop_linux == 1 or chromeos == 1', {
316             'conditions': [
317               ['use_openssl == 0', {
318                  # use NSS
319                 'dependencies': [
320                   '../build/linux/system.gyp:ssl',
321                 ],
322               }],
323               ['os_bsd==1', {
324                 'sources!': [
325                   'base/network_change_notifier_linux.cc',
326                   'base/network_change_notifier_netlink_linux.cc',
327                   'proxy/proxy_config_service_linux.cc',
328                 ],
329               },{
330                 'dependencies': [
331                   '../build/linux/system.gyp:libresolv',
332                 ],
333               }],
334               ['OS=="solaris"', {
335                 'link_settings': {
336                   'ldflags': [
337                     '-R/usr/lib/mps',
338                   ],
339                 },
340               }],
341             ],
342           },
343           {  # else: OS is not in the above list
344             'sources!': [
345               'base/crypto_module_nss.cc',
346               'base/keygen_handler_nss.cc',
347               'cert/cert_database_nss.cc',
348               'cert/nss_cert_database.cc',
349               'cert/nss_cert_database.h',
350               'cert/test_root_certs_nss.cc',
351               'cert/x509_certificate_nss.cc',
352               'ocsp/nss_ocsp.cc',
353               'ocsp/nss_ocsp.h',
354               'third_party/mozilla_security_manager/nsKeygenHandler.cpp',
355               'third_party/mozilla_security_manager/nsKeygenHandler.h',
356               'third_party/mozilla_security_manager/nsNSSCertificateDB.cpp',
357               'third_party/mozilla_security_manager/nsNSSCertificateDB.h',
358               'third_party/mozilla_security_manager/nsPKCS12Blob.cpp',
359               'third_party/mozilla_security_manager/nsPKCS12Blob.h',
360             ],
361           },
362         ],
363         [ 'use_nss != 1', {
364             'sources!': [
365               'cert/cert_verify_proc_nss.cc',
366               'cert/cert_verify_proc_nss.h',
367               'ssl/client_cert_store_nss.cc',
368               'ssl/client_cert_store_nss.h',
369               'ssl/client_cert_store_chromeos.cc',
370               'ssl/client_cert_store_chromeos.h',
371             ],
372         }],
373         [ 'enable_websockets != 1', {
374             'sources/': [
375               ['exclude', '^socket_stream/'],
376               ['exclude', '^websockets/'],
377             ],
378             'sources!': [
379               'spdy/spdy_websocket_stream.cc',
380               'spdy/spdy_websocket_stream.h',
381             ],
382         }],
383         [ 'enable_mdns != 1', {
384             'sources!' : [
385               'dns/mdns_cache.cc',
386               'dns/mdns_cache.h',
387               'dns/mdns_client.cc',
388               'dns/mdns_client.h',
389               'dns/mdns_client_impl.cc',
390               'dns/mdns_client_impl.h',
391               'dns/record_parsed.cc',
392               'dns/record_parsed.h',
393               'dns/record_rdata.cc',
394               'dns/record_rdata.h',
395             ]
396         }],
397         [ 'OS == "win"', {
398             'sources!': [
399               'http/http_auth_handler_ntlm_portable.cc',
400               'socket/socket_libevent.cc',
401               'socket/socket_libevent.h',
402               'socket/tcp_socket_libevent.cc',
403               'socket/tcp_socket_libevent.h',
404               'udp/udp_socket_libevent.cc',
405               'udp/udp_socket_libevent.h',
406             ],
407             'dependencies': [
408               '../third_party/nss/nss.gyp:nspr',
409               '../third_party/nss/nss.gyp:nss',
410               'third_party/nss/ssl.gyp:libssl',
411             ],
412             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
413             'msvs_disabled_warnings': [4267, ],
414           }, { # else: OS != "win"
415             'sources!': [
416               'base/winsock_init.cc',
417               'base/winsock_init.h',
418               'base/winsock_util.cc',
419               'base/winsock_util.h',
420               'proxy/proxy_resolver_winhttp.cc',
421               'proxy/proxy_resolver_winhttp.h',
422             ],
423           },
424         ],
425         [ 'OS == "mac"', {
426             'conditions': [
427               [ 'use_openssl == 0', {
428                 'dependencies': [
429                   # defaults to nss
430                   '../third_party/nss/nss.gyp:nspr',
431                   '../third_party/nss/nss.gyp:nss',
432                   'third_party/nss/ssl.gyp:libssl',
433                 ],
434               }],
435             ],
436             'link_settings': {
437               'libraries': [
438                 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
439                 '$(SDKROOT)/System/Library/Frameworks/Security.framework',
440                 '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
441                 '$(SDKROOT)/usr/lib/libresolv.dylib',
442               ]
443             },
444           },
445         ],
446         [ 'OS == "ios"', {
447             'dependencies': [
448               '../third_party/nss/nss.gyp:nss',
449               'third_party/nss/ssl.gyp:libssl',
450             ],
451             'sources!': [
452               'disk_cache/blockfile/file_posix.cc',
453             ],
454             'link_settings': {
455               'libraries': [
456                 '$(SDKROOT)/System/Library/Frameworks/CFNetwork.framework',
457                 '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
458                 '$(SDKROOT)/System/Library/Frameworks/Security.framework',
459                 '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
460                 '$(SDKROOT)/usr/lib/libresolv.dylib',
461               ],
462             },
463           },
464         ],
465         ['OS=="android" and _toolset=="target" and android_webview_build == 0', {
466           'dependencies': [
467              'net_java',
468           ],
469         }],
470         [ 'OS == "android"', {
471             'dependencies': [
472               '../third_party/boringssl/boringssl.gyp:boringssl',
473               'net_jni_headers',
474             ],
475             'sources!': [
476               'base/openssl_private_key_store_memory.cc',
477               'cert/cert_database_openssl.cc',
478               'cert/cert_verify_proc_openssl.cc',
479               'cert/test_root_certs_openssl.cc',
480             ],
481           },
482         ],
483         [ 'use_icu_alternatives_on_android == 1', {
484             'dependencies!': [
485               '../base/base.gyp:base_i18n',
486               '../third_party/icu/icu.gyp:icui18n',
487               '../third_party/icu/icu.gyp:icuuc',
488             ],
489             'sources!': [
490               'base/filename_util_icu.cc',
491               'base/net_string_util_icu.cc',
492               'base/net_util_icu.cc',
493             ],
494             'sources': [
495               'base/net_string_util_icu_alternatives_android.cc',
496               'base/net_string_util_icu_alternatives_android.h',
497             ],
498           },
499         ],
500       ],
501       'target_conditions': [
502         # These source files are excluded by default platform rules, but they
503         # are needed in specific cases on other platforms. Re-including them can
504         # only be done in target_conditions as it is evaluated after the
505         # platform rules.
506         ['OS == "android"', {
507           'sources/': [
508             ['include', '^base/platform_mime_util_linux\\.cc$'],
509             ['include', '^base/address_tracker_linux\\.cc$'],
510             ['include', '^base/address_tracker_linux\\.h$'],
511           ],
512         }],
513         ['OS == "ios"', {
514           'sources/': [
515             ['include', '^base/network_change_notifier_mac\\.cc$'],
516             ['include', '^base/network_config_watcher_mac\\.cc$'],
517             ['include', '^base/platform_mime_util_mac\\.mm$'],
518             # The iOS implementation only partially uses NSS and thus does not
519             # defines |use_nss|. In particular the |USE_NSS| preprocessor
520             # definition is not used. The following files are needed though:
521             ['include', '^cert/cert_verify_proc_nss\\.cc$'],
522             ['include', '^cert/cert_verify_proc_nss\\.h$'],
523             ['include', '^cert/test_root_certs_nss\\.cc$'],
524             ['include', '^cert/x509_util_nss\\.cc$'],
525             ['include', '^cert/x509_util_nss\\.h$'],
526             ['include', '^proxy/proxy_resolver_mac\\.cc$'],
527             ['include', '^proxy/proxy_server_mac\\.cc$'],
528             ['include', '^ocsp/nss_ocsp\\.cc$'],
529             ['include', '^ocsp/nss_ocsp\\.h$'],
530           ],
531         }],
532       ],
533     },
534     {
535       'target_name': 'net_unittests',
536       'type': '<(gtest_target_type)',
537       'dependencies': [
538         '../base/base.gyp:base',
539         '../base/base.gyp:base_i18n',
540         '../base/base.gyp:base_prefs_test_support',
541         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
542         '../crypto/crypto.gyp:crypto',
543         '../crypto/crypto.gyp:crypto_test_support',
544         '../testing/gmock.gyp:gmock',
545         '../testing/gtest.gyp:gtest',
546         '../third_party/zlib/zlib.gyp:zlib',
547         '../url/url.gyp:url_lib',
548         'balsa',
549         'http_server',
550         'net',
551         'net_derived_sources',
552         'net_test_support',
553         'quic_tools',
554       ],
555       'sources': [
556         '<@(net_test_sources)',
557       ],
558       'conditions': [
559         ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
560           'dependencies': [
561             'epoll_server',
562             'flip_in_mem_edsm_server_base',
563             'quic_base',
564           ],
565           'sources': [
566             '<@(net_linux_test_sources)',
567           ],
568         }],
569         ['chromeos==1', {
570           'sources!': [
571             'proxy/proxy_config_service_linux_unittest.cc',
572           ],
573         }],
574         [ 'OS == "android"', {
575           'sources!': [
576             # See bug http://crbug.com/344533.
577             'disk_cache/blockfile/index_table_v3_unittest.cc',
578             # No res_ninit() et al on Android, so this doesn't make a lot of
579             # sense.
580             'dns/dns_config_service_posix_unittest.cc',
581           ],
582           'dependencies': [
583             'net_javatests',
584             'net_test_jni_headers',
585           ],
586         }],
587         [ 'use_nss != 1', {
588           'sources!': [
589             'ssl/client_cert_store_nss_unittest.cc',
590             'ssl/client_cert_store_chromeos_unittest.cc',
591           ],
592         }],
593         [ 'use_openssl == 1', {
594           # Avoid compiling/linking with the system library.
595           'dependencies': [
596             '../third_party/boringssl/boringssl.gyp:boringssl',
597           ],
598         }, {  # use_openssl == 0
599           'conditions': [
600             [ 'desktop_linux == 1 or chromeos == 1', {
601               'dependencies': [
602                 '../build/linux/system.gyp:ssl',
603               ],
604             }, {  # desktop_linux == 0 and chromeos == 0
605               'sources!': [
606                 'cert/nss_cert_database_unittest.cc',
607               ],
608             }],
609           ],
610         }],
611         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
612           'conditions': [
613             ['use_allocator!="none"', {
614               'dependencies': [
615                 '../base/allocator/allocator.gyp:allocator',
616               ],
617             }],
618           ],
619         }],
620         [ 'use_kerberos==1', {
621           'defines': [
622             'USE_KERBEROS',
623           ],
624         }, { # use_kerberos == 0
625           'sources!': [
626             'http/http_auth_gssapi_posix_unittest.cc',
627             'http/http_auth_handler_negotiate_unittest.cc',
628             'http/mock_gssapi_library_posix.cc',
629             'http/mock_gssapi_library_posix.h',
630           ],
631         }],
632         [ 'use_openssl == 1 or (desktop_linux == 0 and chromeos == 0 and OS != "ios")', {
633           # Only include this test when on Posix and using NSS for
634           # cert verification or on iOS (which also uses NSS for certs).
635           'sources!': [
636             'ocsp/nss_ocsp_unittest.cc',
637           ],
638         }],
639         [ 'use_openssl==1', {
640             # When building for OpenSSL, we need to exclude NSS specific tests
641             # or functionality not supported by OpenSSL yet.
642             # TODO(bulach): Add equivalent tests when the underlying
643             #               functionality is ported to OpenSSL.
644             'sources!': [
645               'cert/ct_objects_extractor_unittest.cc',
646               'cert/multi_log_ct_verifier_unittest.cc',
647               'cert/nss_cert_database_unittest.cc',
648               'cert/nss_cert_database_chromeos_unittest.cc',
649               'cert/nss_profile_filter_chromeos_unittest.cc',
650               'cert/x509_util_nss_unittest.cc',
651               'quic/test_tools/crypto_test_utils_nss.cc',
652             ],
653           }, {  # else !use_openssl: remove the unneeded files
654             'sources!': [
655               'cert/x509_util_openssl_unittest.cc',
656               'quic/test_tools/crypto_test_utils_openssl.cc',
657               'socket/ssl_client_socket_openssl_unittest.cc',
658               'socket/ssl_session_cache_openssl_unittest.cc',
659             ],
660           },
661         ],
662         [ 'use_openssl_certs == 0', {
663             'sources!': [
664               'ssl/openssl_client_key_store_unittest.cc',
665             ],
666         }],
667         [ 'enable_websockets != 1', {
668             'sources/': [
669               ['exclude', '^socket_stream/'],
670               ['exclude', '^websockets/'],
671               ['exclude', '^spdy/spdy_websocket_stream_unittest\\.cc$'],
672             ],
673         }],
674         ['disable_file_support==1', {
675           'sources!': [
676             'base/directory_lister_unittest.cc',
677             'url_request/url_request_file_job_unittest.cc',
678           ],
679         }],
680         [ 'disable_ftp_support==1', {
681             'sources/': [
682               ['exclude', '^ftp/'],
683             ],
684             'sources!': [
685               'url_request/url_request_ftp_job_unittest.cc',
686             ],
687           },
688         ],
689         [ 'enable_built_in_dns!=1', {
690             'sources!': [
691               'dns/address_sorter_posix_unittest.cc',
692               'dns/address_sorter_unittest.cc',
693             ],
694           },
695         ],
696         # Always need use_v8_in_net to be 1 to run gyp on Android, so just
697         # remove net_unittest's dependency on v8 when using icu alternatives
698         # instead of setting use_v8_in_net to 0.
699         [ 'use_v8_in_net==1 and use_icu_alternatives_on_android==0', {
700             'dependencies': [
701               'net_with_v8',
702             ],
703           }, {  # else: !use_v8_in_net
704             'sources!': [
705               'proxy/proxy_resolver_v8_unittest.cc',
706               'proxy/proxy_resolver_v8_tracing_unittest.cc',
707             ],
708           },
709         ],
711         [ 'enable_mdns != 1', {
712             'sources!' : [
713               'dns/mdns_cache_unittest.cc',
714               'dns/mdns_client_unittest.cc',
715               'dns/mdns_query_unittest.cc',
716               'dns/record_parsed_unittest.cc',
717               'dns/record_rdata_unittest.cc',
718             ],
719         }],
720         [ 'OS == "win"', {
721             'sources!': [
722               'dns/dns_config_service_posix_unittest.cc',
723               'http/http_auth_gssapi_posix_unittest.cc',
724             ],
725             'dependencies': [
726               '../third_party/nss/nss.gyp:nspr',
727               '../third_party/nss/nss.gyp:nss',
728               'third_party/nss/ssl.gyp:libssl',
729             ],
730             'conditions': [
731               [ 'icu_use_data_file_flag == 0', {
732                 # This is needed to trigger the dll copy step on windows.
733                 # TODO(mark): Specifying this here shouldn't be necessary.
734                 'dependencies': [
735                   '../third_party/icu/icu.gyp:icudata',
736                 ],
737               }],
738             ],
739             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
740             'msvs_disabled_warnings': [4267, ],
741           },
742         ],
743         [ 'OS == "mac" and use_openssl == 0', {
744             'dependencies': [
745               '../third_party/nss/nss.gyp:nspr',
746               '../third_party/nss/nss.gyp:nss',
747               'third_party/nss/ssl.gyp:libssl',
748             ],
749           },
750         ],
751         [ 'OS == "ios"', {
752             'dependencies': [
753               '../third_party/nss/nss.gyp:nss',
754             ],
755             'actions': [
756               {
757                 'action_name': 'copy_test_data',
758                 'variables': {
759                   'test_data_files': [
760                     'data/ssl/certificates/',
761                     'data/test.html',
762                     'data/url_request_unittest/',
763                   ],
764                   'test_data_prefix': 'net',
765                 },
766                 'includes': [ '../build/copy_test_data_ios.gypi' ],
767               },
768             ],
769             'sources!': [
770               # TODO(droger): The following tests are disabled because the
771               # implementation is missing or incomplete.
772               # KeygenHandler::GenKeyAndSignChallenge() is not ported to iOS.
773               'base/keygen_handler_unittest.cc',
774               'disk_cache/backend_unittest.cc',
775               'disk_cache/blockfile/block_files_unittest.cc',
776               # Need to read input data files.
777               'filter/gzip_filter_unittest.cc',
778               'socket/ssl_server_socket_unittest.cc',
779               'spdy/fuzzing/hpack_fuzz_util_test.cc',
780               # Need TestServer.
781               'proxy/proxy_script_fetcher_impl_unittest.cc',
782               'socket/ssl_client_socket_unittest.cc',
783               'url_request/url_fetcher_impl_unittest.cc',
784               'url_request/url_request_context_builder_unittest.cc',
785               # Needs GetAppOutput().
786               'test/python_utils_unittest.cc',
788               # The following tests are disabled because they don't apply to
789               # iOS.
790               # OS is not "linux" or "freebsd" or "openbsd".
791               'socket/unix_domain_client_socket_posix_unittest.cc',
792               'socket/unix_domain_listen_socket_posix_unittest.cc',
793               'socket/unix_domain_server_socket_posix_unittest.cc',
795               # See bug http://crbug.com/344533.
796               'disk_cache/blockfile/index_table_v3_unittest.cc',
797             ],
798         }],
799         [ 'OS == "android"', {
800             'dependencies': [
801               '../third_party/boringssl/boringssl.gyp:boringssl',
802             ],
803             'sources!': [
804               'dns/dns_config_service_posix_unittest.cc',
805             ],
806           },
807         ],
808         ['OS == "android"', {
809           # TODO(mmenke):  This depends on test_support_base, which depends on
810           #                icu.  Figure out a way to remove that dependency.
811           'dependencies': [
812             '../testing/android/native_test.gyp:native_test_native_code',
813           ]
814         }],
815         [ 'use_icu_alternatives_on_android == 1', {
816             'dependencies!': [
817               '../base/base.gyp:base_i18n',
818             ],
819             'sources!': [
820               'base/filename_util_unittest.cc',
821               'base/net_util_icu_unittest.cc',
822             ],
823           },
824         ],
825       ],
826       'target_conditions': [
827         # These source files are excluded by default platform rules, but they
828         # are needed in specific cases on other platforms. Re-including them can
829         # only be done in target_conditions as it is evaluated after the
830         # platform rules.
831         ['OS == "android"', {
832           'sources/': [
833             ['include', '^base/address_tracker_linux_unittest\\.cc$'],
834           ],
835         }],
836       ],
837     },
838     {
839       'target_name': 'net_perftests',
840       'type': 'executable',
841       'dependencies': [
842         '../base/base.gyp:base',
843         '../base/base.gyp:base_i18n',
844         '../base/base.gyp:test_support_perf',
845         '../testing/gtest.gyp:gtest',
846         '../url/url.gyp:url_lib',
847         'net',
848         'net_test_support',
849       ],
850       'sources': [
851         'cookies/cookie_monster_perftest.cc',
852         'disk_cache/blockfile/disk_cache_perftest.cc',
853         'proxy/proxy_resolver_perftest.cc',
854       ],
855       'conditions': [
856         [ 'use_v8_in_net==1', {
857             'dependencies': [
858               'net_with_v8',
859             ],
860           }, {  # else: !use_v8_in_net
861             'sources!': [
862               'proxy/proxy_resolver_perftest.cc',
863             ],
864           },
865         ],
866         [ 'OS == "win"', {
867             'conditions': [
868               [ 'icu_use_data_file_flag == 0', {
869                 # This is needed to trigger the dll copy step on windows.
870                 # TODO(mark): Specifying this here shouldn't be necessary.
871                 'dependencies': [
872                   '../third_party/icu/icu.gyp:icudata',
873                 ],
874               }],
875             ],
876             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
877             'msvs_disabled_warnings': [4267, ],
878         }],
879       ],
880     },
881     {
882       'target_name': 'net_test_support',
883       'type': 'static_library',
884       'dependencies': [
885         '../base/base.gyp:base',
886         '../base/base.gyp:test_support_base',
887         '../net/tools/tld_cleanup/tld_cleanup.gyp:tld_cleanup_util',
888         '../testing/gtest.gyp:gtest',
889         '../testing/gmock.gyp:gmock',
890         '../url/url.gyp:url_lib',
891         'net',
892       ],
893       'export_dependent_settings': [
894         '../base/base.gyp:base',
895         # TODO(mmenke):  This depends on icu, figure out a way to build tests
896         #                without icu.
897         '../base/base.gyp:test_support_base',
898         '../testing/gtest.gyp:gtest',
899         '../testing/gmock.gyp:gmock',
900       ],
901       'sources': [
902         'base/capturing_net_log.cc',
903         'base/capturing_net_log.h',
904         'base/load_timing_info_test_util.cc',
905         'base/load_timing_info_test_util.h',
906         'base/mock_file_stream.cc',
907         'base/mock_file_stream.h',
908         'base/test_completion_callback.cc',
909         'base/test_completion_callback.h',
910         'base/test_data_directory.cc',
911         'base/test_data_directory.h',
912         'cert/mock_cert_verifier.cc',
913         'cert/mock_cert_verifier.h',
914         'cookies/cookie_monster_store_test.cc',
915         'cookies/cookie_monster_store_test.h',
916         'cookies/cookie_store_test_callbacks.cc',
917         'cookies/cookie_store_test_callbacks.h',
918         'cookies/cookie_store_test_helpers.cc',
919         'cookies/cookie_store_test_helpers.h',
920         'disk_cache/disk_cache_test_base.cc',
921         'disk_cache/disk_cache_test_base.h',
922         'disk_cache/disk_cache_test_util.cc',
923         'disk_cache/disk_cache_test_util.h',
924         'dns/dns_test_util.cc',
925         'dns/dns_test_util.h',
926         'dns/mock_host_resolver.cc',
927         'dns/mock_host_resolver.h',
928         'dns/mock_mdns_socket_factory.cc',
929         'dns/mock_mdns_socket_factory.h',
930         'http/http_transaction_test_util.cc',
931         'http/http_transaction_test_util.h',
932         'proxy/mock_proxy_resolver.cc',
933         'proxy/mock_proxy_resolver.h',
934         'proxy/mock_proxy_script_fetcher.cc',
935         'proxy/mock_proxy_script_fetcher.h',
936         'proxy/proxy_config_service_common_unittest.cc',
937         'proxy/proxy_config_service_common_unittest.h',
938         'socket/socket_test_util.cc',
939         'socket/socket_test_util.h',
940         'test/cert_test_util.cc',
941         'test/cert_test_util.h',
942         'test/cert_test_util_nss.cc',
943         'test/ct_test_util.cc',
944         'test/ct_test_util.h',
945         'test/embedded_test_server/embedded_test_server.cc',
946         'test/embedded_test_server/embedded_test_server.h',
947         'test/embedded_test_server/http_connection.cc',
948         'test/embedded_test_server/http_connection.h',
949         'test/embedded_test_server/http_request.cc',
950         'test/embedded_test_server/http_request.h',
951         'test/embedded_test_server/http_response.cc',
952         'test/embedded_test_server/http_response.h',
953         'test/net_test_suite.cc',
954         'test/net_test_suite.h',
955         'test/python_utils.cc',
956         'test/python_utils.h',
957         'test/spawned_test_server/base_test_server.cc',
958         'test/spawned_test_server/base_test_server.h',
959         'test/spawned_test_server/local_test_server_posix.cc',
960         'test/spawned_test_server/local_test_server_win.cc',
961         'test/spawned_test_server/local_test_server.cc',
962         'test/spawned_test_server/local_test_server.h',
963         'test/spawned_test_server/remote_test_server.cc',
964         'test/spawned_test_server/remote_test_server.h',
965         'test/spawned_test_server/spawned_test_server.h',
966         'test/spawned_test_server/spawner_communicator.cc',
967         'test/spawned_test_server/spawner_communicator.h',
968         'url_request/test_url_fetcher_factory.cc',
969         'url_request/test_url_fetcher_factory.h',
970         'url_request/url_request_test_util.cc',
971         'url_request/url_request_test_util.h',
972       ],
973       'conditions': [
974         ['OS != "ios"', {
975           'dependencies': [
976             '../third_party/protobuf/protobuf.gyp:py_proto',
977           ],
978         }],
979         ['os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
980           'conditions': [
981             ['use_openssl==1', {
982               'dependencies': [
983                 '../third_party/boringssl/boringssl.gyp:boringssl',
984               ],
985             }, {
986               'dependencies': [
987                 '../build/linux/system.gyp:ssl',
988               ],
989             }],
990           ],
991         }],
992         ['os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
993           'conditions': [
994             ['use_allocator!="none"', {
995               'dependencies': [
996                 '../base/allocator/allocator.gyp:allocator',
997               ],
998             }],
999           ],
1000         }],
1001         ['OS != "android"', {
1002           'sources!': [
1003             'test/spawned_test_server/remote_test_server.cc',
1004             'test/spawned_test_server/remote_test_server.h',
1005             'test/spawned_test_server/spawner_communicator.cc',
1006             'test/spawned_test_server/spawner_communicator.h',
1007           ],
1008         }],
1009         ['OS == "ios"', {
1010           'dependencies': [
1011             '../third_party/nss/nss.gyp:nss',
1012           ],
1013         }],
1014         [ 'use_v8_in_net==1', {
1015             'dependencies': [
1016               'net_with_v8',
1017             ],
1018           },
1019         ],
1020         [ 'enable_mdns != 1', {
1021             'sources!' : [
1022               'dns/mock_mdns_socket_factory.cc',
1023               'dns/mock_mdns_socket_factory.h'
1024             ]
1025         }],
1026         [ 'use_nss != 1', {
1027             'sources!': [
1028               'test/cert_test_util_nss.cc',
1029             ],
1030         }],
1031       ],
1032       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1033       'msvs_disabled_warnings': [4267, ],
1034     },
1035     {
1036       'target_name': 'net_resources',
1037       'type': 'none',
1038       'variables': {
1039         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/net',
1040       },
1041       'actions': [
1042         {
1043           'action_name': 'net_resources',
1044           'variables': {
1045             'grit_grd_file': 'base/net_resources.grd',
1046           },
1047           'includes': [ '../build/grit_action.gypi' ],
1048         },
1049       ],
1050       'includes': [ '../build/grit_target.gypi' ],
1051     },
1052     {
1053       'target_name': 'http_server',
1054       'type': 'static_library',
1055       'variables': { 'enable_wexit_time_destructors': 1, },
1056       'dependencies': [
1057         '../base/base.gyp:base',
1058         'net',
1059       ],
1060       'sources': [
1061         'server/http_connection.cc',
1062         'server/http_connection.h',
1063         'server/http_server.cc',
1064         'server/http_server.h',
1065         'server/http_server_request_info.cc',
1066         'server/http_server_request_info.h',
1067         'server/http_server_response_info.cc',
1068         'server/http_server_response_info.h',
1069         'server/web_socket.cc',
1070         'server/web_socket.h',
1071       ],
1072       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1073       'msvs_disabled_warnings': [4267, ],
1074     },
1075     {
1076       'target_name': 'balsa',
1077       'type': 'static_library',
1078       'dependencies': [
1079         '../base/base.gyp:base',
1080         'net',
1081       ],
1082       'sources': [
1083         'tools/balsa/balsa_enums.h',
1084         'tools/balsa/balsa_frame.cc',
1085         'tools/balsa/balsa_frame.h',
1086         'tools/balsa/balsa_headers.cc',
1087         'tools/balsa/balsa_headers.h',
1088         'tools/balsa/balsa_headers_token_utils.cc',
1089         'tools/balsa/balsa_headers_token_utils.h',
1090         'tools/balsa/balsa_visitor_interface.h',
1091         'tools/balsa/http_message_constants.cc',
1092         'tools/balsa/http_message_constants.h',
1093         'tools/balsa/noop_balsa_visitor.h',
1094         'tools/balsa/simple_buffer.cc',
1095         'tools/balsa/simple_buffer.h',
1096         'tools/balsa/split.cc',
1097         'tools/balsa/split.h',
1098         'tools/balsa/string_piece_utils.h',
1099         'tools/quic/spdy_utils.cc',
1100         'tools/quic/spdy_utils.h',
1101       ],
1102     },
1103     {
1104       'target_name': 'dump_cache',
1105       'type': 'executable',
1106       'dependencies': [
1107         '../base/base.gyp:base',
1108         'net',
1109         'net_test_support',
1110       ],
1111       'sources': [
1112         'tools/dump_cache/cache_dumper.cc',
1113         'tools/dump_cache/cache_dumper.h',
1114         'tools/dump_cache/dump_cache.cc',
1115         'tools/dump_cache/dump_files.cc',
1116         'tools/dump_cache/dump_files.h',
1117         'tools/dump_cache/simple_cache_dumper.cc',
1118         'tools/dump_cache/simple_cache_dumper.h',
1119         'tools/dump_cache/upgrade_win.cc',
1120         'tools/dump_cache/upgrade_win.h',
1121         'tools/dump_cache/url_to_filename_encoder.cc',
1122         'tools/dump_cache/url_to_filename_encoder.h',
1123         'tools/dump_cache/url_utilities.h',
1124         'tools/dump_cache/url_utilities.cc',
1125       ],
1126       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1127       'msvs_disabled_warnings': [4267, ],
1128     },
1129     {
1130       # This is a temporary target which will be merged into 'net' once the
1131       # dependency on balsa is eliminated and the classes are actually used.
1132       'target_name': 'quic_tools',
1133       'type': 'static_library',
1134       'dependencies': [
1135         '../base/base.gyp:base',
1136         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
1137         '../url/url.gyp:url_lib',
1138         'net',
1139       ],
1140       'sources': [
1141         'quic/quic_dispatcher.cc',
1142         'quic/quic_dispatcher.h',
1143         'quic/quic_in_memory_cache.cc',
1144         'quic/quic_in_memory_cache.h',
1145         'quic/quic_per_connection_packet_writer.cc',
1146         'quic/quic_per_connection_packet_writer.h',
1147         'quic/quic_server.cc',
1148         'quic/quic_server.h',
1149         'quic/quic_server_packet_writer.cc',
1150         'quic/quic_server_packet_writer.h',
1151         'quic/quic_server_session.cc',
1152         'quic/quic_server_session.h',
1153         'quic/quic_spdy_server_stream.cc',
1154         'quic/quic_spdy_server_stream.h',
1155         'quic/quic_time_wait_list_manager.cc',
1156         'quic/quic_time_wait_list_manager.h',
1157       ],
1158     },
1159   ],
1160   'conditions': [
1161     ['use_v8_in_net == 1', {
1162       'targets': [
1163         {
1164           'target_name': 'net_with_v8',
1165           'type': '<(component)',
1166           'variables': { 'enable_wexit_time_destructors': 1, },
1167           'dependencies': [
1168             '../base/base.gyp:base',
1169             '../gin/gin.gyp:gin',
1170             '../url/url.gyp:url_lib',
1171             '../v8/tools/gyp/v8.gyp:v8',
1172             'net'
1173           ],
1174           'defines': [
1175             'NET_IMPLEMENTATION',
1176           ],
1177           'sources': [
1178             'proxy/proxy_resolver_v8.cc',
1179             'proxy/proxy_resolver_v8.h',
1180             'proxy/proxy_resolver_v8_tracing.cc',
1181             'proxy/proxy_resolver_v8_tracing.h',
1182             'proxy/proxy_service_v8.cc',
1183             'proxy/proxy_service_v8.h',
1184           ],
1185           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1186           'msvs_disabled_warnings': [4267, ],
1187         },
1188       ],
1189     }],
1190     ['OS != "ios" and OS != "android"', {
1191       'targets': [
1192         # iOS doesn't have the concept of simple executables, these targets
1193         # can't be compiled on the platform.
1194         {
1195           'target_name': 'crash_cache',
1196           'type': 'executable',
1197           'dependencies': [
1198             '../base/base.gyp:base',
1199             'net',
1200             'net_test_support',
1201           ],
1202           'sources': [
1203             'tools/crash_cache/crash_cache.cc',
1204           ],
1205           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1206           'msvs_disabled_warnings': [4267, ],
1207         },
1208         {
1209           'target_name': 'crl_set_dump',
1210           'type': 'executable',
1211           'dependencies': [
1212             '../base/base.gyp:base',
1213             'net',
1214           ],
1215           'sources': [
1216             'tools/crl_set_dump/crl_set_dump.cc',
1217           ],
1218           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1219           'msvs_disabled_warnings': [4267, ],
1220         },
1221         {
1222           'target_name': 'dns_fuzz_stub',
1223           'type': 'executable',
1224           'dependencies': [
1225             '../base/base.gyp:base',
1226             'net',
1227           ],
1228           'sources': [
1229             'tools/dns_fuzz_stub/dns_fuzz_stub.cc',
1230           ],
1231           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1232           'msvs_disabled_warnings': [4267, ],
1233         },
1234         {
1235           'target_name': 'gdig',
1236           'type': 'executable',
1237           'dependencies': [
1238             '../base/base.gyp:base',
1239             'net',
1240           ],
1241           'sources': [
1242             'tools/gdig/file_net_log.cc',
1243             'tools/gdig/gdig.cc',
1244           ],
1245         },
1246         {
1247           'target_name': 'get_server_time',
1248           'type': 'executable',
1249           'dependencies': [
1250             '../base/base.gyp:base',
1251             '../base/base.gyp:base_i18n',
1252             '../url/url.gyp:url_lib',
1253             'net',
1254           ],
1255           'sources': [
1256             'tools/get_server_time/get_server_time.cc',
1257           ],
1258           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1259           'msvs_disabled_warnings': [4267, ],
1260         },
1261         {
1262           'target_name': 'hpack_example_generator',
1263           'type': 'executable',
1264           'dependencies': [
1265             '../base/base.gyp:base',
1266             'net',
1267           ],
1268           'sources': [
1269             'spdy/fuzzing/hpack_example_generator.cc',
1270           ],
1271           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1272           'msvs_disabled_warnings': [4267, ],
1273         },
1274         {
1275           'target_name': 'hpack_fuzz_mutator',
1276           'type': 'executable',
1277           'dependencies': [
1278             '../base/base.gyp:base',
1279             'net',
1280           ],
1281           'sources': [
1282             'spdy/fuzzing/hpack_fuzz_mutator.cc',
1283           ],
1284           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1285           'msvs_disabled_warnings': [4267, ],
1286         },
1287         {
1288           'target_name': 'hpack_fuzz_wrapper',
1289           'type': 'executable',
1290           'dependencies': [
1291             '../base/base.gyp:base',
1292             'net',
1293           ],
1294           'sources': [
1295             'spdy/fuzzing/hpack_fuzz_wrapper.cc',
1296           ],
1297           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1298           'msvs_disabled_warnings': [4267, ],
1299         },
1300         {
1301           'target_name': 'net_watcher',
1302           'type': 'executable',
1303           'dependencies': [
1304             '../base/base.gyp:base',
1305             'net',
1306             'net_with_v8',
1307           ],
1308           'conditions': [
1309             [ 'use_glib == 1', {
1310                 'dependencies': [
1311                   '../build/linux/system.gyp:gconf',
1312                   '../build/linux/system.gyp:gio',
1313                 ],
1314               },
1315             ],
1316           ],
1317           'sources': [
1318             'tools/net_watcher/net_watcher.cc',
1319           ],
1320         },
1321         {
1322           'target_name': 'run_testserver',
1323           'type': 'executable',
1324           'dependencies': [
1325             '../base/base.gyp:base',
1326             '../base/base.gyp:test_support_base',
1327             '../testing/gtest.gyp:gtest',
1328             'net_test_support',
1329           ],
1330           'sources': [
1331             'tools/testserver/run_testserver.cc',
1332           ],
1333         },
1334         {
1335           'target_name': 'stress_cache',
1336           'type': 'executable',
1337           'dependencies': [
1338             '../base/base.gyp:base',
1339             'net',
1340             'net_test_support',
1341           ],
1342           'sources': [
1343             'disk_cache/blockfile/stress_cache.cc',
1344           ],
1345           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1346           'msvs_disabled_warnings': [4267, ],
1347         },
1348         {
1349           'target_name': 'tld_cleanup',
1350           'type': 'executable',
1351           'dependencies': [
1352             '../base/base.gyp:base',
1353             '../base/base.gyp:base_i18n',
1354             '../net/tools/tld_cleanup/tld_cleanup.gyp:tld_cleanup_util',
1355           ],
1356           'sources': [
1357             'tools/tld_cleanup/tld_cleanup.cc',
1358           ],
1359           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1360           'msvs_disabled_warnings': [4267, ],
1361         },
1362       ],
1363     }],
1364     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
1365       'targets': [
1366         {
1367           'target_name': 'epoll_server',
1368           'type': 'static_library',
1369           'dependencies': [
1370             '../base/base.gyp:base',
1371             'net',
1372           ],
1373           'sources': [
1374             'tools/epoll_server/epoll_server.cc',
1375             'tools/epoll_server/epoll_server.h',
1376           ],
1377         },
1378         {
1379           'target_name': 'flip_in_mem_edsm_server_base',
1380           'type': 'static_library',
1381           'cflags': [
1382             '-Wno-deprecated',
1383           ],
1384           'dependencies': [
1385             '../base/base.gyp:base',
1386             '../third_party/boringssl/boringssl.gyp:boringssl',
1387             'balsa',
1388             'epoll_server',
1389             'net',
1390           ],
1391           'sources': [
1392             'tools/dump_cache/url_to_filename_encoder.cc',
1393             'tools/dump_cache/url_to_filename_encoder.h',
1394             'tools/dump_cache/url_utilities.h',
1395             'tools/dump_cache/url_utilities.cc',
1396             'tools/flip_server/acceptor_thread.h',
1397             'tools/flip_server/acceptor_thread.cc',
1398             'tools/flip_server/create_listener.cc',
1399             'tools/flip_server/create_listener.h',
1400             'tools/flip_server/constants.h',
1401             'tools/flip_server/flip_config.cc',
1402             'tools/flip_server/flip_config.h',
1403             'tools/flip_server/http_interface.cc',
1404             'tools/flip_server/http_interface.h',
1405             'tools/flip_server/loadtime_measurement.h',
1406             'tools/flip_server/mem_cache.h',
1407             'tools/flip_server/mem_cache.cc',
1408             'tools/flip_server/output_ordering.cc',
1409             'tools/flip_server/output_ordering.h',
1410             'tools/flip_server/ring_buffer.cc',
1411             'tools/flip_server/ring_buffer.h',
1412             'tools/flip_server/sm_connection.cc',
1413             'tools/flip_server/sm_connection.h',
1414             'tools/flip_server/sm_interface.h',
1415             'tools/flip_server/spdy_ssl.cc',
1416             'tools/flip_server/spdy_ssl.h',
1417             'tools/flip_server/spdy_interface.cc',
1418             'tools/flip_server/spdy_interface.h',
1419             'tools/flip_server/spdy_util.cc',
1420             'tools/flip_server/spdy_util.h',
1421             'tools/flip_server/streamer_interface.cc',
1422             'tools/flip_server/streamer_interface.h',
1423           ],
1424         },
1425         {
1426           'target_name': 'flip_in_mem_edsm_server_unittests',
1427           'type': 'executable',
1428           'dependencies': [
1429               '../testing/gtest.gyp:gtest',
1430               '../testing/gmock.gyp:gmock',
1431               '../third_party/boringssl/boringssl.gyp:boringssl',
1432               'flip_in_mem_edsm_server_base',
1433               'net',
1434               'net_test_support',
1435           ],
1436           'sources': [
1437             'tools/flip_server/flip_test_utils.cc',
1438             'tools/flip_server/flip_test_utils.h',
1439             'tools/flip_server/http_interface_test.cc',
1440             'tools/flip_server/mem_cache_test.cc',
1441             'tools/flip_server/run_all_tests.cc',
1442             'tools/flip_server/spdy_interface_test.cc',
1443           ],
1444         },
1445         {
1446           'target_name': 'flip_in_mem_edsm_server',
1447           'type': 'executable',
1448           'cflags': [
1449             '-Wno-deprecated',
1450           ],
1451           'dependencies': [
1452             '../base/base.gyp:base',
1453             'flip_in_mem_edsm_server_base',
1454             'net',
1455           ],
1456           'sources': [
1457             'tools/flip_server/flip_in_mem_edsm_server.cc',
1458           ],
1459         },
1460         {
1461           'target_name': 'quic_base',
1462           'type': 'static_library',
1463           'dependencies': [
1464             '../base/base.gyp:base',
1465             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
1466             '../url/url.gyp:url_lib',
1467             'balsa',
1468             'epoll_server',
1469             'net',
1470           ],
1471           'sources': [
1472             'tools/quic/quic_client.cc',
1473             'tools/quic/quic_client.h',
1474             'tools/quic/quic_client_session.cc',
1475             'tools/quic/quic_client_session.h',
1476             'tools/quic/quic_default_packet_writer.cc',
1477             'tools/quic/quic_default_packet_writer.h',
1478             'tools/quic/quic_dispatcher.h',
1479             'tools/quic/quic_dispatcher.cc',
1480             'tools/quic/quic_epoll_clock.cc',
1481             'tools/quic/quic_epoll_clock.h',
1482             'tools/quic/quic_epoll_connection_helper.cc',
1483             'tools/quic/quic_epoll_connection_helper.h',
1484             'tools/quic/quic_in_memory_cache.cc',
1485             'tools/quic/quic_in_memory_cache.h',
1486             'tools/quic/quic_packet_writer_wrapper.cc',
1487             'tools/quic/quic_packet_writer_wrapper.h',
1488             'tools/quic/quic_server.cc',
1489             'tools/quic/quic_server.h',
1490             'tools/quic/quic_server_session.cc',
1491             'tools/quic/quic_server_session.h',
1492             'tools/quic/quic_socket_utils.cc',
1493             'tools/quic/quic_socket_utils.h',
1494             'tools/quic/quic_spdy_client_stream.cc',
1495             'tools/quic/quic_spdy_client_stream.h',
1496             'tools/quic/quic_spdy_server_stream.cc',
1497             'tools/quic/quic_spdy_server_stream.h',
1498             'tools/quic/quic_time_wait_list_manager.h',
1499             'tools/quic/quic_time_wait_list_manager.cc',
1500           ],
1501         },
1502         {
1503           'target_name': 'quic_client',
1504           'type': 'executable',
1505           'dependencies': [
1506             '../base/base.gyp:base',
1507             'net',
1508             'quic_base',
1509           ],
1510           'sources': [
1511             'tools/quic/quic_client_bin.cc',
1512           ],
1513         },
1514         {
1515           'target_name': 'quic_server',
1516           'type': 'executable',
1517           'dependencies': [
1518             '../base/base.gyp:base',
1519             'net',
1520             'quic_tools',
1521           ],
1522           'sources': [
1523             'quic/quic_server_bin.cc',
1524           ],
1525         },
1526       ]
1527     }],
1528     ['OS=="android"', {
1529       'targets': [
1530         {
1531           'target_name': 'net_jni_headers',
1532           'type': 'none',
1533           'sources': [
1534             'android/java/src/org/chromium/net/AndroidCertVerifyResult.java',
1535             'android/java/src/org/chromium/net/AndroidKeyStore.java',
1536             'android/java/src/org/chromium/net/AndroidNetworkLibrary.java',
1537             'android/java/src/org/chromium/net/AndroidPrivateKey.java',
1538             'android/java/src/org/chromium/net/GURLUtils.java',
1539             'android/java/src/org/chromium/net/NetworkChangeNotifier.java',
1540             'android/java/src/org/chromium/net/ProxyChangeListener.java',
1541             'android/java/src/org/chromium/net/X509Util.java',
1542           ],
1543           'variables': {
1544             'jni_gen_package': 'net',
1545           },
1546           'includes': [ '../build/jni_generator.gypi' ],
1548           'conditions': [
1549             ['use_icu_alternatives_on_android==1', {
1550               'sources': [
1551                 'android/java/src/org/chromium/net/NetStringUtil.java',
1552               ],
1553             }],
1554           ],
1555         },
1556         {
1557           'target_name': 'net_test_jni_headers',
1558           'type': 'none',
1559           'sources': [
1560             'android/javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java',
1561           ],
1562           'variables': {
1563             'jni_gen_package': 'net',
1564           },
1565           'includes': [ '../build/jni_generator.gypi' ],
1566         },
1567         {
1568           'target_name': 'net_java',
1569           'type': 'none',
1570           'variables': {
1571             'java_in_dir': '../net/android/java',
1572           },
1573           'dependencies': [
1574             '../base/base.gyp:base',
1575             'cert_verify_status_android_java',
1576             'certificate_mime_types_java',
1577             'net_errors_java',
1578             'private_key_types_java',
1579             'remote_android_keystore_aidl',
1580           ],
1581           'includes': [ '../build/java.gypi' ],
1582         },
1583         {
1584           # Processes the interface files for communication with an Android KeyStore
1585           # running in a separate process.
1586           'target_name': 'remote_android_keystore_aidl',
1587           'type': 'none',
1588           'variables': {
1589             'aidl_interface_file': '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStoreInterface.aidl',
1590           },
1591           'sources': [
1592             '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStore.aidl',
1593             '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStoreCallbacks.aidl',
1594           ],
1595           'includes': [ '../build/java_aidl.gypi' ],
1596         },
1597         {
1598           'target_name': 'net_java_test_support',
1599           'type': 'none',
1600           'variables': {
1601             'java_in_dir': '../net/test/android/javatests',
1602           },
1603           'includes': [ '../build/java.gypi' ],
1604         },
1605         {
1606           'target_name': 'net_javatests',
1607           'type': 'none',
1608           'variables': {
1609             'java_in_dir': '../net/android/javatests',
1610           },
1611           'dependencies': [
1612             '../base/base.gyp:base',
1613             '../base/base.gyp:base_java_test_support',
1614             'net_java',
1615           ],
1616           'includes': [ '../build/java.gypi' ],
1617         },
1618         {
1619           'target_name': 'net_errors_java',
1620           'type': 'none',
1621           'sources': [
1622             'android/java/NetError.template',
1623           ],
1624           'variables': {
1625             'package_name': 'org/chromium/net',
1626             'template_deps': ['base/net_error_list.h'],
1627           },
1628           'includes': [ '../build/android/java_cpp_template.gypi' ],
1629         },
1630         {
1631           'target_name': 'certificate_mime_types_java',
1632           'type': 'none',
1633           'sources': [
1634             'android/java/CertificateMimeType.template',
1635           ],
1636           'variables': {
1637             'package_name': 'org/chromium/net',
1638             'template_deps': ['base/mime_util_certificate_type_list.h'],
1639           },
1640           'includes': [ '../build/android/java_cpp_template.gypi' ],
1641         },
1642         {
1643           'target_name': 'cert_verify_status_android_java',
1644           'type': 'none',
1645           'sources': [
1646             'android/java/CertVerifyStatusAndroid.template',
1647           ],
1648           'variables': {
1649             'package_name': 'org/chromium/net',
1650             'template_deps': ['android/cert_verify_status_android_list.h'],
1651           },
1652           'includes': [ '../build/android/java_cpp_template.gypi' ],
1653         },
1654         {
1655           'target_name': 'private_key_types_java',
1656           'type': 'none',
1657           'sources': [
1658             'android/java/PrivateKeyType.template',
1659           ],
1660           'variables': {
1661             'package_name': 'org/chromium/net',
1662             'template_deps': ['android/private_key_type_list.h'],
1663           },
1664           'includes': [ '../build/android/java_cpp_template.gypi' ],
1665         },
1666       ],
1667     }],
1668     ['OS == "android"', {
1669       'targets': [
1670         {
1671           'target_name': 'net_unittests_apk',
1672           'type': 'none',
1673           'dependencies': [
1674             'net_java',
1675             'net_javatests',
1676             'net_unittests',
1677           ],
1678           'variables': {
1679             'test_suite_name': 'net_unittests',
1680           },
1681           'includes': [ '../build/apk_test.gypi' ],
1682         },
1683       ],
1684     }],
1685     ['OS == "android" or OS == "linux"', {
1686       'targets': [
1687         {
1688           'target_name': 'disk_cache_memory_test',
1689           'type': 'executable',
1690           'dependencies': [
1691             '../base/base.gyp:base',
1692             'net',
1693           ],
1694           'sources': [
1695             'tools/disk_cache_memory_test/disk_cache_memory_test.cc',
1696           ],
1697         },
1698       ],
1699     }],
1700     ['test_isolation_mode != "noop"', {
1701       'targets': [
1702         {
1703           'target_name': 'net_unittests_run',
1704           'type': 'none',
1705           'dependencies': [
1706             'net_unittests',
1707           ],
1708           'includes': [
1709             '../build/isolate.gypi',
1710             'net_unittests.isolate',
1711           ],
1712           'sources': [
1713             'net_unittests.isolate',
1714           ],
1715         },
1716       ],
1717     }],
1718   ],