blob: dc19b1308d12658817d1dbc4cc4664a78c2ef781 [file] [log] [blame]
[email protected]4625ade2014-04-15 19:26:441# Copyright (c) 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
mefff34b822016-01-11 15:28:085import("//build/buildflag_header.gni")
slan77bdc2e62015-09-21 17:56:266import("//build/config/chromecast_build.gni")
brettw4cab0f12015-09-14 21:40:017import("//build/config/compiler/compiler.gni")
[email protected]4625ade2014-04-15 19:26:448import("//build/config/crypto.gni")
9import("//build/config/features.gni")
10import("//build/config/ui.gni")
dpranked4da5ab42015-10-13 06:20:3311import("//build_overrides/v8.gni")
eromane6264fd2016-03-02 22:46:3012import("//testing/libfuzzer/fuzzer_test.gni")
qsrfb5251d12015-01-21 15:57:2213import("//testing/test.gni")
rockot9c67e5f2015-03-12 20:01:2114import("//third_party/icu/config.gni")
rtennetib6f1c0d2015-04-03 17:52:0615import("//third_party/protobuf/proto_library.gni")
tfarinae597851a2015-10-06 23:14:4116import("//tools/grit/grit_rule.gni")
[email protected]26046b52014-07-16 00:11:0317
[email protected]4625ade2014-04-15 19:26:4418if (is_android) {
19 import("//build/config/android/config.gni")
[email protected]ef0eb442014-05-15 09:32:1820 import("//build/config/android/rules.gni")
[email protected]4625ade2014-04-15 19:26:4421} else if (is_mac) {
22 import("//build/config/mac/mac_sdk.gni")
23}
24
25# The list of net files is kept in net.gypi. Read it.
scottmg34fb7e52014-12-03 23:27:2426gypi_values = exec_script("//build/gypi_to_gn.py",
27 [ rebase_path("net.gypi") ],
28 "scope",
29 [ "net.gypi" ])
[email protected]4625ade2014-04-15 19:26:4430
[email protected]4625ade2014-04-15 19:26:4431# The way the cache uses mmap() is inefficient on some Android devices. If
32# this flag is set, we hackily avoid using mmap() in the disk cache. We are
33# pretty confident that mmap-ing the index would not hurt any existing x86
34# android devices, but we cannot be so sure about the variety of ARM devices.
35# So enable it for x86 only for now.
dpranke43276212015-02-20 02:55:1936posix_avoid_mmap = is_android && current_cpu != "x86"
[email protected]4625ade2014-04-15 19:26:4437
[email protected]8a3f8242014-06-05 18:05:1238use_v8_in_net = !is_ios
[email protected]4625ade2014-04-15 19:26:4439enable_built_in_dns = !is_ios
40
[email protected]384dab92014-06-04 20:26:0841declare_args() {
42 # Disables support for file URLs. File URL support requires use of icu.
43 disable_file_support = false
mefff34b822016-01-11 15:28:0844
agrieve56240df2015-12-22 22:20:2145 # WebSockets and socket stream code are not used on iOS and are optional in
46 # cronet.
47 enable_websockets = !is_ios
48 disable_ftp_support = is_ios
skyostil2df951b2016-04-01 11:33:4349
50 # Enable Kerberos authentication. It is disabled by default on ChromeOS, iOS,
51 # Chromecast, at least for now. This feature needs configuration (krb5.conf
52 # and so on).
53 use_kerberos = !is_chromeos && !is_ios && !is_chromecast
[email protected]384dab92014-06-04 20:26:0854}
[email protected]02494ec2014-05-07 15:05:2955
[email protected]4625ade2014-04-15 19:26:4456config("net_config") {
57 defines = []
58 if (posix_avoid_mmap) {
59 defines += [ "POSIX_AVOID_MMAP" ]
60 }
[email protected]02494ec2014-05-07 15:05:2961 if (disable_file_support) {
62 defines += [ "DISABLE_FILE_SUPPORT" ]
63 }
tfarinae7c8c3c2015-11-04 15:09:5564 if (disable_ftp_support) {
65 defines += [ "DISABLE_FTP_SUPPORT=1" ]
66 }
[email protected]4625ade2014-04-15 19:26:4467}
68
xunjieli905496a2015-08-31 15:51:1769# net_internal_config is shared with net and net_small.
70config("net_internal_config") {
[email protected]8603c5de2014-04-16 20:34:3171 defines = [
ellyjonesc7a5c502015-06-26 18:55:2072 # TODO(GYP) Note that the GYP file supports linux_link_kerberos (defaults to
[email protected]8603c5de2014-04-16 20:34:3173 # 0) which implies that we run pkg_config on kerberos and link to that
74 # rather than setting this define which will dynamically open it. That
75 # doesn't seem to be set in the regular builds, so we're skipping this
76 # capability here.
77 "DLOPEN_KERBEROS",
scottmg34fb7e52014-12-03 23:27:2478 "NET_IMPLEMENTATION",
[email protected]8603c5de2014-04-16 20:34:3179 ]
dpranke43276212015-02-20 02:55:1980
[email protected]4625ade2014-04-15 19:26:4481 if (use_kerberos) {
82 defines += [ "USE_KERBEROS" ]
83 if (is_android) {
xunjieli905496a2015-08-31 15:51:1784 include_dirs = [ "/usr/include/kerberosV" ]
[email protected]4625ade2014-04-15 19:26:4485 }
[email protected]4625ade2014-04-15 19:26:4486 }
87
88 if (enable_built_in_dns) {
89 defines += [ "ENABLE_BUILT_IN_DNS" ]
xunjieli905496a2015-08-31 15:51:1790 }
91}
92
93# net_shared_* are settings shared between net and net_small
sergeyu99d83f92015-09-14 23:03:3394net_shared_sources = gypi_values.net_nacl_common_sources
xunjieli905496a2015-08-31 15:51:1795
96net_shared_unfiltered_sources = []
97
98net_shared_configs = [
99 ":net_internal_config",
100 "//build/config:precompiled_headers",
101
102 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
103 "//build/config/compiler:no_size_t_to_int_warning",
104]
105
106net_shared_public_deps = [
107 ":net_quic_proto",
108 "//crypto",
109 "//crypto:platform",
110]
111
112net_shared_deps = [
113 ":net_resources",
114 "//base",
xunjieli905496a2015-08-31 15:51:17115 "//net/base/registry_controlled_domains",
xunjieli905496a2015-08-31 15:51:17116 "//third_party/protobuf:protobuf_lite",
xunjieli905496a2015-08-31 15:51:17117]
118
sergeyu99d83f92015-09-14 23:03:33119if (!is_nacl) {
120 net_shared_sources += gypi_values.net_non_nacl_sources
xunjieli905496a2015-08-31 15:51:17121
sergeyu99d83f92015-09-14 23:03:33122 net_shared_deps += [
sergeyu99d83f92015-09-14 23:03:33123 "//base/third_party/dynamic_annotations",
brettw9f7802a22016-01-30 06:40:17124 "//components/prefs",
sergeyu99d83f92015-09-14 23:03:33125 "//sdch",
126 "//third_party/zlib",
127 ]
128
129 if (!use_kerberos) {
130 net_shared_sources -= [
sergeyu99d83f92015-09-14 23:03:33131 "http/http_auth_handler_negotiate.cc",
132 "http/http_auth_handler_negotiate.h",
133 ]
134 }
135
136 if (is_posix) {
137 if (posix_avoid_mmap) {
138 net_shared_sources -= [ "disk_cache/blockfile/mapped_file_posix.cc" ]
139 } else {
140 net_shared_sources -=
141 [ "disk_cache/blockfile/mapped_file_avoid_mmap_posix.cc" ]
142 }
143 }
144
145 if (!enable_built_in_dns) {
146 net_shared_sources -= [
147 "dns/address_sorter_posix.cc",
148 "dns/address_sorter_posix.h",
149 "dns/dns_client.cc",
150 ]
151 }
152
153 if (use_openssl) {
154 net_shared_sources -= [
155 "base/nss_memio.c",
156 "base/nss_memio.h",
157 "cert/ct_log_verifier_nss.cc",
158 "cert/ct_objects_extractor_nss.cc",
159 "cert/jwk_serializer_nss.cc",
160 "cert/scoped_nss_types.h",
161 "cert/x509_util_nss.cc",
162 "quic/crypto/aead_base_decrypter_nss.cc",
163 "quic/crypto/aead_base_encrypter_nss.cc",
164 "quic/crypto/aes_128_gcm_12_decrypter_nss.cc",
165 "quic/crypto/aes_128_gcm_12_encrypter_nss.cc",
166 "quic/crypto/chacha20_poly1305_decrypter_nss.cc",
167 "quic/crypto/chacha20_poly1305_encrypter_nss.cc",
rch5ba79932015-12-22 19:21:13168 "quic/crypto/chacha20_poly1305_rfc7539_decrypter_nss.cc",
169 "quic/crypto/chacha20_poly1305_rfc7539_encrypter_nss.cc",
sergeyu99d83f92015-09-14 23:03:33170 "quic/crypto/channel_id_nss.cc",
171 "quic/crypto/p256_key_exchange_nss.cc",
172 "quic/crypto/proof_source_chromium_nss.cc",
173 "socket/nss_ssl_util.cc",
174 "socket/nss_ssl_util.h",
175 "socket/ssl_client_socket_nss.cc",
176 "socket/ssl_client_socket_nss.h",
177 "socket/ssl_server_socket_nss.cc",
178 "socket/ssl_server_socket_nss.h",
nharperb7441ef2016-01-25 23:54:14179 "ssl/token_binding_nss.cc",
sergeyu99d83f92015-09-14 23:03:33180 ]
181 if (is_ios) {
sergeyu99d83f92015-09-14 23:03:33182 net_shared_sources -= [
svaldeza1714ab2016-03-18 20:47:53183 "cert/x509_util_ios.cc",
184 "cert/x509_util_ios.h",
sergeyu99d83f92015-09-14 23:03:33185 ]
186 }
[email protected]4625ade2014-04-15 19:26:44187 } else {
xunjieli905496a2015-08-31 15:51:17188 net_shared_sources -= [
sergeyu99d83f92015-09-14 23:03:33189 "cert/ct_log_verifier_openssl.cc",
190 "cert/ct_objects_extractor_openssl.cc",
191 "cert/jwk_serializer_openssl.cc",
192 "cert/x509_util_openssl.cc",
193 "cert/x509_util_openssl.h",
194 "quic/crypto/aead_base_decrypter_openssl.cc",
195 "quic/crypto/aead_base_encrypter_openssl.cc",
196 "quic/crypto/aes_128_gcm_12_decrypter_openssl.cc",
197 "quic/crypto/aes_128_gcm_12_encrypter_openssl.cc",
198 "quic/crypto/chacha20_poly1305_decrypter_openssl.cc",
199 "quic/crypto/chacha20_poly1305_encrypter_openssl.cc",
rch5ba79932015-12-22 19:21:13200 "quic/crypto/chacha20_poly1305_rfc7539_decrypter_openssl.cc",
201 "quic/crypto/chacha20_poly1305_rfc7539_encrypter_openssl.cc",
sergeyu99d83f92015-09-14 23:03:33202 "quic/crypto/channel_id_openssl.cc",
203 "quic/crypto/p256_key_exchange_openssl.cc",
204 "quic/crypto/proof_source_chromium_openssl.cc",
205 "quic/crypto/scoped_evp_aead_ctx.cc",
206 "quic/crypto/scoped_evp_aead_ctx.h",
207 "socket/ssl_client_socket_openssl.cc",
208 "socket/ssl_client_socket_openssl.h",
209 "socket/ssl_server_socket_openssl.cc",
210 "socket/ssl_server_socket_openssl.h",
211 "ssl/openssl_ssl_util.cc",
212 "ssl/openssl_ssl_util.h",
213 "ssl/ssl_client_session_cache_openssl.cc",
214 "ssl/ssl_client_session_cache_openssl.h",
davidben2a811e4e2015-12-01 10:49:34215 "ssl/ssl_key_logger.cc",
216 "ssl/ssl_key_logger.h",
sergeyu99d83f92015-09-14 23:03:33217 "ssl/ssl_platform_key.h",
svaldez7872fd02015-11-19 21:10:54218 "ssl/ssl_platform_key_task_runner.cc",
219 "ssl/ssl_platform_key_task_runner.h",
svaldez0e6a4c62016-01-29 21:17:11220 "ssl/test_ssl_private_key.cc",
221 "ssl/test_ssl_private_key.h",
sergeyu99d83f92015-09-14 23:03:33222 "ssl/threaded_ssl_private_key.cc",
223 "ssl/threaded_ssl_private_key.h",
nharperb7441ef2016-01-25 23:54:14224 "ssl/token_binding_openssl.cc",
[email protected]4625ade2014-04-15 19:26:44225 ]
226 }
sergeyu99d83f92015-09-14 23:03:33227
228 if (!use_openssl_certs) {
xunjieli905496a2015-08-31 15:51:17229 net_shared_sources -= [
sergeyu99d83f92015-09-14 23:03:33230 "base/crypto_module_openssl.cc",
231 "base/keygen_handler_openssl.cc",
232 "base/openssl_private_key_store.h",
233 "base/openssl_private_key_store_memory.cc",
234 "cert/cert_database_openssl.cc",
235 "cert/cert_verify_proc_openssl.cc",
236 "cert/cert_verify_proc_openssl.h",
237 "cert/test_root_certs_openssl.cc",
238 "cert/x509_certificate_openssl.cc",
239 "ssl/openssl_client_key_store.cc",
240 "ssl/openssl_client_key_store.h",
xunjieli06d93982015-08-27 17:13:02241 ]
sergeyu99d83f92015-09-14 23:03:33242 if (is_android) {
243 net_shared_sources -= [ "base/openssl_private_key_store_android.cc" ]
244 }
245 } else {
246 if (is_android) {
247 # Android doesn't use these even when using OpenSSL.
248 net_shared_sources -= [
249 "base/openssl_private_key_store_memory.cc",
250 "cert/cert_database_openssl.cc",
251 "cert/cert_verify_proc_openssl.cc",
252 "cert/test_root_certs_openssl.cc",
253 ]
254 }
[email protected]4625ade2014-04-15 19:26:44255 }
sergeyu99d83f92015-09-14 23:03:33256
slan074ec342016-01-29 23:52:26257 if (!use_kerberos || is_android) {
258 net_shared_sources -= [
259 "http/http_auth_gssapi_posix.cc",
260 "http/http_auth_gssapi_posix.h",
261 ]
262 }
263
mostynbbf5e6cc2015-10-21 07:53:31264 if (use_glib && use_gconf && !is_chromeos) {
sergeyu99d83f92015-09-14 23:03:33265 net_shared_configs += [ "//build/config/linux:gconf" ]
266 net_shared_deps += [ "//build/linux:gio" ]
267 }
268
269 if (is_linux) {
270 net_shared_configs += [ "//build/config/linux:libresolv" ]
271 }
272
273 if (!use_nss_certs) {
274 net_shared_sources -= [
275 "base/crypto_module_nss.cc",
276 "base/keygen_handler_nss.cc",
277 "cert/cert_database_nss.cc",
278 "cert/nss_cert_database.cc",
279 "cert/nss_cert_database.h",
280 "cert/x509_certificate_nss.cc",
281 "ssl/client_cert_store_nss.cc",
282 "ssl/client_cert_store_nss.h",
283 "third_party/mozilla_security_manager/nsKeygenHandler.cpp",
284 "third_party/mozilla_security_manager/nsKeygenHandler.h",
285 "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
286 "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
287 "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
288 "third_party/mozilla_security_manager/nsPKCS12Blob.h",
289 ]
sergeyu99d83f92015-09-14 23:03:33290 if (is_chromeos) {
291 # These were already removed on non-ChromeOS.
292 net_shared_sources -= [
293 "cert/nss_cert_database_chromeos.cc",
294 "cert/nss_cert_database_chromeos.h",
295 "cert/nss_profile_filter_chromeos.cc",
296 "cert/nss_profile_filter_chromeos.h",
297 ]
298 }
xunjieli905496a2015-08-31 15:51:17299 net_shared_sources -= [
pneubeckabe6e9d12015-08-26 08:47:11300 "ssl/client_key_store.cc",
301 "ssl/client_key_store.h",
302 "ssl/ssl_platform_key_nss.cc",
303 ]
sergeyu99d83f92015-09-14 23:03:33304 } else if (use_openssl) {
305 # client_cert_store_nss.c requires NSS_CmpCertChainWCANames from NSS's
306 # libssl, but our bundled copy is not built in OpenSSL ports. Pull that file
307 # in directly.
308 net_shared_sources += [ "third_party/nss/ssl/cmpcert.c" ]
[email protected]4625ade2014-04-15 19:26:44309 }
310
svaldeza1714ab2016-03-18 20:47:53311 if (!use_nss_verifier) {
312 # These files are part of the partial implementation of NSS for
313 # cert verification, so keep them in that case.
314 net_shared_sources -= [
315 "cert/cert_verify_proc_nss.cc",
316 "cert/cert_verify_proc_nss.h",
317 "cert/test_root_certs_nss.cc",
318 "cert/x509_util_nss_certs.cc",
319 "cert_net/nss_ocsp.cc",
320 "cert_net/nss_ocsp.h",
321 ]
322 }
323
svaldez303d7d42016-03-25 20:37:13324 if (is_ios && use_nss_verifier) {
325 net_shared_sources -= [
326 "cert/cert_verify_proc_ios.cc",
327 "cert/cert_verify_proc_ios.h",
328 "cert/x509_certificate_openssl_ios.cc",
329 ]
330 }
331
ryanchungcfe97202016-01-20 04:07:41332 if (is_chromecast && use_nss_certs) {
333 net_shared_sources += [ "ssl/ssl_platform_key_chromecast.cc" ]
334 net_shared_sources -= [ "ssl/ssl_platform_key_nss.cc" ]
335 }
336
sergeyu99d83f92015-09-14 23:03:33337 if (!enable_mdns) {
338 net_shared_sources -= [
339 "dns/mdns_cache.cc",
340 "dns/mdns_cache.h",
341 "dns/mdns_client.cc",
342 "dns/mdns_client.h",
343 "dns/mdns_client_impl.cc",
344 "dns/mdns_client_impl.h",
345 "dns/record_parsed.cc",
346 "dns/record_parsed.h",
347 "dns/record_rdata.cc",
348 "dns/record_rdata.h",
349 ]
350 }
351
352 if (is_win) {
353 net_shared_sources -= [ "http/http_auth_handler_ntlm_portable.cc" ]
354 } else { # !is_win
355 net_shared_sources -= [
356 "base/winsock_init.cc",
357 "base/winsock_init.h",
358 "base/winsock_util.cc",
359 "base/winsock_util.h",
360 "proxy/proxy_resolver_winhttp.cc",
361 "proxy/proxy_resolver_winhttp.h",
362 ]
363 }
364
365 if (is_ios) {
366 # Add back some sources that were otherwise filtered out. iOS needs some Mac
367 # files.
368 net_shared_unfiltered_sources += [
369 "base/mac/url_conversions.h",
370 "base/mac/url_conversions.mm",
371 "base/network_change_notifier_mac.cc",
372 "base/network_config_watcher_mac.cc",
373 "base/network_interfaces_mac.cc",
374 "base/network_interfaces_mac.h",
375 "base/platform_mime_util_mac.mm",
376 "proxy/proxy_resolver_mac.cc",
377 "proxy/proxy_server_mac.cc",
378 ]
379
380 net_shared_sources -= [ "disk_cache/blockfile/file_posix.cc" ]
381 net_shared_deps += [
382 "//third_party/nss:nspr",
383 "//third_party/nss",
384 "//net/third_party/nss/ssl:libssl",
385 ]
386 }
387
svaldez303d7d42016-03-25 20:37:13388 if (is_ios && !use_nss_verifier) {
389 net_shared_sources += [ "cert/test_root_certs_mac.cc" ]
390 }
391
sergeyu99d83f92015-09-14 23:03:33392 if (is_ios || is_mac) {
393 net_shared_sources += gypi_values.net_base_mac_ios_sources
394 }
395
xunjieli905496a2015-08-31 15:51:17396 if (is_android) {
sergeyu99d83f92015-09-14 23:03:33397 net_shared_deps += [ ":net_jni_headers" ]
398
399 # Add some Linux sources that were excluded by the filter, but which
400 # are needed.
401 net_shared_unfiltered_sources += [
402 "base/address_tracker_linux.cc",
403 "base/address_tracker_linux.h",
404 "base/network_interfaces_linux.cc",
405 "base/network_interfaces_linux.h",
406 "base/platform_mime_util_linux.cc",
407 ]
xunjieli905496a2015-08-31 15:51:17408 }
409} else {
sergeyu99d83f92015-09-14 23:03:33410 net_shared_public_deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
xunjieli905496a2015-08-31 15:51:17411}
412
413component("net") {
414 sources = net_shared_sources
415
416 # Add back some sources that were otherwise filtered out.
417 set_sources_assignment_filter([])
418 sources += net_shared_unfiltered_sources
419 set_sources_assignment_filter(sources_assignment_filter)
420
421 cflags = []
422 configs += net_shared_configs
423 public_configs = [ ":net_config" ]
424
425 public_deps = net_shared_public_deps + [ "//url" ]
426 deps = net_shared_deps
[email protected]4625ade2014-04-15 19:26:44427
428 if (is_mac) {
[email protected]4625ade2014-04-15 19:26:44429 libs = [
[email protected]ab9ce6e2014-04-17 20:33:19430 "Foundation.framework",
431 "Security.framework",
432 "SystemConfiguration.framework",
433 "resolv",
[email protected]4625ade2014-04-15 19:26:44434 ]
435 }
436
437 if (is_ios) {
[email protected]4625ade2014-04-15 19:26:44438 libs = [
[email protected]ab9ce6e2014-04-17 20:33:19439 "CFNetwork.framework",
440 "MobileCoreServices.framework",
441 "Security.framework",
442 "SystemConfiguration.framework",
443 "resolv",
[email protected]4625ade2014-04-15 19:26:44444 ]
xunjieli06d93982015-08-27 17:13:02445 }
xunjieli4c8c6922015-08-27 16:02:40446
jam5332a632016-04-01 22:36:05447 if (is_win) {
448 libs = [
449 "crypt32.lib",
450 "dhcpcsvc.lib",
451 "iphlpapi.lib",
452 "rpcrt4.lib",
453 "secur32.lib",
454 "urlmon.lib",
455 "winhttp.lib",
456 ]
457 }
458
sergeyu99d83f92015-09-14 23:03:33459 if (!is_nacl) {
460 if (!disable_file_support) {
461 sources += gypi_values.net_file_support_sources
462 }
xunjieli06d93982015-08-27 17:13:02463
sergeyu99d83f92015-09-14 23:03:33464 if (!disable_ftp_support) {
465 sources += gypi_values.net_ftp_support_sources
466 }
xunjieli905496a2015-08-31 15:51:17467
sergeyu99d83f92015-09-14 23:03:33468 if (enable_websockets) {
469 sources += gypi_values.net_websockets_sources
470 }
xunjieli905496a2015-08-31 15:51:17471
sergeyu99d83f92015-09-14 23:03:33472 # ICU support.
473 deps += [
474 "//base:i18n",
475 "//third_party/icu",
476 ]
477 sources += [
478 "base/filename_util_icu.cc",
479 "base/net_string_util_icu.cc",
sergeyu99d83f92015-09-14 23:03:33480 ]
eustasfbec9132015-12-30 14:56:51481
482 # Brotli support.
483 deps += [ "//third_party/brotli" ]
484 sources += [ "filter/brotli_filter.cc" ]
sergeyu99d83f92015-09-14 23:03:33485 }
xunjieli905496a2015-08-31 15:51:17486}
487
488if (is_android) {
eustasfbec9132015-12-30 14:56:51489 # Same as net, but with brotli encoding, ICU, file, ftp, and websocket
490 # support stripped.
xunjieli905496a2015-08-31 15:51:17491 component("net_small") {
492 sources = net_shared_sources
493
494 # Add back some sources that were otherwise filtered out.
xunjieli06d93982015-08-27 17:13:02495 set_sources_assignment_filter([])
xunjieli905496a2015-08-31 15:51:17496 sources += net_shared_unfiltered_sources
xunjieli06d93982015-08-27 17:13:02497 set_sources_assignment_filter(sources_assignment_filter)
xunjieli06d93982015-08-27 17:13:02498
xunjieli905496a2015-08-31 15:51:17499 cflags = []
500 defines = []
501 configs += net_shared_configs
502 public_configs = [ ":net_config" ]
503
504 public_deps = net_shared_public_deps +
505 [ "//url:url_lib_use_icu_alternatives_on_android" ]
506 deps = net_shared_deps + [ ":net_jni_headers" ]
507
508 defines += [
509 "DISABLE_FILE_SUPPORT",
510 "DISABLE_FTP_SUPPORT",
511 "USE_ICU_ALTERNATIVES_ON_ANDROID=1",
512 ]
513
514 # Use ICU alternative on Android.
[email protected]85191ed2014-05-15 00:41:49515 sources += [
516 "base/net_string_util_icu_alternatives_android.cc",
517 "base/net_string_util_icu_alternatives_android.h",
518 ]
eustasfbec9132015-12-30 14:56:51519
520 # Disable Brotli support.
521 sources += [ "filter/brotli_filter_disabled.cc" ]
[email protected]85191ed2014-05-15 00:41:49522 }
[email protected]4625ade2014-04-15 19:26:44523}
524
525grit("net_resources") {
526 source = "base/net_resources.grd"
[email protected]7ae52902014-08-18 22:36:01527 use_qualified_include = true
[email protected]b89c53842014-07-23 16:32:32528 outputs = [
529 "grit/net_resources.h",
530 "net_resources.pak",
[email protected]b89c53842014-07-23 16:32:32531 ]
[email protected]4625ade2014-04-15 19:26:44532}
533
rtennetib6f1c0d2015-04-03 17:52:06534proto_library("net_quic_proto") {
xunjieli905496a2015-08-31 15:51:17535 visibility = [
536 ":net",
537 ":net_small",
538 ]
brettw2e7db0a2015-04-24 22:59:17539
rtennetib6f1c0d2015-04-03 17:52:06540 sources = [
541 "quic/proto/cached_network_parameters.proto",
542 "quic/proto/source_address_token.proto",
543 ]
544 cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:"
545 cc_include = "net/base/net_export.h"
546
547 defines = [ "NET_IMPLEMENTATION" ]
548
549 extra_configs = [ "//build/config/compiler:wexit_time_destructors" ]
550}
551
Brett Wilson83fd4242014-09-02 19:45:33552static_library("extras") {
mef327a8e42014-08-29 17:10:03553 sources = gypi_values.net_extras_sources
554 configs += [ "//build/config/compiler:wexit_time_destructors" ]
555 deps = [
556 ":net",
brettwbc44c0a92015-02-20 22:30:39557 "//base",
mef327a8e42014-08-29 17:10:03558 "//sql:sql",
559 ]
560}
561
[email protected]8a3f8242014-06-05 18:05:12562static_library("http_server") {
[email protected]4625ade2014-04-15 19:26:44563 sources = [
564 "server/http_connection.cc",
565 "server/http_connection.h",
566 "server/http_server.cc",
567 "server/http_server.h",
568 "server/http_server_request_info.cc",
569 "server/http_server_request_info.h",
570 "server/http_server_response_info.cc",
571 "server/http_server_response_info.h",
572 "server/web_socket.cc",
573 "server/web_socket.h",
dgozmana6e70092014-12-12 14:46:21574 "server/web_socket_encoder.cc",
575 "server/web_socket_encoder.h",
[email protected]4625ade2014-04-15 19:26:44576 ]
jambc6cc8e2014-11-14 17:56:29577 configs += [
brettwd1c719a2015-02-19 23:17:04578 "//build/config/compiler:no_size_t_to_int_warning",
jambc6cc8e2014-11-14 17:56:29579 "//build/config/compiler:wexit_time_destructors",
jambc6cc8e2014-11-14 17:56:29580 ]
[email protected]4625ade2014-04-15 19:26:44581 deps = [
582 ":net",
583 "//base",
584 ]
585}
586
sdefresne3001f172016-03-16 10:30:03587if (!is_ios) {
588 executable("dump_cache") {
589 testonly = true
590 sources = [
591 "tools/dump_cache/dump_cache.cc",
592 "tools/dump_cache/dump_files.cc",
593 "tools/dump_cache/dump_files.h",
594 ]
[email protected]4625ade2014-04-15 19:26:44595
sdefresne3001f172016-03-16 10:30:03596 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
597 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:31598
sdefresne3001f172016-03-16 10:30:03599 deps = [
600 ":net",
601 ":test_support",
602 "//base",
603 "//build/config/sanitizers:deps",
604 ]
605 }
[email protected]8603c5de2014-04-16 20:34:31606}
607
sdefresneb0a31642016-03-18 11:04:45608bundle_data("test_support_bundle_data") {
609 testonly = true
610 sources = [
611 "data/ssl/certificates",
612 ]
613 outputs = [
614 "{{bundle_resources_dir}}/" +
615 "{{source_root_relative_dir}}/{{source_file_part}}",
616 ]
617}
618
[email protected]b2b2bf52014-05-28 20:26:57619source_set("test_support") {
Brett Wilson8f80ad0b2014-09-08 19:50:24620 testonly = true
[email protected]8603c5de2014-04-16 20:34:31621 sources = [
[email protected]8603c5de2014-04-16 20:34:31622 "base/load_timing_info_test_util.cc",
623 "base/load_timing_info_test_util.h",
624 "base/mock_file_stream.cc",
625 "base/mock_file_stream.h",
626 "base/test_completion_callback.cc",
627 "base/test_completion_callback.h",
628 "base/test_data_directory.cc",
629 "base/test_data_directory.h",
630 "cert/mock_cert_verifier.cc",
631 "cert/mock_cert_verifier.h",
ryanchung987b2ff2016-02-19 00:17:12632 "cert/mock_client_cert_verifier.cc",
633 "cert/mock_client_cert_verifier.h",
[email protected]8603c5de2014-04-16 20:34:31634 "cookies/cookie_monster_store_test.cc",
635 "cookies/cookie_monster_store_test.h",
636 "cookies/cookie_store_test_callbacks.cc",
637 "cookies/cookie_store_test_callbacks.h",
638 "cookies/cookie_store_test_helpers.cc",
639 "cookies/cookie_store_test_helpers.h",
drogerfd8b2772015-12-04 14:34:56640 "cookies/cookie_store_unittest.h",
[email protected]8603c5de2014-04-16 20:34:31641 "disk_cache/disk_cache_test_base.cc",
642 "disk_cache/disk_cache_test_base.h",
643 "disk_cache/disk_cache_test_util.cc",
644 "disk_cache/disk_cache_test_util.h",
645 "dns/dns_test_util.cc",
646 "dns/dns_test_util.h",
647 "dns/mock_host_resolver.cc",
648 "dns/mock_host_resolver.h",
649 "dns/mock_mdns_socket_factory.cc",
650 "dns/mock_mdns_socket_factory.h",
[email protected]8a3f8242014-06-05 18:05:12651 "http/http_transaction_test_util.cc",
652 "http/http_transaction_test_util.h",
vishal.b62985ca92015-04-17 08:45:51653 "log/test_net_log.cc",
654 "log/test_net_log.h",
mmenke43758e62015-05-04 21:09:46655 "log/test_net_log_entry.cc",
656 "log/test_net_log_entry.h",
mmenke0034c542015-05-05 22:34:59657 "log/test_net_log_util.cc",
mmenke43758e62015-05-04 21:09:46658 "log/test_net_log_util.h",
[email protected]8603c5de2014-04-16 20:34:31659 "proxy/mock_proxy_resolver.cc",
660 "proxy/mock_proxy_resolver.h",
661 "proxy/mock_proxy_script_fetcher.cc",
662 "proxy/mock_proxy_script_fetcher.h",
663 "proxy/proxy_config_service_common_unittest.cc",
664 "proxy/proxy_config_service_common_unittest.h",
665 "socket/socket_test_util.cc",
666 "socket/socket_test_util.h",
667 "test/cert_test_util.cc",
668 "test/cert_test_util.h",
[email protected]83e1ae32014-07-18 10:57:07669 "test/cert_test_util_nss.cc",
nharper2e171cf2015-06-01 20:29:23670 "test/channel_id_test_util.cc",
671 "test/channel_id_test_util.h",
[email protected]8603c5de2014-04-16 20:34:31672 "test/ct_test_util.cc",
673 "test/ct_test_util.h",
svaldez7d25c562015-10-30 19:09:45674 "test/embedded_test_server/default_handlers.cc",
675 "test/embedded_test_server/default_handlers.h",
[email protected]8603c5de2014-04-16 20:34:31676 "test/embedded_test_server/embedded_test_server.cc",
677 "test/embedded_test_server/embedded_test_server.h",
678 "test/embedded_test_server/http_connection.cc",
679 "test/embedded_test_server/http_connection.h",
680 "test/embedded_test_server/http_request.cc",
681 "test/embedded_test_server/http_request.h",
682 "test/embedded_test_server/http_response.cc",
683 "test/embedded_test_server/http_response.h",
svaldez6e7e82a22015-10-28 19:39:53684 "test/embedded_test_server/request_handler_util.cc",
685 "test/embedded_test_server/request_handler_util.h",
sammc6ac3fe52015-02-25 06:00:28686 "test/event_waiter.h",
[email protected]8603c5de2014-04-16 20:34:31687 "test/net_test_suite.cc",
688 "test/net_test_suite.h",
689 "test/python_utils.cc",
690 "test/python_utils.h",
brettw6315e032015-11-27 18:38:36691 "test/test_certificate_data.h",
sherouk51b4b098b2015-08-10 09:00:43692 "test/url_request/ssl_certificate_error_job.cc",
693 "test/url_request/ssl_certificate_error_job.h",
Brett Wilson32ce17a2014-11-10 17:45:30694 "test/url_request/url_request_failed_job.cc",
695 "test/url_request/url_request_failed_job.h",
mef3e826cf2014-12-13 18:40:40696 "test/url_request/url_request_mock_data_job.cc",
697 "test/url_request/url_request_mock_data_job.h",
jam8e45cd72015-01-20 16:33:44698 "test/url_request/url_request_slow_download_job.cc",
699 "test/url_request/url_request_slow_download_job.h",
[email protected]8603c5de2014-04-16 20:34:31700 "url_request/test_url_fetcher_factory.cc",
701 "url_request/test_url_fetcher_factory.h",
702 "url_request/url_request_test_util.cc",
703 "url_request/url_request_test_util.h",
704 ]
sherouk3eee4a82015-09-01 10:42:33705 if (!is_ios) {
706 sources += [
707 "test/spawned_test_server/base_test_server.cc",
708 "test/spawned_test_server/base_test_server.h",
709 "test/spawned_test_server/local_test_server.cc",
710 "test/spawned_test_server/local_test_server.h",
711 "test/spawned_test_server/local_test_server_posix.cc",
712 "test/spawned_test_server/local_test_server_win.cc",
713 "test/spawned_test_server/spawned_test_server.h",
714 ]
715 }
[email protected]8603c5de2014-04-16 20:34:31716
brettwbc8b2a22015-07-28 18:24:42717 configs += [
718 "//build/config:precompiled_headers",
719
720 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
721 "//build/config/compiler:no_size_t_to_int_warning",
722 ]
[email protected]8603c5de2014-04-16 20:34:31723
sdefresneb0a31642016-03-18 11:04:45724 deps = [
725 ":test_support_bundle_data",
726 ]
727
Brett Wilsone53895272014-09-23 23:41:46728 public_deps = [
[email protected]8603c5de2014-04-16 20:34:31729 "//base",
730 "//base/test:test_support",
[email protected]22fe91d2014-08-12 17:07:12731 "//crypto",
[email protected]59ff2d42014-04-22 22:25:23732 "//net",
[email protected]8603c5de2014-04-16 20:34:31733 "//net/tools/tld_cleanup",
734 "//testing/gmock",
735 "//testing/gtest",
736 "//url",
737 ]
738
jamb533b7e2015-03-04 17:12:05739 if (!is_ios) {
740 public_deps += [ "//third_party/protobuf:py_proto" ]
741 }
742
svaldeza1714ab2016-03-18 20:47:53743 if (use_nss_verifier) {
scottmg34fb7e52014-12-03 23:27:24744 public_deps += [ "//crypto:platform" ]
[email protected]8603c5de2014-04-16 20:34:31745 }
746
sherouk3eee4a82015-09-01 10:42:33747 if (is_android) {
748 sources += [
[email protected]8603c5de2014-04-16 20:34:31749 "test/spawned_test_server/remote_test_server.cc",
750 "test/spawned_test_server/remote_test_server.h",
751 "test/spawned_test_server/spawner_communicator.cc",
752 "test/spawned_test_server/spawner_communicator.h",
753 ]
754 }
755
756 if (use_v8_in_net) {
Brett Wilsone53895272014-09-23 23:41:46757 public_deps += [ ":net_with_v8" ]
[email protected]8603c5de2014-04-16 20:34:31758 }
759
760 if (!enable_mdns) {
761 sources -= [
762 "dns/mock_mdns_socket_factory.cc",
763 "dns/mock_mdns_socket_factory.h",
764 ]
765 }
766
davidben15d69d482014-09-29 18:24:08767 if (!use_nss_certs) {
scottmg34fb7e52014-12-03 23:27:24768 sources -= [ "test/cert_test_util_nss.cc" ]
[email protected]83e1ae32014-07-18 10:57:07769 }
xunjielia6888202015-04-14 21:34:25770
771 if (!disable_file_support) {
772 sources += [
773 "test/url_request/url_request_mock_http_job.cc",
774 "test/url_request/url_request_mock_http_job.h",
775 "url_request/test_url_request_interceptor.cc",
776 "url_request/test_url_request_interceptor.h",
777 ]
778 }
[email protected]8603c5de2014-04-16 20:34:31779}
780
[email protected]ceeaac792014-06-25 05:14:43781source_set("balsa") {
782 sources = [
783 "tools/balsa/balsa_enums.h",
784 "tools/balsa/balsa_frame.cc",
785 "tools/balsa/balsa_frame.h",
786 "tools/balsa/balsa_headers.cc",
787 "tools/balsa/balsa_headers.h",
788 "tools/balsa/balsa_headers_token_utils.cc",
789 "tools/balsa/balsa_headers_token_utils.h",
790 "tools/balsa/balsa_visitor_interface.h",
791 "tools/balsa/http_message_constants.cc",
792 "tools/balsa/http_message_constants.h",
793 "tools/balsa/noop_balsa_visitor.h",
794 "tools/balsa/simple_buffer.cc",
795 "tools/balsa/simple_buffer.h",
[email protected]ceeaac792014-06-25 05:14:43796 "tools/balsa/string_piece_utils.h",
rtennetie0ee6eb2015-05-01 00:55:09797 "tools/quic/spdy_balsa_utils.cc",
798 "tools/quic/spdy_balsa_utils.h",
[email protected]ceeaac792014-06-25 05:14:43799 ]
800 deps = [
801 ":net",
802 "//base",
[email protected]22fe91d2014-08-12 17:07:12803 "//url",
[email protected]ceeaac792014-06-25 05:14:43804 ]
805}
806
[email protected]8603c5de2014-04-16 20:34:31807if (use_v8_in_net) {
808 component("net_with_v8") {
809 sources = [
810 "proxy/proxy_resolver_v8.cc",
811 "proxy/proxy_resolver_v8.h",
812 "proxy/proxy_resolver_v8_tracing.cc",
813 "proxy/proxy_resolver_v8_tracing.h",
sammcf2d1ea02015-06-29 02:58:47814 "proxy/proxy_resolver_v8_tracing_wrapper.cc",
815 "proxy/proxy_resolver_v8_tracing_wrapper.h",
[email protected]8603c5de2014-04-16 20:34:31816 "proxy/proxy_service_v8.cc",
817 "proxy/proxy_service_v8.h",
818 ]
819
820 defines = [ "NET_IMPLEMENTATION" ]
dprankea22b0732015-10-21 21:15:11821
[email protected]8603c5de2014-04-16 20:34:31822 configs += [
brettwd1c719a2015-02-19 23:17:04823 "//build/config/compiler:no_size_t_to_int_warning",
[email protected]8603c5de2014-04-16 20:34:31824 "//build/config/compiler:wexit_time_destructors",
dprankea22b0732015-10-21 21:15:11825 "//v8:external_startup_data",
[email protected]8603c5de2014-04-16 20:34:31826 ]
827
Brett Wilsone53895272014-09-23 23:41:46828 public_deps = [
[email protected]8603c5de2014-04-16 20:34:31829 ":net",
Brett Wilsone53895272014-09-23 23:41:46830 ]
831 deps = [
[email protected]8603c5de2014-04-16 20:34:31832 "//base",
833 "//gin",
834 "//url",
835 "//v8",
836 ]
837 }
838}
839
amistry7e6ebfdc82015-02-13 04:19:11840if (use_v8_in_net && !is_android) {
841 source_set("net_browser_services") {
842 sources = [
843 "dns/mojo_host_resolver_impl.cc",
844 "dns/mojo_host_resolver_impl.h",
amistry6e1ed1b2015-03-12 05:24:01845 "proxy/in_process_mojo_proxy_resolver_factory.cc",
846 "proxy/in_process_mojo_proxy_resolver_factory.h",
sammc1d5df4d2015-05-05 05:06:17847 "proxy/mojo_proxy_resolver_factory.h",
eromandcacef22015-06-01 19:36:35848 "proxy/proxy_resolver_factory_mojo.cc",
849 "proxy/proxy_resolver_factory_mojo.h",
amistry6e1ed1b2015-03-12 05:24:01850 "proxy/proxy_service_mojo.cc",
851 "proxy/proxy_service_mojo.h",
amistry7e6ebfdc82015-02-13 04:19:11852 ]
853
854 public_deps = [
855 ":mojo_type_converters",
tfarina8ac4d17f2015-12-16 02:11:11856 ":net_with_v8",
brettwbc44c0a92015-02-20 22:30:39857 "//base",
amistry07ff1402015-03-10 07:34:07858 "//mojo/common",
rockot85dce0862015-11-13 01:33:59859 "//mojo/public/cpp/bindings",
amistry7e6ebfdc82015-02-13 04:19:11860 "//net/interfaces",
amistry6e1ed1b2015-03-12 05:24:01861
862 # NOTE(amistry): As long as we support in-process Mojo v8 PAC, we need
863 # this dependency since in_process_mojo_proxy_resolver_factory creates
864 # the utility process side Mojo services in the browser process.
865 # Ultimately, this will go away when we only support out-of-process.
866 ":net_utility_services",
amistry7e6ebfdc82015-02-13 04:19:11867 ]
868 }
869
870 source_set("mojo_type_converters") {
871 sources = [
amistry7ec58112015-02-26 06:03:00872 "dns/mojo_host_type_converters.cc",
873 "dns/mojo_host_type_converters.h",
874 "proxy/mojo_proxy_type_converters.cc",
875 "proxy/mojo_proxy_type_converters.h",
amistry7e6ebfdc82015-02-13 04:19:11876 ]
877
878 public_deps = [
879 ":net",
tfarina8ac4d17f2015-12-16 02:11:11880 "//base",
rockot85dce0862015-11-13 01:33:59881 "//mojo/public/cpp/bindings",
amistry7e6ebfdc82015-02-13 04:19:11882 "//net/interfaces",
amistry7e6ebfdc82015-02-13 04:19:11883 ]
884 }
sammc5403aa1d2015-02-25 04:59:21885
886 source_set("net_utility_services") {
887 sources = [
sammc6ac3fe52015-02-25 06:00:28888 "dns/host_resolver_mojo.cc",
889 "dns/host_resolver_mojo.h",
sammc352f7492015-02-25 09:45:24890 "proxy/mojo_proxy_resolver_factory_impl.cc",
891 "proxy/mojo_proxy_resolver_factory_impl.h",
sammc5403aa1d2015-02-25 04:59:21892 "proxy/mojo_proxy_resolver_impl.cc",
893 "proxy/mojo_proxy_resolver_impl.h",
sammca3242c92015-07-10 02:38:51894 "proxy/mojo_proxy_resolver_v8_tracing_bindings.h",
sammc5403aa1d2015-02-25 04:59:21895 ]
896
rockot9509ec82015-04-14 02:50:56897 deps = [
898 ":net_with_v8",
tfarina8ac4d17f2015-12-16 02:11:11899 "//base",
rockot9509ec82015-04-14 02:50:56900 ]
901
sammc5403aa1d2015-02-25 04:59:21902 public_deps = [
903 ":mojo_type_converters",
904 ":net",
905 "//mojo/common",
rockot85dce0862015-11-13 01:33:59906 "//mojo/public/cpp/bindings",
sammc5403aa1d2015-02-25 04:59:21907 "//net/interfaces",
sammc5403aa1d2015-02-25 04:59:21908 ]
909 }
amistry7e6ebfdc82015-02-13 04:19:11910}
911
[email protected]8603c5de2014-04-16 20:34:31912if (!is_ios && !is_android) {
913 executable("crash_cache") {
Brett Wilson8f80ad0b2014-09-08 19:50:24914 testonly = true
scottmg34fb7e52014-12-03 23:27:24915 sources = [
916 "tools/crash_cache/crash_cache.cc",
917 ]
dpranke43276212015-02-20 02:55:19918
brettwd1c719a2015-02-19 23:17:04919 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
920 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:31921 deps = [
922 ":net",
[email protected]b2b2bf52014-05-28 20:26:57923 ":test_support",
[email protected]8603c5de2014-04-16 20:34:31924 "//base",
brettwba7a73d2015-08-31 22:17:39925 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:31926 ]
927 }
928
929 executable("crl_set_dump") {
Brett Wilson8f80ad0b2014-09-08 19:50:24930 testonly = true
scottmg34fb7e52014-12-03 23:27:24931 sources = [
932 "tools/crl_set_dump/crl_set_dump.cc",
933 ]
dpranke43276212015-02-20 02:55:19934
brettwd1c719a2015-02-19 23:17:04935 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
936 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:31937 deps = [
938 ":net",
939 "//base",
brettwba7a73d2015-08-31 22:17:39940 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:31941 ]
942 }
943
944 executable("dns_fuzz_stub") {
Brett Wilson8f80ad0b2014-09-08 19:50:24945 testonly = true
scottmg34fb7e52014-12-03 23:27:24946 sources = [
947 "tools/dns_fuzz_stub/dns_fuzz_stub.cc",
948 ]
dpranke43276212015-02-20 02:55:19949
brettwd1c719a2015-02-19 23:17:04950 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
951 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:31952 deps = [
953 ":net",
954 "//base",
brettwba7a73d2015-08-31 22:17:39955 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:31956 ]
957 }
958
959 executable("gdig") {
Brett Wilson8f80ad0b2014-09-08 19:50:24960 testonly = true
[email protected]8603c5de2014-04-16 20:34:31961 sources = [
962 "tools/gdig/file_net_log.cc",
963 "tools/gdig/gdig.cc",
964 ]
965 deps = [
966 ":net",
967 "//base",
brettwba7a73d2015-08-31 22:17:39968 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:31969 ]
970 }
971
972 executable("get_server_time") {
Brett Wilson8f80ad0b2014-09-08 19:50:24973 testonly = true
scottmg34fb7e52014-12-03 23:27:24974 sources = [
975 "tools/get_server_time/get_server_time.cc",
976 ]
dpranke43276212015-02-20 02:55:19977
brettwd1c719a2015-02-19 23:17:04978 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
979 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:31980 deps = [
981 ":net",
982 "//base",
983 "//base:i18n",
brettwba7a73d2015-08-31 22:17:39984 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:31985 "//url",
986 ]
987 }
988
rockot9c67e5f2015-03-12 20:01:21989 executable("hpack_example_generator") {
990 testonly = true
991 sources = [
992 "spdy/fuzzing/hpack_example_generator.cc",
993 ]
994
995 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
996 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
997 deps = [
rockot9c67e5f2015-03-12 20:01:21998 ":net",
brettwba7a73d2015-08-31 22:17:39999 "//base",
1000 "//build/config/sanitizers:deps",
rockot9c67e5f2015-03-12 20:01:211001 ]
1002 }
1003
1004 executable("hpack_fuzz_mutator") {
1005 testonly = true
1006 sources = [
1007 "spdy/fuzzing/hpack_fuzz_mutator.cc",
1008 ]
1009
1010 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1011 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
1012 deps = [
rockot9c67e5f2015-03-12 20:01:211013 ":net",
brettwba7a73d2015-08-31 22:17:391014 "//base",
1015 "//build/config/sanitizers:deps",
rockot9c67e5f2015-03-12 20:01:211016 ]
1017 }
1018
1019 executable("hpack_fuzz_wrapper") {
1020 testonly = true
1021 sources = [
1022 "spdy/fuzzing/hpack_fuzz_wrapper.cc",
1023 ]
1024
1025 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1026 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
1027 deps = [
rockot9c67e5f2015-03-12 20:01:211028 ":net",
brettwba7a73d2015-08-31 22:17:391029 "//base",
1030 "//build/config/sanitizers:deps",
rockot9c67e5f2015-03-12 20:01:211031 ]
1032 }
1033
[email protected]8603c5de2014-04-16 20:34:311034 if (use_v8_in_net) {
1035 executable("net_watcher") {
Brett Wilson8f80ad0b2014-09-08 19:50:241036 testonly = true
scottmg34fb7e52014-12-03 23:27:241037 sources = [
1038 "tools/net_watcher/net_watcher.cc",
1039 ]
[email protected]8603c5de2014-04-16 20:34:311040 deps = [
1041 ":net",
1042 ":net_with_v8",
1043 "//base",
brettwba7a73d2015-08-31 22:17:391044 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311045 ]
1046
mostynbbf5e6cc2015-10-21 07:53:311047 if (is_desktop_linux && use_gconf && use_glib) {
xunjieli905496a2015-08-31 15:51:171048 configs += [
1049 "//build/config/linux:gconf",
1050 "//build/config/linux:glib",
1051 ]
dprankead0c1f42015-08-28 21:48:041052 deps += [ "//build/linux:gio" ]
[email protected]8603c5de2014-04-16 20:34:311053 }
1054 }
1055 }
1056
1057 executable("run_testserver") {
Brett Wilson8f80ad0b2014-09-08 19:50:241058 testonly = true
scottmg34fb7e52014-12-03 23:27:241059 sources = [
1060 "tools/testserver/run_testserver.cc",
1061 ]
[email protected]8603c5de2014-04-16 20:34:311062 deps = [
[email protected]b2b2bf52014-05-28 20:26:571063 ":test_support",
[email protected]8603c5de2014-04-16 20:34:311064 "//base",
1065 "//base/test:test_support",
brettwba7a73d2015-08-31 22:17:391066 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311067 "//testing/gtest",
1068 ]
1069 }
1070
1071 executable("stress_cache") {
Brett Wilson8f80ad0b2014-09-08 19:50:241072 testonly = true
scottmg34fb7e52014-12-03 23:27:241073 sources = [
rvargase23fcf652015-03-04 19:59:221074 "tools/stress_cache/stress_cache.cc",
scottmg34fb7e52014-12-03 23:27:241075 ]
dpranke43276212015-02-20 02:55:191076
brettwd1c719a2015-02-19 23:17:041077 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1078 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:311079 deps = [
1080 ":net",
[email protected]b2b2bf52014-05-28 20:26:571081 ":test_support",
[email protected]8603c5de2014-04-16 20:34:311082 "//base",
brettwba7a73d2015-08-31 22:17:391083 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311084 ]
1085 }
1086
1087 executable("tld_cleanup") {
scottmg34fb7e52014-12-03 23:27:241088 sources = [
1089 "tools/tld_cleanup/tld_cleanup.cc",
1090 ]
dpranke43276212015-02-20 02:55:191091
brettwd1c719a2015-02-19 23:17:041092 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1093 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
[email protected]8603c5de2014-04-16 20:34:311094 deps = [
1095 "//base",
1096 "//base:i18n",
brettwba7a73d2015-08-31 22:17:391097 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311098 "//net/tools/tld_cleanup",
1099 ]
1100 }
1101}
1102
rch6983a3f2015-03-30 03:47:281103if (is_linux) {
gabadie64af64a2016-03-29 16:36:421104 executable("cachetool") {
1105 testonly = true
1106 sources = [
1107 "tools/cachetool/cachetool.cc",
1108 ]
1109 deps = [
1110 ":net",
1111 ":test_support",
1112 "//base",
1113 ]
1114 }
1115
1116 executable("content_decoder_tool") {
1117 testonly = true
1118 sources = [
1119 "filter/mock_filter_context.cc",
1120 "filter/mock_filter_context.h",
1121 "tools/content_decoder_tool/content_decoder_tool.cc",
1122 ]
1123 deps = [
1124 ":net",
1125 ":test_support",
1126 "//base",
1127 "//url",
1128 ]
1129 }
1130
[email protected]8a3f8242014-06-05 18:05:121131 static_library("epoll_server") {
[email protected]8603c5de2014-04-16 20:34:311132 sources = [
1133 "tools/epoll_server/epoll_server.cc",
1134 "tools/epoll_server/epoll_server.h",
1135 ]
1136 deps = [
1137 ":net",
1138 "//base",
1139 ]
1140 }
1141
[email protected]8a3f8242014-06-05 18:05:121142 static_library("flip_in_mem_edsm_server_base") {
Brett Wilson8f80ad0b2014-09-08 19:50:241143 testonly = true
[email protected]8603c5de2014-04-16 20:34:311144 sources = [
[email protected]8603c5de2014-04-16 20:34:311145 "tools/flip_server/acceptor_thread.cc",
satorux933fc7a2015-02-13 07:09:101146 "tools/flip_server/acceptor_thread.h",
1147 "tools/flip_server/constants.h",
[email protected]8603c5de2014-04-16 20:34:311148 "tools/flip_server/flip_config.cc",
1149 "tools/flip_server/flip_config.h",
1150 "tools/flip_server/http_interface.cc",
1151 "tools/flip_server/http_interface.h",
[email protected]8603c5de2014-04-16 20:34:311152 "tools/flip_server/mem_cache.cc",
satorux933fc7a2015-02-13 07:09:101153 "tools/flip_server/mem_cache.h",
[email protected]8603c5de2014-04-16 20:34:311154 "tools/flip_server/output_ordering.cc",
1155 "tools/flip_server/output_ordering.h",
1156 "tools/flip_server/ring_buffer.cc",
1157 "tools/flip_server/ring_buffer.h",
1158 "tools/flip_server/sm_connection.cc",
1159 "tools/flip_server/sm_connection.h",
1160 "tools/flip_server/sm_interface.h",
[email protected]8603c5de2014-04-16 20:34:311161 "tools/flip_server/spdy_interface.cc",
1162 "tools/flip_server/spdy_interface.h",
satorux933fc7a2015-02-13 07:09:101163 "tools/flip_server/spdy_ssl.cc",
1164 "tools/flip_server/spdy_ssl.h",
[email protected]8603c5de2014-04-16 20:34:311165 "tools/flip_server/spdy_util.cc",
1166 "tools/flip_server/spdy_util.h",
1167 "tools/flip_server/streamer_interface.cc",
1168 "tools/flip_server/streamer_interface.h",
tfarinafb3c78c2016-02-09 22:13:521169 "tools/flip_server/tcp_socket_util.cc",
1170 "tools/flip_server/tcp_socket_util.h",
rvargas145310f2015-08-14 18:09:041171 "tools/flip_server/url_to_filename_encoder.cc",
1172 "tools/flip_server/url_to_filename_encoder.h",
1173 "tools/flip_server/url_utilities.cc",
1174 "tools/flip_server/url_utilities.h",
[email protected]8603c5de2014-04-16 20:34:311175 ]
1176 deps = [
1177 ":balsa",
1178 ":epoll_server",
1179 ":net",
1180 "//base",
[email protected]edfd0f42014-07-22 18:20:371181 "//third_party/boringssl",
[email protected]8603c5de2014-04-16 20:34:311182 ]
1183 }
1184
1185 executable("flip_in_mem_edsm_server_unittests") {
Brett Wilson8f80ad0b2014-09-08 19:50:241186 testonly = true
[email protected]8603c5de2014-04-16 20:34:311187 sources = [
1188 "tools/flip_server/flip_test_utils.cc",
1189 "tools/flip_server/flip_test_utils.h",
1190 "tools/flip_server/http_interface_test.cc",
1191 "tools/flip_server/mem_cache_test.cc",
1192 "tools/flip_server/run_all_tests.cc",
1193 "tools/flip_server/spdy_interface_test.cc",
rvargas145310f2015-08-14 18:09:041194 "tools/flip_server/url_to_filename_encoder_unittest.cc",
1195 "tools/flip_server/url_utilities_unittest.cc",
[email protected]8603c5de2014-04-16 20:34:311196 ]
1197 deps = [
brettwbc44c0a92015-02-20 22:30:391198 ":balsa",
[email protected]8603c5de2014-04-16 20:34:311199 ":flip_in_mem_edsm_server_base",
1200 ":net",
[email protected]b2b2bf52014-05-28 20:26:571201 ":test_support",
brettwba7a73d2015-08-31 22:17:391202 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311203 "//testing/gmock",
agrieved7a71c882015-11-20 19:53:281204 "//testing/gtest",
[email protected]edfd0f42014-07-22 18:20:371205 "//third_party/boringssl",
[email protected]8603c5de2014-04-16 20:34:311206 ]
1207 }
1208
1209 executable("flip_in_mem_edsm_server") {
Brett Wilson8f80ad0b2014-09-08 19:50:241210 testonly = true
scottmg34fb7e52014-12-03 23:27:241211 sources = [
1212 "tools/flip_server/flip_in_mem_edsm_server.cc",
1213 ]
[email protected]8603c5de2014-04-16 20:34:311214 deps = [
brettwbc44c0a92015-02-20 22:30:391215 ":balsa",
[email protected]8603c5de2014-04-16 20:34:311216 ":flip_in_mem_edsm_server_base",
1217 ":net",
1218 "//base",
brettwba7a73d2015-08-31 22:17:391219 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311220 ]
1221 }
1222
rch216445c2015-03-27 00:23:281223 source_set("epoll_quic_tools") {
[email protected]8603c5de2014-04-16 20:34:311224 sources = [
1225 "tools/quic/quic_client.cc",
1226 "tools/quic/quic_client.h",
[email protected]8603c5de2014-04-16 20:34:311227 "tools/quic/quic_default_packet_writer.cc",
1228 "tools/quic/quic_default_packet_writer.h",
[email protected]8603c5de2014-04-16 20:34:311229 "tools/quic/quic_epoll_clock.cc",
1230 "tools/quic/quic_epoll_clock.h",
1231 "tools/quic/quic_epoll_connection_helper.cc",
1232 "tools/quic/quic_epoll_connection_helper.h",
rtennetifb3fa6c2015-03-16 23:04:551233 "tools/quic/quic_packet_reader.cc",
1234 "tools/quic/quic_packet_reader.h",
[email protected]8603c5de2014-04-16 20:34:311235 "tools/quic/quic_packet_writer_wrapper.cc",
1236 "tools/quic/quic_packet_writer_wrapper.h",
1237 "tools/quic/quic_server.cc",
1238 "tools/quic/quic_server.h",
[email protected]8603c5de2014-04-16 20:34:311239 "tools/quic/quic_socket_utils.cc",
1240 "tools/quic/quic_socket_utils.h",
[email protected]8603c5de2014-04-16 20:34:311241 ]
1242 deps = [
1243 ":balsa",
1244 ":epoll_server",
1245 ":net",
tfarina8ac4d17f2015-12-16 02:11:111246 ":simple_quic_tools",
[email protected]8603c5de2014-04-16 20:34:311247 "//base",
1248 "//base/third_party/dynamic_annotations",
1249 "//crypto",
[email protected]edfd0f42014-07-22 18:20:371250 "//third_party/boringssl",
[email protected]8603c5de2014-04-16 20:34:311251 "//url",
1252 ]
1253 }
1254
rch216445c2015-03-27 00:23:281255 executable("epoll_quic_client") {
scottmg34fb7e52014-12-03 23:27:241256 sources = [
1257 "tools/quic/quic_client_bin.cc",
1258 ]
[email protected]8603c5de2014-04-16 20:34:311259 deps = [
brettwbc44c0a92015-02-20 22:30:391260 ":balsa",
rch216445c2015-03-27 00:23:281261 ":epoll_quic_tools",
agrieved7a71c882015-11-20 19:53:281262 ":epoll_server",
rch216445c2015-03-27 00:23:281263 ":net",
1264 ":simple_quic_tools",
1265 "//base",
brettwba7a73d2015-08-31 22:17:391266 "//build/config/sanitizers:deps",
rch216445c2015-03-27 00:23:281267 "//third_party/boringssl",
1268 ]
1269 }
1270
1271 executable("epoll_quic_server") {
1272 sources = [
1273 "tools/quic/quic_server_bin.cc",
1274 ]
1275 deps = [
1276 ":balsa",
rch216445c2015-03-27 00:23:281277 ":epoll_quic_tools",
agrieved7a71c882015-11-20 19:53:281278 ":epoll_server",
[email protected]8603c5de2014-04-16 20:34:311279 ":net",
rchda78df5a2015-03-22 05:16:371280 ":simple_quic_tools",
[email protected]8603c5de2014-04-16 20:34:311281 "//base",
brettwba7a73d2015-08-31 22:17:391282 "//build/config/sanitizers:deps",
[email protected]edfd0f42014-07-22 18:20:371283 "//third_party/boringssl",
[email protected]8603c5de2014-04-16 20:34:311284 ]
1285 }
[email protected]8603c5de2014-04-16 20:34:311286}
1287
[email protected]ef0eb442014-05-15 09:32:181288if (is_android) {
1289 generate_jni("net_jni_headers") {
1290 sources = [
1291 "android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
1292 "android/java/src/org/chromium/net/AndroidKeyStore.java",
1293 "android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
tbansal59a1ddc2015-09-14 17:35:011294 "android/java/src/org/chromium/net/AndroidTrafficStats.java",
[email protected]ef0eb442014-05-15 09:32:181295 "android/java/src/org/chromium/net/GURLUtils.java",
aberentec894a52015-07-09 14:45:531296 "android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
xunjieli905496a2015-08-31 15:51:171297 "android/java/src/org/chromium/net/NetStringUtil.java",
[email protected]ef0eb442014-05-15 09:32:181298 "android/java/src/org/chromium/net/NetworkChangeNotifier.java",
1299 "android/java/src/org/chromium/net/ProxyChangeListener.java",
1300 "android/java/src/org/chromium/net/X509Util.java",
1301 ]
1302 jni_package = "net"
1303 }
cjhopmandad5f4272014-09-05 01:00:551304 generate_jni("net_test_jni_headers") {
1305 sources = [
1306 "android/javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java",
aberentec894a52015-07-09 14:45:531307 "test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java",
jbudorickccffb982015-12-22 01:21:351308 "test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java",
cjhopmandad5f4272014-09-05 01:00:551309 ]
brettwcdccaf02015-07-27 16:27:091310 jni_package = "net/test"
cjhopmandad5f4272014-09-05 01:00:551311 }
[email protected]ef0eb442014-05-15 09:32:181312}
[email protected]8603c5de2014-04-16 20:34:311313
1314if (is_android || is_linux) {
1315 executable("disk_cache_memory_test") {
Brett Wilson8f80ad0b2014-09-08 19:50:241316 testonly = true
scottmg34fb7e52014-12-03 23:27:241317 sources = [
1318 "tools/disk_cache_memory_test/disk_cache_memory_test.cc",
1319 ]
[email protected]8603c5de2014-04-16 20:34:311320 deps = [
1321 ":net",
1322 "//base",
brettwba7a73d2015-08-31 22:17:391323 "//build/config/sanitizers:deps",
[email protected]8603c5de2014-04-16 20:34:311324 ]
1325 }
1326}
[email protected]8a3f8242014-06-05 18:05:121327
rch47ad01f2015-03-20 21:17:231328source_set("simple_quic_tools") {
rcha9d12ce12015-03-19 23:06:491329 sources = [
rtennetid67b3a722015-08-18 05:15:311330 "tools/quic/quic_client_base.cc",
1331 "tools/quic/quic_client_base.h",
rched113b22015-03-26 04:54:051332 "tools/quic/quic_client_session.cc",
1333 "tools/quic/quic_client_session.h",
rchc99f380c2015-03-26 19:50:561334 "tools/quic/quic_dispatcher.cc",
1335 "tools/quic/quic_dispatcher.h",
rch0e945472015-03-26 15:19:211336 "tools/quic/quic_in_memory_cache.cc",
1337 "tools/quic/quic_in_memory_cache.h",
rchc99f380c2015-03-26 19:50:561338 "tools/quic/quic_per_connection_packet_writer.cc",
1339 "tools/quic/quic_per_connection_packet_writer.h",
brettw25ca8922016-03-18 22:59:581340 "tools/quic/quic_process_packet_interface.h",
jokulikc971baf92016-01-06 00:36:391341 "tools/quic/quic_server_session_base.cc",
1342 "tools/quic/quic_server_session_base.h",
rcha9d12ce12015-03-19 23:06:491343 "tools/quic/quic_simple_client.cc",
1344 "tools/quic/quic_simple_client.h",
rch216445c2015-03-27 00:23:281345 "tools/quic/quic_simple_per_connection_packet_writer.cc",
1346 "tools/quic/quic_simple_per_connection_packet_writer.h",
1347 "tools/quic/quic_simple_server.cc",
1348 "tools/quic/quic_simple_server.h",
1349 "tools/quic/quic_simple_server_packet_writer.cc",
1350 "tools/quic/quic_simple_server_packet_writer.h",
jokulikc971baf92016-01-06 00:36:391351 "tools/quic/quic_simple_server_session.cc",
1352 "tools/quic/quic_simple_server_session.h",
danzhb7551342015-12-18 02:06:401353 "tools/quic/quic_simple_server_stream.cc",
1354 "tools/quic/quic_simple_server_stream.h",
rched113b22015-03-26 04:54:051355 "tools/quic/quic_spdy_client_stream.cc",
1356 "tools/quic/quic_spdy_client_stream.h",
rch0e945472015-03-26 15:19:211357 "tools/quic/quic_time_wait_list_manager.cc",
1358 "tools/quic/quic_time_wait_list_manager.h",
rchda78df5a2015-03-22 05:16:371359 "tools/quic/synchronous_host_resolver.cc",
1360 "tools/quic/synchronous_host_resolver.h",
rcha9d12ce12015-03-19 23:06:491361 ]
1362 deps = [
tfarina8ac4d17f2015-12-16 02:11:111363 ":balsa",
rcha9d12ce12015-03-19 23:06:491364 ":net",
1365 "//base",
rch47ad01f2015-03-20 21:17:231366 "//base/third_party/dynamic_annotations",
1367 "//url",
1368 ]
1369}
1370
ricea7afa5232015-12-01 20:55:231371action_foreach("stale_while_revalidate_experiment_domains_dafsa") {
1372 script = "//net/tools/dafsa/make_dafsa.py"
1373 sources = [
1374 "base/stale_while_revalidate_experiment_domains.gperf",
1375 ]
1376 outputs = [
1377 "${target_gen_dir}/base/{{source_name_part}}-inc.cc",
1378 ]
1379 args = [
1380 "{{source}}",
1381 rebase_path("${target_gen_dir}/base/{{source_name_part}}-inc.cc",
1382 root_build_dir),
1383 ]
1384}
1385
1386source_set("stale_while_revalidate_experiment_domains") {
1387 sources = [
1388 "base/stale_while_revalidate_experiment_domains.cc",
1389 "base/stale_while_revalidate_experiment_domains.h",
1390 ]
1391 deps = [
1392 ":net",
1393 ":stale_while_revalidate_experiment_domains_dafsa",
1394 "//base",
1395 ]
1396 configs += net_shared_configs
1397}
1398
sherouk51b4b098b2015-08-10 09:00:431399if (!is_ios) {
1400 executable("quic_client") {
1401 sources = [
1402 "tools/quic/quic_simple_client_bin.cc",
1403 ]
1404 deps = [
1405 ":net",
1406 ":simple_quic_tools",
1407 "//base",
brettwba7a73d2015-08-31 22:17:391408 "//build/config/sanitizers:deps",
sherouk51b4b098b2015-08-10 09:00:431409 "//url",
1410 ]
1411 }
1412 executable("quic_server") {
1413 sources = [
1414 "tools/quic/quic_simple_server_bin.cc",
1415 ]
1416 deps = [
1417 ":net",
1418 ":simple_quic_tools",
1419 "//base",
brettwba7a73d2015-08-31 22:17:391420 "//build/config/sanitizers:deps",
sherouk51b4b098b2015-08-10 09:00:431421 "//third_party/boringssl",
1422 "//third_party/protobuf:protobuf_lite",
1423 ]
1424 }
rch216445c2015-03-27 00:23:281425}
1426
sdefresneb0a31642016-03-18 11:04:451427bundle_data("net_unittests_bundle_data") {
1428 testonly = true
1429 sources = [
1430 "data/certificate_policies_unittest",
1431 "data/name_constraints_unittest",
1432 "data/parse_certificate_unittest",
svaldez666b3cfb2016-04-01 20:45:241433 "data/parse_ocsp_unittest",
sdefresneb0a31642016-03-18 11:04:451434 "data/test.html",
1435 "data/url_request_unittest",
1436 "data/verify_certificate_chain_unittest",
1437 "data/verify_name_match_unittest/names",
1438 ]
1439 outputs = [
1440 "{{bundle_resources_dir}}/" +
1441 "{{source_root_relative_dir}}/{{source_file_part}}",
1442 ]
1443}
1444
dpranke64df2832015-07-31 22:33:361445test("net_unittests") {
1446 sources = gypi_values.net_test_sources
1447
1448 configs += [
1449 "//build/config:precompiled_headers",
1450
1451 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1452 "//build/config/compiler:no_size_t_to_int_warning",
1453 ]
1454 defines = []
1455
1456 deps = [
1457 ":balsa",
1458 ":extras",
dpranke64df2832015-07-31 22:33:361459 ":net",
sdefresneb0a31642016-03-18 11:04:451460 ":net_unittests_bundle_data",
dpranke64df2832015-07-31 22:33:361461 ":simple_quic_tools",
ricea7afa5232015-12-01 20:55:231462 ":stale_while_revalidate_experiment_domains",
dpranke64df2832015-07-31 22:33:361463 ":test_support",
1464 "//base",
1465 "//base:i18n",
dpranke64df2832015-07-31 22:33:361466 "//base/third_party/dynamic_annotations",
1467 "//crypto",
1468 "//crypto:platform",
1469 "//crypto:test_support",
dpranke64df2832015-07-31 22:33:361470 "//net/base/registry_controlled_domains",
1471 "//sql",
1472 "//testing/gmock",
1473 "//testing/gtest",
1474 "//third_party/zlib",
1475 "//url",
1476 ]
1477
1478 data = [
1479 "data/",
1480 ]
mattm6586b432016-02-12 04:52:391481 data_deps = []
1482
davidben75060382016-03-25 22:59:541483 if (!is_ios) {
mattm6586b432016-02-12 04:52:391484 data_deps += [ "third_party/nist-pkits/" ]
1485 }
dpranke64df2832015-07-31 22:33:361486
1487 if (is_linux || is_mac || is_win) {
1488 deps += [
1489 "//third_party/pyftpdlib/",
1490 "//third_party/pywebsocket/",
1491 "//third_party/tlslite/",
1492 ]
mattm6586b432016-02-12 04:52:391493 data_deps += [
dpranke64df2832015-07-31 22:33:361494 "//third_party/pyftpdlib/",
1495 "//third_party/pywebsocket/",
1496 "//third_party/tlslite/",
1497 ]
1498 data += [
1499 "tools/testserver/",
1500 "//third_party/pyftpdlib/",
1501 "//third_party/pywebsocket/",
1502 "//third_party/tlslite/",
1503 "$root_out_dir/pyproto/google/",
dprankef497c7962015-07-31 19:46:231504 ]
1505 }
1506
dpranke64df2832015-07-31 22:33:361507 if (is_desktop_linux) {
1508 deps += [ ":epoll_quic_tools" ]
1509 }
1510 if (is_linux) {
1511 sources += gypi_values.net_linux_test_sources
1512 deps += [
1513 ":epoll_quic_tools",
1514 ":epoll_server",
1515 ":flip_in_mem_edsm_server_base",
brettwbc8b2a22015-07-28 18:24:421516 ]
dpranke64df2832015-07-31 22:33:361517 }
[email protected]8a3f8242014-06-05 18:05:121518
dpranke64df2832015-07-31 22:33:361519 if (is_mac || is_ios) {
1520 sources += gypi_values.net_base_test_mac_ios_sources
1521 }
1522
1523 if (is_chromeos) {
1524 sources -= [ "proxy/proxy_config_service_linux_unittest.cc" ]
1525 }
1526
1527 if (v8_use_external_startup_data) {
1528 deps += [ "//gin" ]
1529 }
1530
1531 if (!use_nss_certs) {
1532 sources -= [
1533 "cert/nss_cert_database_unittest.cc",
1534 "ssl/client_cert_store_nss_unittest.cc",
[email protected]8a3f8242014-06-05 18:05:121535 ]
dpranke64df2832015-07-31 22:33:361536 if (is_chromeos) { # Already removed for all non-ChromeOS builds.
davidben2bcbc6b2015-04-22 02:36:411537 sources -= [
dpranke64df2832015-07-31 22:33:361538 "cert/nss_cert_database_chromeos_unittest.cc",
1539 "cert/nss_profile_filter_chromeos_unittest.cc",
davidben2bcbc6b2015-04-22 02:36:411540 ]
brettw43ae0e12015-07-14 22:12:361541 }
[email protected]8a3f8242014-06-05 18:05:121542 }
dpranke64df2832015-07-31 22:33:361543
1544 if (use_openssl) {
dpranke64df2832015-07-31 22:33:361545 sources -= [ "quic/test_tools/crypto_test_utils_nss.cc" ]
1546 } else {
1547 sources -= [
dpranke64df2832015-07-31 22:33:361548 "quic/test_tools/crypto_test_utils_openssl.cc",
dpranke64df2832015-07-31 22:33:361549 "ssl/ssl_client_session_cache_openssl_unittest.cc",
1550 ]
1551 }
1552
1553 if (use_kerberos) {
1554 defines += [ "USE_KERBEROS" ]
1555 }
1556
1557 # These are excluded on Android, because the actual Kerberos support, which
1558 # these test, is in a separate app on Android.
1559 if (!use_kerberos || is_android) {
1560 sources -= [
1561 "http/http_auth_gssapi_posix_unittest.cc",
1562 "http/mock_gssapi_library_posix.cc",
1563 "http/mock_gssapi_library_posix.h",
1564 ]
1565 }
1566 if (!use_kerberos) {
1567 sources -= [ "http/http_auth_handler_negotiate_unittest.cc" ]
1568 }
1569
svaldeza1714ab2016-03-18 20:47:531570 if (!use_nss_verifier) {
1571 # Only include this test when using NSS for cert verification.
dpranke64df2832015-07-31 22:33:361572 sources -= [ "cert_net/nss_ocsp_unittest.cc" ]
1573 }
1574
1575 if (!use_openssl_certs) {
1576 sources -= [ "ssl/openssl_client_key_store_unittest.cc" ]
1577 }
1578
jbudorick1273a842016-04-01 19:50:051579 if (enable_websockets) {
1580 sources += gypi_values.net_websockets_test_sources
1581 deps += [ ":http_server" ]
dpranke64df2832015-07-31 22:33:361582 }
1583
1584 if (disable_file_support) {
1585 sources -= [
1586 "base/directory_lister_unittest.cc",
Thiago Farinad673bb122016-01-06 23:18:161587 "base/directory_listing_unittest.cc",
shahriar.rostamia8c06daf2016-02-12 00:07:041588 "url_request/url_request_file_dir_job_unittest.cc",
dpranke64df2832015-07-31 22:33:361589 "url_request/url_request_file_job_unittest.cc",
1590 ]
1591 }
1592
1593 if (disable_ftp_support) {
1594 sources -= [
1595 "ftp/ftp_auth_cache_unittest.cc",
1596 "ftp/ftp_ctrl_response_buffer_unittest.cc",
1597 "ftp/ftp_directory_listing_parser_ls_unittest.cc",
dpranke64df2832015-07-31 22:33:361598 "ftp/ftp_directory_listing_parser_unittest.cc",
1599 "ftp/ftp_directory_listing_parser_unittest.h",
1600 "ftp/ftp_directory_listing_parser_vms_unittest.cc",
1601 "ftp/ftp_directory_listing_parser_windows_unittest.cc",
1602 "ftp/ftp_network_transaction_unittest.cc",
1603 "ftp/ftp_util_unittest.cc",
1604 "url_request/url_request_ftp_job_unittest.cc",
1605 ]
1606 }
1607
1608 if (!enable_built_in_dns) {
1609 sources -= [
1610 "dns/address_sorter_posix_unittest.cc",
1611 "dns/address_sorter_unittest.cc",
1612 ]
1613 }
1614
xunjieli905496a2015-08-31 15:51:171615 if (use_v8_in_net) {
dpranke64df2832015-07-31 22:33:361616 deps += [ ":net_with_v8" ]
1617 } else {
1618 sources -= [
1619 "proxy/proxy_resolver_v8_tracing_unittest.cc",
1620 "proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc",
1621 "proxy/proxy_resolver_v8_unittest.cc",
1622 ]
1623 }
1624
1625 if (use_v8_in_net && !is_android) {
1626 deps += [
1627 ":net_browser_services",
1628 ":net_utility_services",
rockotc637caf9b2016-02-10 09:57:081629 "//mojo/edk/system",
dpranke64df2832015-07-31 22:33:361630 ]
1631 } else {
1632 sources -= [
1633 "dns/host_resolver_mojo_unittest.cc",
1634 "dns/mojo_host_resolver_impl_unittest.cc",
1635 "proxy/mojo_proxy_resolver_factory_impl_unittest.cc",
1636 "proxy/mojo_proxy_resolver_impl_unittest.cc",
1637 "proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc",
1638 "proxy/proxy_resolver_factory_mojo_unittest.cc",
1639 "proxy/proxy_service_mojo_unittest.cc",
1640 ]
1641 }
1642
1643 if (!enable_mdns) {
1644 sources -= [
1645 "dns/mdns_cache_unittest.cc",
1646 "dns/mdns_client_unittest.cc",
1647 "dns/record_parsed_unittest.cc",
1648 "dns/record_rdata_unittest.cc",
1649 ]
1650 }
1651
1652 if (is_ios) {
dpranke64df2832015-07-31 22:33:361653 sources -= [
1654 # TODO(droger): The following tests are disabled because the
1655 # implementation is missing or incomplete.
1656 # KeygenHandler::GenKeyAndSignChallenge() is not ported to iOS.
1657 "base/keygen_handler_unittest.cc",
1658 "disk_cache/backend_unittest.cc",
1659 "disk_cache/blockfile/block_files_unittest.cc",
1660
1661 # Need to read input data files.
eustasfbec9132015-12-30 14:56:511662 "filter/brotli_filter_unittest.cc",
dpranke64df2832015-07-31 22:33:361663 "filter/gzip_filter_unittest.cc",
1664 "socket/ssl_server_socket_unittest.cc",
1665 "spdy/fuzzing/hpack_fuzz_util_test.cc",
1666
1667 # Need TestServer.
1668 "cert_net/cert_net_fetcher_impl_unittest.cc",
1669 "proxy/proxy_script_fetcher_impl_unittest.cc",
1670 "socket/ssl_client_socket_unittest.cc",
1671 "url_request/url_fetcher_impl_unittest.cc",
1672 "url_request/url_request_context_builder_unittest.cc",
1673
1674 # Needs GetAppOutput().
1675 "test/python_utils_unittest.cc",
1676
1677 # The following tests are disabled because they don't apply to
1678 # iOS.
1679 # OS is not "linux" or "freebsd" or "openbsd".
1680 "socket/unix_domain_client_socket_posix_unittest.cc",
1681 "socket/unix_domain_server_socket_posix_unittest.cc",
1682
1683 # See bug http://crbug.com/344533.
1684 "disk_cache/blockfile/index_table_v3_unittest.cc",
1685 ]
1686 }
1687
1688 if (is_android) {
agrieve97176362015-12-01 16:36:191689 deps += [
1690 ":net_test_jni_headers",
agrievea5517aa2015-10-23 03:03:451691 "//base:base_java_unittest_support",
1692 "//net/android:net_java",
agrievea5517aa2015-10-23 03:03:451693 "//net/android:net_java_test_support",
agrieve97176362015-12-01 16:36:191694 "//net/android:net_javatests",
agrievea5517aa2015-10-23 03:03:451695 "//net/android:net_unittests_apk_resources",
agrieve97176362015-12-01 16:36:191696
1697 # TODO(mmenke): This depends on test_support_base, which depends on
1698 # icu. Figure out a way to remove that dependency.
1699 "//testing/android/native_test:native_test_native_code",
pkotwicz8c7027d2015-11-11 06:30:071700 "//v8:v8_external_startup_data_assets",
agrievea5517aa2015-10-23 03:03:451701 ]
1702 android_manifest = "//net/android/unittest_support/AndroidManifest.xml"
dpranke64df2832015-07-31 22:33:361703 sources -= [
1704 # See bug http://crbug.com/344533.
1705 "disk_cache/blockfile/index_table_v3_unittest.cc",
dpranke64df2832015-07-31 22:33:361706 ]
dpranke64df2832015-07-31 22:33:361707 set_sources_assignment_filter([])
1708 sources += [ "base/address_tracker_linux_unittest.cc" ]
1709 set_sources_assignment_filter(sources_assignment_filter)
1710 isolate_file = "net_unittests.isolate"
1711 }
1712
dpranke64df2832015-07-31 22:33:361713 # Symbols for crashes when running tests on swarming.
1714 if (symbol_level > 0) {
1715 if (is_win) {
1716 data += [ "$root_out_dir/net_unittests.exe.pdb" ]
1717 } else if (is_mac) {
1718 data += [ "$root_out_dir/net_unittests.dSYM/" ]
1719 }
1720 }
1721}
1722
1723# !is_android && !is_win && !is_mac
sdefresne3001f172016-03-16 10:30:031724if (!is_ios) {
1725 # TODO(crbug.com/594965): this should be converted to "app" template and
1726 # enabled on iOS too.
1727 executable("net_perftests") {
1728 testonly = true
1729 sources = [
1730 "base/mime_sniffer_perftest.cc",
1731 "cookies/cookie_monster_perftest.cc",
1732 "disk_cache/blockfile/disk_cache_perftest.cc",
1733 "extras/sqlite/sqlite_persistent_cookie_store_perftest.cc",
1734 "proxy/proxy_resolver_perftest.cc",
1735 "udp/udp_socket_perftest.cc",
1736 ]
[email protected]8a3f8242014-06-05 18:05:121737
sdefresne3001f172016-03-16 10:30:031738 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1739 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
1740 deps = [
1741 ":extras",
1742 ":net",
1743 ":test_support",
1744 "//base",
1745 "//base:i18n",
1746 "//base/test:test_support_perf",
1747 "//build/config/sanitizers:deps",
1748 "//testing/gtest",
1749 "//url",
1750 ]
rockot9c67e5f2015-03-12 20:01:211751
sdefresne3001f172016-03-16 10:30:031752 if (enable_websockets) {
1753 sources += [ "websockets/websocket_frame_perftest.cc" ]
1754 }
rockot9c67e5f2015-03-12 20:01:211755
sdefresne3001f172016-03-16 10:30:031756 if (use_v8_in_net) {
1757 deps += [ ":net_with_v8" ]
1758 } else {
1759 sources -= [ "proxy/proxy_resolver_perftest.cc" ]
1760 }
rockot9c67e5f2015-03-12 20:01:211761 }
rockot9c67e5f2015-03-12 20:01:211762}
mefff34b822016-01-11 15:28:081763
eromanfe8659e2016-03-02 23:47:021764# Fuzzers
1765
eroman02b4fe562016-03-04 12:15:161766source_set("net_fuzzer_test_support") {
1767 testonly = true
1768
1769 sources = [
1770 "base/fuzzer_test_support.cc",
1771 ]
1772 deps = [
1773 "//base",
1774 "//base:i18n",
1775 ]
1776}
1777
mmenke5552a6a2016-03-28 23:11:591778fuzzer_test("net_mime_sniffer_fuzzer") {
1779 sources = [
1780 "base/mime_sniffer_fuzzer.cc",
1781 ]
1782 deps = [
1783 ":net_fuzzer_test_support",
1784 "//base",
1785 "//net",
1786 ]
1787}
1788
mmoroz565e8df22016-03-04 18:17:201789fuzzer_test("net_parse_proxy_list_pac_fuzzer") {
eromane6264fd2016-03-02 22:46:301790 sources = [
1791 "proxy/parse_proxy_list_pac_fuzzer.cc",
1792 ]
1793 deps = [
eroman02b4fe562016-03-04 12:15:161794 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301795 "//net",
1796 ]
1797}
1798
mmoroz565e8df22016-03-04 18:17:201799fuzzer_test("net_parse_proxy_list_fuzzer") {
eromane6264fd2016-03-02 22:46:301800 sources = [
1801 "proxy/parse_proxy_list_fuzzer.cc",
1802 ]
1803 deps = [
eroman02b4fe562016-03-04 12:15:161804 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301805 "//net",
1806 ]
1807}
1808
mmoroz565e8df22016-03-04 18:17:201809fuzzer_test("net_parse_proxy_bypass_rules_fuzzer") {
eromane6264fd2016-03-02 22:46:301810 sources = [
1811 "proxy/parse_proxy_bypass_rules_fuzzer.cc",
1812 ]
1813 deps = [
eroman02b4fe562016-03-04 12:15:161814 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301815 "//net",
1816 ]
1817}
1818
mmoroz565e8df22016-03-04 18:17:201819fuzzer_test("net_parse_proxy_rules_fuzzer") {
eromane6264fd2016-03-02 22:46:301820 sources = [
1821 "proxy/parse_proxy_rules_fuzzer.cc",
1822 ]
1823 deps = [
eroman02b4fe562016-03-04 12:15:161824 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301825 "//net",
1826 ]
1827}
1828
mmoroz565e8df22016-03-04 18:17:201829fuzzer_test("net_parse_data_url_fuzzer") {
eromane6264fd2016-03-02 22:46:301830 sources = [
1831 "base/parse_data_url_fuzzer.cc",
1832 ]
1833 deps = [
eroman02b4fe562016-03-04 12:15:161834 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301835 "//base",
1836 "//net",
1837 ]
1838}
1839
mmoroz565e8df22016-03-04 18:17:201840fuzzer_test("net_parse_ip_pattern_fuzzer") {
eromane6264fd2016-03-02 22:46:301841 sources = [
1842 "base/parse_ip_pattern_fuzzer.cc",
1843 ]
1844 deps = [
eroman02b4fe562016-03-04 12:15:161845 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301846 "//net",
1847 ]
1848}
1849
mmoroz565e8df22016-03-04 18:17:201850fuzzer_test("net_get_domain_and_registry_fuzzer") {
eromane6264fd2016-03-02 22:46:301851 sources = [
1852 "base/registry_controlled_domains/get_domain_and_registry_fuzzer.cc",
1853 ]
1854 deps = [
eroman02b4fe562016-03-04 12:15:161855 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301856 "//base",
eromane6264fd2016-03-02 22:46:301857 "//net",
1858 ]
1859}
1860
mmoroz565e8df22016-03-04 18:17:201861fuzzer_test("net_parse_cookie_line_fuzzer") {
eromane6264fd2016-03-02 22:46:301862 sources = [
1863 "cookies/parse_cookie_line_fuzzer.cc",
1864 ]
1865 deps = [
eroman02b4fe562016-03-04 12:15:161866 ":net_fuzzer_test_support",
eromane6264fd2016-03-02 22:46:301867 "//net",
1868 ]
1869}
1870
mmoroz565e8df22016-03-04 18:17:201871fuzzer_test("net_dns_record_fuzzer") {
eromanfe8659e2016-03-02 23:47:021872 sources = [
1873 "dns/dns_record_fuzzer.cc",
1874 ]
1875 deps = [
eroman02b4fe562016-03-04 12:15:161876 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021877 "//base",
1878 "//net",
1879 ]
1880}
1881
mmenke44e8e9c2016-03-29 18:38:571882fuzzer_test("net_http_stream_parser_fuzzer") {
1883 sources = [
1884 "http/http_stream_parser_fuzzer.cc",
1885 ]
1886 deps = [
1887 ":net_fuzzer_test_support",
1888 ":test_support",
1889 "//base",
1890 "//net",
1891 ]
1892}
1893
mmoroz565e8df22016-03-04 18:17:201894fuzzer_test("net_ftp_ctrl_response_fuzzer") {
eromanfe8659e2016-03-02 23:47:021895 sources = [
1896 "ftp/ftp_ctrl_response_fuzzer.cc",
1897 ]
1898 deps = [
eroman02b4fe562016-03-04 12:15:161899 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021900 "//base",
1901 "//net",
1902 ]
1903}
1904
mmoroz565e8df22016-03-04 18:17:201905fuzzer_test("net_ftp_directory_listing_fuzzer") {
eromanfe8659e2016-03-02 23:47:021906 sources = [
1907 "ftp/ftp_directory_listing_fuzzer.cc",
1908 ]
1909 deps = [
eroman02b4fe562016-03-04 12:15:161910 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021911 "//base",
eromanfe8659e2016-03-02 23:47:021912 "//net",
1913 ]
1914}
1915
mmoroz565e8df22016-03-04 18:17:201916fuzzer_test("net_unescape_url_component_fuzzer") {
eromanfe8659e2016-03-02 23:47:021917 sources = [
1918 "base/unescape_url_component_fuzzer.cc",
1919 ]
1920 deps = [
eroman02b4fe562016-03-04 12:15:161921 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021922 "//base",
1923 "//net",
1924 ]
mmoroz34eb0082016-03-11 14:32:011925 dict = "base/unescape_url_component_fuzzer.dict"
1926 libfuzzer_options = "base/unescape_url_component_fuzzer.options"
eromanfe8659e2016-03-02 23:47:021927}
1928
mmoroz565e8df22016-03-04 18:17:201929fuzzer_test("net_websocket_frame_parser_fuzzer") {
eromanfe8659e2016-03-02 23:47:021930 sources = [
1931 "websockets/websocket_frame_parser_fuzzer.cc",
1932 ]
1933 deps = [
eroman02b4fe562016-03-04 12:15:161934 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021935 "//net",
1936 ]
1937}
1938
mmoroz565e8df22016-03-04 18:17:201939fuzzer_test("net_http_chunked_decoder_fuzzer") {
eromanfe8659e2016-03-02 23:47:021940 sources = [
1941 "http/http_chunked_decoder_fuzzer.cc",
1942 ]
1943 deps = [
eroman02b4fe562016-03-04 12:15:161944 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021945 "//net",
1946 ]
mmoroz5fa27922016-03-22 19:42:191947 dict = "http/http_chunked_decoder_fuzzer.dict"
eromanfe8659e2016-03-02 23:47:021948}
1949
mmoroz565e8df22016-03-04 18:17:201950fuzzer_test("net_quic_crypto_framer_parse_message_fuzzer") {
eromanfe8659e2016-03-02 23:47:021951 sources = [
1952 "quic/quic_crypto_framer_parse_message_fuzzer.cc",
1953 ]
1954 deps = [
eroman02b4fe562016-03-04 12:15:161955 ":net_fuzzer_test_support",
eromanfe8659e2016-03-02 23:47:021956 "//base",
1957 "//net",
1958 ]
1959}