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