tree: fcf67e5341b4abedd4bbf17b86deaee0131771ac [path history] [tgz]
  1. cors/
  2. origin_policy/
  3. p2p/
  4. public/
  5. resource_scheduler/
  6. test/
  7. throttling/
  8. trust_tokens/
  9. BUILD.gn
  10. cert_verifier_with_trust_anchors.cc
  11. cert_verifier_with_trust_anchors.h
  12. cert_verifier_with_trust_anchors_unittest.cc
  13. chunked_data_pipe_upload_data_stream.cc
  14. chunked_data_pipe_upload_data_stream.h
  15. chunked_data_pipe_upload_data_stream_unittest.cc
  16. conditional_cache_deletion_helper.cc
  17. conditional_cache_deletion_helper.h
  18. content_security_policy_fuzzer.cc
  19. cookie_access_delegate_impl.cc
  20. cookie_access_delegate_impl.h
  21. cookie_manager.cc
  22. cookie_manager.h
  23. cookie_manager_unittest.cc
  24. cookie_settings.cc
  25. cookie_settings.h
  26. cookie_settings_unittest.cc
  27. crash_keys.cc
  28. crash_keys.h
  29. crl_set_distributor.cc
  30. crl_set_distributor.h
  31. cross_origin_read_blocking.cc
  32. cross_origin_read_blocking.h
  33. cross_origin_read_blocking_explainer.md
  34. cross_origin_read_blocking_unittest.cc
  35. data_pipe_element_reader.cc
  36. data_pipe_element_reader.h
  37. data_pipe_element_reader_unittest.cc
  38. DEPS
  39. dhcp_pac_file_fetcher_mojo.cc
  40. dhcp_pac_file_fetcher_mojo.h
  41. dhcp_pac_file_fetcher_mojo_unittest.cc
  42. dns_config_change_manager.cc
  43. dns_config_change_manager.h
  44. dns_config_change_manager_unittest.cc
  45. empty_url_loader_client.cc
  46. empty_url_loader_client.h
  47. expect_ct_reporter.cc
  48. expect_ct_reporter.h
  49. expect_ct_reporter_unittest.cc
  50. host_resolver.cc
  51. host_resolver.h
  52. host_resolver_mdns_listener.cc
  53. host_resolver_mdns_listener.h
  54. host_resolver_unittest.cc
  55. http_auth_cache_copier.cc
  56. http_auth_cache_copier.h
  57. http_cache_data_counter.cc
  58. http_cache_data_counter.h
  59. http_cache_data_counter_unittest.cc
  60. http_cache_data_remover.cc
  61. http_cache_data_remover.h
  62. http_cache_data_remover_unittest.cc
  63. http_server_properties_pref_delegate.cc
  64. http_server_properties_pref_delegate.h
  65. ignore_errors_cert_verifier.cc
  66. ignore_errors_cert_verifier.h
  67. ignore_errors_cert_verifier_unittest.cc
  68. keepalive_statistics_recorder.cc
  69. keepalive_statistics_recorder.h
  70. keepalive_statistics_recorder_unittest.cc
  71. legacy_tls_config_distributor.cc
  72. legacy_tls_config_distributor.h
  73. mdns_responder.cc
  74. mdns_responder.h
  75. mdns_responder_unittest.cc
  76. mock_mojo_dhcp_wpad_url_client.cc
  77. mock_mojo_dhcp_wpad_url_client.h
  78. mojo_host_resolver_impl.cc
  79. mojo_host_resolver_impl.h
  80. mojo_host_resolver_impl_unittest.cc
  81. mojo_socket_test_util.cc
  82. mojo_socket_test_util.h
  83. net_log_exporter.cc
  84. net_log_exporter.h
  85. net_log_proxy_sink.cc
  86. net_log_proxy_sink.h
  87. net_log_proxy_sink_unittest.cc
  88. network_change_manager.cc
  89. network_change_manager.h
  90. network_change_manager_unittest.cc
  91. network_context.cc
  92. network_context.h
  93. network_context_unittest.cc
  94. network_qualities_pref_delegate.cc
  95. network_qualities_pref_delegate.h
  96. network_qualities_pref_delegate_unittest.cc
  97. network_quality_estimator_manager.cc
  98. network_quality_estimator_manager.h
  99. network_quality_estimator_manager_unittest.cc
  100. network_sandbox_hook_linux.cc
  101. network_sandbox_hook_linux.h
  102. network_sandbox_win.cc
  103. network_sandbox_win.h
  104. network_service.cc
  105. network_service.h
  106. network_service_network_delegate.cc
  107. network_service_network_delegate.h
  108. network_service_proxy_delegate.cc
  109. network_service_proxy_delegate.h
  110. network_service_proxy_delegate_unittest.cc
  111. network_service_unittest.cc
  112. network_usage_accumulator.cc
  113. network_usage_accumulator.h
  114. network_usage_accumulator_unittest.cc
  115. nss_temp_certs_cache_chromeos.cc
  116. nss_temp_certs_cache_chromeos.h
  117. nss_temp_certs_cache_chromeos_unittest.cc
  118. OWNERS
  119. pending_callback_chain.cc
  120. pending_callback_chain.h
  121. pending_callback_chain_unittest.cc
  122. proxy_auto_config_library.cc
  123. proxy_auto_config_library.h
  124. proxy_auto_config_library_unittest.cc
  125. proxy_config_service_mojo.cc
  126. proxy_config_service_mojo.h
  127. proxy_config_service_mojo_unittest.cc
  128. proxy_lookup_request.cc
  129. proxy_lookup_request.h
  130. proxy_resolver_factory_mojo.cc
  131. proxy_resolver_factory_mojo.h
  132. proxy_resolver_factory_mojo_unittest.cc
  133. proxy_resolving_client_socket.cc
  134. proxy_resolving_client_socket.h
  135. proxy_resolving_client_socket_factory.cc
  136. proxy_resolving_client_socket_factory.h
  137. proxy_resolving_client_socket_unittest.cc
  138. proxy_resolving_socket_factory_mojo.cc
  139. proxy_resolving_socket_factory_mojo.h
  140. proxy_resolving_socket_mojo.cc
  141. proxy_resolving_socket_mojo.h
  142. proxy_resolving_socket_mojo_unittest.cc
  143. proxy_service_mojo.cc
  144. proxy_service_mojo.h
  145. proxy_service_mojo_unittest.cc
  146. quic_transport.cc
  147. quic_transport.h
  148. quic_transport_unittest.cc
  149. README.md
  150. resolve_host_request.cc
  151. resolve_host_request.h
  152. restricted_cookie_manager.cc
  153. restricted_cookie_manager.h
  154. restricted_cookie_manager_unittest.cc
  155. sec_header_helpers.cc
  156. sec_header_helpers.h
  157. sec_header_helpers_unittest.cc
  158. session_cleanup_cookie_store.cc
  159. session_cleanup_cookie_store.h
  160. session_cleanup_cookie_store_unittest.cc
  161. socket_data_pump.cc
  162. socket_data_pump.h
  163. socket_data_pump_unittest.cc
  164. socket_factory.cc
  165. socket_factory.h
  166. ssl_config_service_mojo.cc
  167. ssl_config_service_mojo.h
  168. ssl_config_service_mojo_unittest.cc
  169. ssl_config_type_converter.cc
  170. ssl_config_type_converter.h
  171. tcp_bound_socket.cc
  172. tcp_bound_socket.h
  173. tcp_bound_socket_unittest.cc
  174. tcp_connected_socket.cc
  175. tcp_connected_socket.h
  176. tcp_server_socket.cc
  177. tcp_server_socket.h
  178. tcp_socket_unittest.cc
  179. test_chunked_data_pipe_getter.cc
  180. test_chunked_data_pipe_getter.h
  181. test_mojo_proxy_resolver_factory.cc
  182. test_mojo_proxy_resolver_factory.h
  183. tls_client_socket.cc
  184. tls_client_socket.h
  185. tls_client_socket_unittest.cc
  186. tls_socket_factory.cc
  187. tls_socket_factory.h
  188. transitional_url_loader_factory_owner.cc
  189. transitional_url_loader_factory_owner.h
  190. transitional_url_loader_factory_owner_unittest.cc
  191. udp_socket.cc
  192. udp_socket.h
  193. udp_socket_test_util.cc
  194. udp_socket_test_util.h
  195. udp_socket_unittest.cc
  196. upload_progress_tracker.cc
  197. upload_progress_tracker.h
  198. upload_progress_tracker_unittest.cc
  199. url_loader.cc
  200. url_loader.h
  201. url_loader_factory.cc
  202. url_loader_factory.h
  203. url_loader_unittest.cc
  204. url_request_context_builder_mojo.cc
  205. url_request_context_builder_mojo.h
  206. url_request_context_builder_mojo_unittest.cc
  207. url_request_context_owner.cc
  208. url_request_context_owner.h
  209. websocket.cc
  210. websocket.h
  211. websocket_factory.cc
  212. websocket_factory.h
  213. websocket_throttler.cc
  214. websocket_throttler.h
  215. websocket_throttler_unittest.cc
