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