blob: fd192f1756442b6f58aed25de204d766e7d65884 [file] [log] [blame]
Randy Smithb62069432017-12-29 15:27:071# Copyright 2017 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
Daniel Bratell0d1660e82018-09-14 08:08:065import("//build/config/jumbo.gni")
Randy Smithb62069432017-12-29 15:27:076import("//mojo/public/tools/bindings/mojom.gni")
John Abd-El-Malekba4ede22018-01-31 02:42:427import("//services/catalog/public/tools/catalog.gni")
8import("//services/service_manager/public/cpp/service.gni")
John Abd-El-Malek3bbbdf92018-01-30 03:27:359import("//services/service_manager/public/service_manifest.gni")
John Abd-El-Malekba4ede22018-01-31 02:42:4210import("//services/service_manager/public/tools/test/service_test.gni")
Randy Smithb62069432017-12-29 15:27:0711
Daniel Bratell0d1660e82018-09-14 08:08:0612jumbo_component("network_service") {
Randy Smithb62069432017-12-29 15:27:0713 sources = [
Ryan Sleevi24fe2682018-08-16 21:33:4614 "cert_verifier_config_type_converter.cc",
15 "cert_verifier_config_type_converter.h",
Matt Menkea8406df2018-03-07 21:46:5816 "chunked_data_pipe_upload_data_stream.cc",
17 "chunked_data_pipe_upload_data_stream.h",
Jay Civelli78612bf2018-03-01 20:59:1218 "conditional_cache_deletion_helper.cc",
19 "conditional_cache_deletion_helper.h",
Randy Smithb62069432017-12-29 15:27:0720 "cookie_manager.cc",
21 "cookie_manager.h",
Clark DuVall385b5a52018-06-14 21:33:3222 "cookie_settings.cc",
23 "cookie_settings.h",
Takashi Toyoshima1139efa2018-04-10 07:33:1524 "cors/cors_url_loader.cc",
25 "cors/cors_url_loader.h",
26 "cors/cors_url_loader_factory.cc",
27 "cors/cors_url_loader_factory.h",
Takashi Toyoshima63231ede32018-02-26 08:52:5328 "cors/preflight_controller.cc",
29 "cors/preflight_controller.h",
Ryan Sleevib369d712018-08-20 16:43:2230 "crl_set_distributor.cc",
31 "crl_set_distributor.h",
Lukasz Anforowicza9a7e8832018-03-08 00:59:5532 "cross_origin_read_blocking.cc",
33 "cross_origin_read_blocking.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:3534 "data_pipe_element_reader.cc",
35 "data_pipe_element_reader.h",
Lukasz Anforowicz41f16fe2018-06-26 16:53:2836 "empty_url_loader_client.cc",
37 "empty_url_loader_client.h",
John Abd-El-Malekffaf5cc2018-06-18 17:36:5838 "expect_ct_reporter.cc",
39 "expect_ct_reporter.h",
Eric Orthf9cdaf52018-08-15 20:00:3040 "host_resolver.cc",
41 "host_resolver.h",
Maks Orlovich040a0dd2018-07-06 18:28:4542 "http_cache_data_counter.cc",
43 "http_cache_data_counter.h",
Jay Civelli78612bf2018-03-01 20:59:1244 "http_cache_data_remover.cc",
45 "http_cache_data_remover.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:3546 "http_server_properties_pref_delegate.cc",
47 "http_server_properties_pref_delegate.h",
John Abd-El-Malek89c02ae2018-02-01 01:56:1948 "ignore_errors_cert_verifier.cc",
49 "ignore_errors_cert_verifier.h",
Yutaka Hirano92f51cda2018-02-02 01:42:0150 "keepalive_statistics_recorder.cc",
51 "keepalive_statistics_recorder.h",
John Abd-El-Malek89c02ae2018-02-01 01:56:1952 "loader_util.cc",
53 "loader_util.h",
Maks Orlovicha3905222018-04-19 16:16:3154 "mojo_net_log.cc",
55 "mojo_net_log.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:3556 "network_change_manager.cc",
57 "network_change_manager.h",
58 "network_context.cc",
59 "network_context.h",
Tarun Bansalcd6a6cb2018-06-27 22:03:2260 "network_quality_estimator_manager.cc",
61 "network_quality_estimator_manager.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:3562 "network_sandbox_hook_linux.cc",
63 "network_sandbox_hook_linux.h",
Penny MacNeildad9bdb52018-05-17 19:53:5764 "network_sandbox_win.cc",
65 "network_sandbox_win.h",
John Abd-El-Malek8e82a322018-01-31 20:30:4766 "network_service.cc",
67 "network_service.h",
John Abd-El-Malek22d1b1e2018-05-17 17:22:1868 "network_service_network_delegate.cc",
69 "network_service_network_delegate.h",
Chong Zhang53047762018-05-02 21:24:0870 "network_usage_accumulator.cc",
71 "network_usage_accumulator.h",
John Abd-El-Malek88ba9d162018-08-04 20:57:3172 "p2p/socket.cc",
73 "p2p/socket.h",
74 "p2p/socket_manager.cc",
75 "p2p/socket_manager.h",
76 "p2p/socket_tcp.cc",
77 "p2p/socket_tcp.h",
78 "p2p/socket_tcp_server.cc",
79 "p2p/socket_tcp_server.h",
80 "p2p/socket_throttler.cc",
81 "p2p/socket_throttler.h",
82 "p2p/socket_udp.cc",
83 "p2p/socket_udp.h",
John Abd-El-Malek3ea98672018-01-17 20:33:0684 "proxy_config_service_mojo.cc",
85 "proxy_config_service_mojo.h",
Matt Menke4dfa2172018-08-02 15:27:4786 "proxy_lookup_request.cc",
87 "proxy_lookup_request.h",
John Abd-El-Malek89c02ae2018-02-01 01:56:1988 "proxy_resolving_client_socket.cc",
89 "proxy_resolving_client_socket.h",
90 "proxy_resolving_client_socket_factory.cc",
91 "proxy_resolving_client_socket_factory.h",
Helen Licc515752018-06-14 19:47:5492 "proxy_resolving_socket_factory_mojo.cc",
93 "proxy_resolving_socket_factory_mojo.h",
94 "proxy_resolving_socket_mojo.cc",
95 "proxy_resolving_socket_mojo.h",
Eric Orth59fa7f82018-08-02 21:22:1596 "resolve_host_request.cc",
97 "resolve_host_request.h",
Yutaka Hirano4cd4e302018-02-01 17:38:0098 "resource_scheduler.cc",
99 "resource_scheduler.h",
Yutaka Hiranoc9f631a2018-02-13 08:56:27100 "resource_scheduler_client.cc",
101 "resource_scheduler_client.h",
Tarun Bansal91ad10f2018-05-17 20:22:06102 "resource_scheduler_params_manager.cc",
103 "resource_scheduler_params_manager.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35104 "restricted_cookie_manager.cc",
105 "restricted_cookie_manager.h",
Clark DuValla7501a22018-06-20 17:34:02106 "session_cleanup_channel_id_store.cc",
107 "session_cleanup_channel_id_store.h",
Clark DuVall385b5a52018-06-14 21:33:32108 "session_cleanup_cookie_store.cc",
109 "session_cleanup_cookie_store.h",
Helen Li17c77ccb2018-04-19 21:29:18110 "socket_data_pump.cc",
111 "socket_data_pump.h",
Helen Lid8672462018-03-15 16:10:12112 "socket_factory.cc",
113 "socket_factory.h",
Matt Menke5958d322018-05-21 21:52:57114 "ssl_config_service_mojo.cc",
115 "ssl_config_service_mojo.h",
116 "ssl_config_type_converter.cc",
117 "ssl_config_type_converter.h",
Matt Menke701f1422018-09-04 17:31:39118 "tcp_bound_socket.cc",
119 "tcp_bound_socket.h",
Helen Lid8672462018-03-15 16:10:12120 "tcp_connected_socket.cc",
121 "tcp_connected_socket.h",
122 "tcp_server_socket.cc",
123 "tcp_server_socket.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35124 "throttling/network_conditions.cc",
125 "throttling/network_conditions.h",
Tsuyoshi Horoc1ab7122018-06-19 05:48:13126 "throttling/scoped_throttling_token.cc",
127 "throttling/scoped_throttling_token.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35128 "throttling/throttling_controller.cc",
129 "throttling/throttling_controller.h",
130 "throttling/throttling_network_interceptor.cc",
131 "throttling/throttling_network_interceptor.h",
132 "throttling/throttling_network_transaction.cc",
133 "throttling/throttling_network_transaction.h",
134 "throttling/throttling_network_transaction_factory.cc",
135 "throttling/throttling_network_transaction_factory.h",
136 "throttling/throttling_upload_data_stream.cc",
137 "throttling/throttling_upload_data_stream.h",
Helen Lia6d3b2c2018-05-08 16:09:07138 "tls_client_socket.cc",
139 "tls_client_socket.h",
Maks Orlovich38ff9682018-09-05 18:25:57140 "tls_socket_factory.cc",
141 "tls_socket_factory.h",
Maks Orlovich98fa4e62018-08-13 13:35:28142 "transitional_url_loader_factory_owner.cc",
143 "transitional_url_loader_factory_owner.h",
Helen Li8dd1fbe02018-01-22 21:48:08144 "udp_socket.cc",
145 "udp_socket.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35146 "upload_progress_tracker.cc",
147 "upload_progress_tracker.h",
148 "url_loader.cc",
149 "url_loader.h",
John Abd-El-Malekdc106a822018-02-09 00:00:40150 "url_loader_factory.cc",
151 "url_loader_factory.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35152 "url_request_context_builder_mojo.cc",
John Abd-El-Malek8e82a322018-01-31 20:30:47153 "url_request_context_builder_mojo.h",
John Abd-El-Malek4556c6b02018-02-01 22:11:23154 "url_request_context_owner.cc",
155 "url_request_context_owner.h",
Randy Smithb62069432017-12-29 15:27:07156 ]
157
Yutaka Hirano24632bb2018-03-23 08:55:12158 if (!is_ios) {
159 sources += [
160 "websocket.cc",
161 "websocket.h",
162 "websocket_factory.cc",
163 "websocket_factory.h",
Yutaka Hirano8e55d7a2018-03-26 12:28:42164 "websocket_throttler.cc",
165 "websocket_throttler.h",
Yutaka Hirano24632bb2018-03-23 08:55:12166 ]
167 }
168
Randy Smithb62069432017-12-29 15:27:07169 deps = [
170 "//base",
Doug Turner9e79cf0c2018-04-05 21:32:30171 "//components/certificate_transparency",
Clark DuVall385b5a52018-06-14 21:33:32172 "//components/content_settings/core/common",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35173 "//components/cookie_config",
174 "//components/network_session_configurator/browser",
175 "//components/network_session_configurator/common",
Clark DuVall1c6f0e12018-07-06 17:31:34176 "//components/os_crypt",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35177 "//components/prefs",
John Abd-El-Malek88ba9d162018-08-04 20:57:31178 "//jingle:jingle_fake_socket",
Randy Smithb62069432017-12-29 15:27:07179 "//mojo/public/cpp/bindings",
Oksana Zhuravlova10e89832018-03-30 21:49:14180 "//mojo/public/cpp/system",
Randy Smithb62069432017-12-29 15:27:07181 "//net",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35182 "//net:extras",
183 "//services/network/public/cpp",
Ken Rockot54311e62018-02-10 19:01:52184 "//services/network/public/mojom",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35185 "//services/service_manager/public/cpp",
Ken Rockot543f5e32018-02-04 02:13:50186 "//services/service_manager/public/mojom",
Penny MacNeildad9bdb52018-05-17 19:53:57187 "//services/service_manager/sandbox:sandbox",
John Abd-El-Malek88ba9d162018-08-04 20:57:31188 "//third_party/webrtc/media:rtc_media_base",
189 "//third_party/webrtc/rtc_base",
190 "//third_party/webrtc_overrides",
191 "//third_party/webrtc_overrides:init_webrtc",
Randy Smithb62069432017-12-29 15:27:07192 "//url",
193 ]
John Abd-El-Malek3bbbdf92018-01-30 03:27:35194
195 if (is_linux) {
196 deps += [
197 "//sandbox/linux:sandbox_services",
198 "//services/service_manager/sandbox:sandbox",
199 ]
200 }
201
Matt Menke0be4d072018-06-18 17:17:23202 if (is_android) {
203 deps += [
204 "//crypto",
205 "//third_party/boringssl",
206 ]
207 }
208
Penny MacNeildad9bdb52018-05-17 19:53:57209 if (is_win) {
210 deps += [ "//sandbox/win:sandbox" ]
211 }
212
Eric Roman4102bdc52018-09-12 19:14:28213 sources += [
214 "proxy_resolver_factory_mojo.cc",
215 "proxy_resolver_factory_mojo.h",
216 "proxy_service_mojo.cc",
217 "proxy_service_mojo.h",
218 ]
219 deps += [ "//net/dns:mojo_service" ]
John Abd-El-Malek8e82a322018-01-31 20:30:47220
221 defines = [ "IS_NETWORK_SERVICE_IMPL" ]
Clark DuVall1c6f0e12018-07-06 17:31:34222
223 if (is_chromecast) {
224 defines += [ "IS_CHROMECAST" ]
225 }
Randy Smithb62069432017-12-29 15:27:07226}
227
228source_set("tests") {
229 testonly = true
230
231 sources = [
Matt Menkea8406df2018-03-07 21:46:58232 "chunked_data_pipe_upload_data_stream_unittest.cc",
Randy Smithb62069432017-12-29 15:27:07233 "cookie_manager_unittest.cc",
Clark DuVall385b5a52018-06-14 21:33:32234 "cookie_settings_unittest.cc",
Takashi Toyoshima63231ede32018-02-26 08:52:53235 "cors/cors_url_loader_unittest.cc",
236 "cors/preflight_controller_unittest.cc",
Lukasz Anforowicza9a7e8832018-03-08 00:59:55237 "cross_origin_read_blocking_unittest.cc",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35238 "data_pipe_element_reader_unittest.cc",
John Abd-El-Malekffaf5cc2018-06-18 17:36:58239 "expect_ct_reporter_unittest.cc",
Eric Orthf9cdaf52018-08-15 20:00:30240 "host_resolver_unittest.cc",
Maks Orlovich040a0dd2018-07-06 18:28:45241 "http_cache_data_counter_unittest.cc",
Jay Civelli78612bf2018-03-01 20:59:12242 "http_cache_data_remover_unittest.cc",
John Abd-El-Malek89c02ae2018-02-01 01:56:19243 "ignore_errors_cert_verifier_unittest.cc",
Yutaka Hirano92f51cda2018-02-02 01:42:01244 "keepalive_statistics_recorder_unittest.cc",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35245 "network_change_manager_unittest.cc",
246 "network_context_unittest.cc",
Tarun Bansalcd6a6cb2018-06-27 22:03:22247 "network_quality_estimator_manager_unittest.cc",
John Abd-El-Malekcfb3fae2018-02-05 19:29:45248 "network_service_unittest.cc",
Chong Zhang53047762018-05-02 21:24:08249 "network_usage_accumulator_unittest.cc",
John Abd-El-Malek88ba9d162018-08-04 20:57:31250 "p2p/socket_tcp_server_unittest.cc",
251 "p2p/socket_tcp_unittest.cc",
252 "p2p/socket_test_utils.cc",
253 "p2p/socket_test_utils.h",
254 "p2p/socket_udp_unittest.cc",
John Abd-El-Malek3ea98672018-01-17 20:33:06255 "proxy_config_service_mojo_unittest.cc",
John Abd-El-Malek89c02ae2018-02-01 01:56:19256 "proxy_resolving_client_socket_unittest.cc",
Helen Licc515752018-06-14 19:47:54257 "proxy_resolving_socket_mojo_unittest.cc",
Tarun Bansal91ad10f2018-05-17 20:22:06258 "resource_scheduler_params_manager_unittest.cc",
Yutaka Hirano4cd4e302018-02-01 17:38:00259 "resource_scheduler_unittest.cc",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35260 "restricted_cookie_manager_unittest.cc",
Clark DuValla7501a22018-06-20 17:34:02261 "session_cleanup_channel_id_store_unittest.cc",
Clark DuVall385b5a52018-06-14 21:33:32262 "session_cleanup_cookie_store_unittest.cc",
Helen Li17c77ccb2018-04-19 21:29:18263 "socket_data_pump_unittest.cc",
Matt Menke5958d322018-05-21 21:52:57264 "ssl_config_service_mojo_unittest.cc",
Matt Menke701f1422018-09-04 17:31:39265 "tcp_bound_socket_unittest.cc",
Helen Lid8672462018-03-15 16:10:12266 "tcp_socket_unittest.cc",
John Abd-El-Malek7730c51c2018-02-09 19:22:29267 "test/test_url_loader_factory_unittest.cc",
Matt Menkea8406df2018-03-07 21:46:58268 "test_chunked_data_pipe_getter.cc",
269 "test_chunked_data_pipe_getter.h",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35270 "throttling/throttling_controller_unittest.cc",
Helen Lia6d3b2c2018-05-08 16:09:07271 "tls_client_socket_unittest.cc",
Maks Orlovich98fa4e62018-08-13 13:35:28272 "transitional_url_loader_factory_owner_unittest.cc",
Helen Li8dd1fbe02018-01-22 21:48:08273 "udp_socket_unittest.cc",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35274 "upload_progress_tracker_unittest.cc",
John Abd-El-Malek3d915b2172018-01-31 18:58:00275 "url_loader_unittest.cc",
Randy Smithb62069432017-12-29 15:27:07276 ]
277
John Abd-El-Malek3bbbdf92018-01-30 03:27:35278 if (!is_ios) {
Yutaka Hirano8e55d7a2018-03-26 12:28:42279 sources += [
Ryan Sleevi84d795bc2018-05-09 07:06:00280 "network_context_cert_transparency_unittest.cc",
Yutaka Hirano8e55d7a2018-03-26 12:28:42281 "proxy_resolver_factory_mojo_unittest.cc",
282 "websocket_throttler_unittest.cc",
283 ]
Matt Menkeae4fdb12018-06-02 06:32:54284
285 data = [
286 "//net/tools/testserver/",
287 "//services/test/data",
288 "//third_party/pyftpdlib/",
Takuto Ikuta7ff839d2018-08-09 03:15:36289 "//third_party/pywebsocket/src/mod_pywebsocket/",
Matt Menkeae4fdb12018-06-02 06:32:54290 "//third_party/tlslite/",
291 ]
John Abd-El-Malek3bbbdf92018-01-30 03:27:35292 }
293
Randy Smithb62069432017-12-29 15:27:07294 deps = [
John Abd-El-Malek3bbbdf92018-01-30 03:27:35295 ":network_service",
Helen Li8dd1fbe02018-01-22 21:48:08296 ":test_support",
Randy Smithb62069432017-12-29 15:27:07297 "//base",
Ryan Sleevi84d795bc2018-05-09 07:06:00298 "//components/certificate_transparency",
John Abd-El-Malek3bbbdf92018-01-30 03:27:35299 "//components/network_session_configurator/browser",
John Abd-El-Malek88ba9d162018-08-04 20:57:31300 "//jingle:jingle_fake_socket",
Ken Rockot8a7f35f2018-07-04 19:40:56301 "//mojo/core/embedder",
Randy Smithb62069432017-12-29 15:27:07302 "//mojo/public/cpp/bindings",
Oksana Zhuravlova10e89832018-03-30 21:49:14303 "//mojo/public/cpp/system",
Randy Smithb62069432017-12-29 15:27:07304 "//net",
Clark DuVall385b5a52018-06-14 21:33:32305 "//net:extras",
Randy Smithb62069432017-12-29 15:27:07306 "//net:test_support",
Lei Zhang23267b82018-01-30 23:39:43307 "//services/network/public/cpp",
Ken Rockot54311e62018-02-10 19:01:52308 "//services/network/public/mojom",
John Abd-El-Malekba4ede22018-01-31 02:42:42309 "//services/service_manager/public/cpp",
310 "//services/service_manager/public/cpp:service_test_support",
Randy Smithb62069432017-12-29 15:27:07311 "//testing/gtest",
312 ]
313}
Matt Falkenhagen3662ebc2018-01-18 10:35:53314
Daniel Bratell0d1660e82018-09-14 08:08:06315jumbo_source_set("test_support") {
Matt Falkenhagen3662ebc2018-01-18 10:35:53316 testonly = true
317
318 sources = [
Helen Lia6d3b2c2018-05-08 16:09:07319 "mojo_socket_test_util.cc",
320 "mojo_socket_test_util.h",
Matt Falkenhagen3662ebc2018-01-18 10:35:53321 "test/test_data_pipe_getter.cc",
John Abd-El-Malekd0cd7c5c2018-01-30 07:20:02322 "test/test_data_pipe_getter.h",
Robbie McElrathb797c412018-08-06 22:18:15323 "test/test_network_connection_tracker.cc",
324 "test/test_network_connection_tracker.h",
Eric Orth83ba87a2018-04-27 23:52:38325 "test/test_network_context.h",
Tarun Bansal8649d8eef2018-08-14 22:51:42326 "test/test_network_quality_tracker.cc",
327 "test/test_network_quality_tracker.h",
Robbie McElrath5e11b282018-06-29 19:28:55328 "test/test_network_service_client.cc",
329 "test/test_network_service_client.h",
John Abd-El-Malek0a52618c2018-06-19 18:06:04330 "test/test_shared_url_loader_factory.cc",
331 "test/test_shared_url_loader_factory.h",
John Abd-El-Malekd0cd7c5c2018-01-30 07:20:02332 "test/test_url_loader_client.cc",
333 "test/test_url_loader_client.h",
John Abd-El-Malek7730c51c2018-02-09 19:22:29334 "test/test_url_loader_factory.cc",
335 "test/test_url_loader_factory.h",
John Abd-El-Malek2c58b142018-06-28 14:40:30336 "test/test_utils.cc",
337 "test/test_utils.h",
Helen Li8dd1fbe02018-01-22 21:48:08338 "udp_socket_test_util.cc",
339 "udp_socket_test_util.h",
Matt Falkenhagen3662ebc2018-01-18 10:35:53340 ]
341
Helen Li8bdbe682018-06-14 00:51:21342 public_deps = [
343 "//services/network/public/cpp",
344 "//services/network/public/mojom",
345 ]
346
Matt Falkenhagen3662ebc2018-01-18 10:35:53347 deps = [
348 "//base",
349 "//mojo/public/cpp/bindings",
Helen Li8dd1fbe02018-01-22 21:48:08350 "//net",
Helen Lie7efd152018-01-29 19:04:26351 "//net:test_support",
Matt Falkenhagen3662ebc2018-01-18 10:35:53352 "//services/network:network_service",
Matt Falkenhagen3662ebc2018-01-18 10:35:53353 "//testing/gtest",
354 ]
355}
John Abd-El-Malek3bbbdf92018-01-30 03:27:35356
357service_manifest("manifest") {
358 name = "network"
359 source = "manifest.json"
360}
John Abd-El-Malekba4ede22018-01-31 02:42:42361
362service_manifest("unittest_manifest") {
363 name = "network_unittests"
364 source = "test/service_unittest_manifest.json"
365 packaged_services = [ ":manifest" ]
366}
367
368catalog("tests_catalog") {
369 testonly = true
370 embedded_services = [ ":unittest_manifest" ]
371}