services/network/README.md

Network Service

This is a service for networking. It‘s meant to be oblivious to Chrome’s features. Some design goals

  • this only contains features that go over the network. e.g. no file loading, data URLs etc...
  • only the lowest-level of networking should be here. e.g. http, sockets, web sockets. Anything that is built on top of this should be in higher layers.
  • higher level web platform and browser features should be built outside of this code. Safe browsing, Service Worker, extensions, devtools etc... should not have hooks here. The only exception is when it's impossible for these features to function without some hooks in the network service. In that case, we add the minimal code required. Some examples included traffic shaping for devtools and CORB blocking.
  • every PostTask, thread hop and process hop (IPC) should be counted carefully as they introduce delays which could harm this performance critical code.
  • NetworkContext and NetworkService are trusted interfaces that aren't meant to be sent to the renderer. Only the browser should have access to them.

See https://bugs.chromium.org/p/chromium/issues/detail?id=598073

See the design doc https://docs.google.com/document/d/1wAHLw9h7gGuqJNCgG1mP1BmLtCGfZ2pys-PdZQ1vg7M/edit?pref=2&pli=1#

Buildbot

The Network Service Linux buildbot runs browser tests with the network service in non-default but supported configurations. Ideally this bot would be on the CQ, but it is expensive and would affect CQ time, so it's on the main waterfall but not the CQ.

Its steps are:

  • network_service_in_process_browser_tests: Runs browser_tests with the network service in-process (--enable-features=NetworkServiceInProcess). This step is important because Chrome on Android runs with the network service in-process by default (https://crbug.com/1049008). However, browser_tests are not well-supported on Android (https://crbug.com/611756), so we run them on this Linux bot. Furthermore, there is a flag and group policy to run the network service in-process on Desktop, but there are efforts to remove this (https://crbug.com/1036230).
  • network_service_in_process_content_browsertests: Same as above but for content_browsertests. We might consider removing this from the bot, since the Android bots run content_browsertests which should give enough coverage, but maybe we can remove the Desktop flag and group policy first.
  • network_service_web_request_proxy_browser_tests: Runs browser_tests while forcing the “network request proxying” code path that is taken when the browser has an extension installed that uses the Web Request API (--enable-features=ForceWebRequestProxyForTest). This step has caught bugs that would be Stable Release Blockers, so it's important to keep it.