| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_session.h" | 5 #include "net/http/http_network_session.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/debug/stack_trace.h" | 11 #include "base/debug/stack_trace.h" |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "base/memory/memory_coordinator_client_registry.h" | 13 #include "base/memory/memory_coordinator_client_registry.h" |
| 14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
| 15 #include "base/profiler/scoped_tracker.h" | 15 #include "base/profiler/scoped_tracker.h" |
| 16 #include "base/strings/string_number_conversions.h" | 16 #include "base/strings/string_number_conversions.h" |
| 17 #include "base/strings/string_util.h" | 17 #include "base/strings/string_util.h" |
| 18 #include "base/strings/stringprintf.h" |
| 19 #include "base/trace_event/memory_allocator_dump.h" |
| 20 #include "base/trace_event/process_memory_dump.h" |
| 18 #include "base/values.h" | 21 #include "base/values.h" |
| 19 #include "net/base/network_throttle_manager_impl.h" | 22 #include "net/base/network_throttle_manager_impl.h" |
| 20 #include "net/http/http_auth_handler_factory.h" | 23 #include "net/http/http_auth_handler_factory.h" |
| 21 #include "net/http/http_response_body_drainer.h" | 24 #include "net/http/http_response_body_drainer.h" |
| 22 #include "net/http/http_stream_factory_impl.h" | 25 #include "net/http/http_stream_factory_impl.h" |
| 23 #include "net/http/url_security_manager.h" | 26 #include "net/http/url_security_manager.h" |
| 24 #include "net/proxy/proxy_service.h" | 27 #include "net/proxy/proxy_service.h" |
| 25 #include "net/quic/chromium/quic_stream_factory.h" | 28 #include "net/quic/chromium/quic_stream_factory.h" |
| 26 #include "net/quic/core/crypto/quic_random.h" | 29 #include "net/quic/core/crypto/quic_random.h" |
| 27 #include "net/quic/core/quic_clock.h" | 30 #include "net/quic/core/quic_clock.h" |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 ssl_config_service_->GetSSLConfig(server_config); | 377 ssl_config_service_->GetSSLConfig(server_config); |
| 375 GetAlpnProtos(&server_config->alpn_protos); | 378 GetAlpnProtos(&server_config->alpn_protos); |
| 376 *proxy_config = *server_config; | 379 *proxy_config = *server_config; |
| 377 if (request.privacy_mode == PRIVACY_MODE_ENABLED) { | 380 if (request.privacy_mode == PRIVACY_MODE_ENABLED) { |
| 378 server_config->channel_id_enabled = false; | 381 server_config->channel_id_enabled = false; |
| 379 } else if (params_.enable_token_binding && params_.channel_id_service) { | 382 } else if (params_.enable_token_binding && params_.channel_id_service) { |
| 380 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256); | 383 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256); |
| 381 } | 384 } |
| 382 } | 385 } |
| 383 | 386 |
| 387 void HttpNetworkSession::DumpMemoryStats( |
| 388 base::trace_event::MemoryAllocatorDump* parent_dump) const { |
| 389 std::string name = base::StringPrintf("net/http_network_session_%p", this); |
| 390 base::trace_event::MemoryAllocatorDump* http_network_session_dump = |
| 391 parent_dump->process_memory_dump()->GetAllocatorDump(name); |
| 392 // If memory dump already exists, it means that this is not the first |
| 393 // DumpMemoryStats() invocation on this object and it is reached by another |
| 394 // "parent." If that's the case, add an ownership edge and return early. |
| 395 // This is needed because URLRequestContexts can share an HttpNetworkSession. |
| 396 if (http_network_session_dump != nullptr) { |
| 397 parent_dump->process_memory_dump()->AddOwnershipEdge( |
| 398 parent_dump->guid(), http_network_session_dump->guid()); |
| 399 return; |
| 400 } |
| 401 http_network_session_dump = |
| 402 parent_dump->process_memory_dump()->CreateAllocatorDump(name); |
| 403 parent_dump->process_memory_dump()->AddOwnershipEdge( |
| 404 parent_dump->guid(), http_network_session_dump->guid()); |
| 405 normal_socket_pool_manager_->DumpMemoryStats(http_network_session_dump); |
| 406 } |
| 407 |
| 384 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager( | 408 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager( |
| 385 SocketPoolType pool_type) { | 409 SocketPoolType pool_type) { |
| 386 switch (pool_type) { | 410 switch (pool_type) { |
| 387 case NORMAL_SOCKET_POOL: | 411 case NORMAL_SOCKET_POOL: |
| 388 return normal_socket_pool_manager_.get(); | 412 return normal_socket_pool_manager_.get(); |
| 389 case WEBSOCKET_SOCKET_POOL: | 413 case WEBSOCKET_SOCKET_POOL: |
| 390 return websocket_socket_pool_manager_.get(); | 414 return websocket_socket_pool_manager_.get(); |
| 391 default: | 415 default: |
| 392 NOTREACHED(); | 416 NOTREACHED(); |
| 393 break; | 417 break; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 419 break; | 443 break; |
| 420 case base::MemoryState::SUSPENDED: | 444 case base::MemoryState::SUSPENDED: |
| 421 // Note: Not supported at present. Fall through. | 445 // Note: Not supported at present. Fall through. |
| 422 case base::MemoryState::UNKNOWN: | 446 case base::MemoryState::UNKNOWN: |
| 423 NOTREACHED(); | 447 NOTREACHED(); |
| 424 break; | 448 break; |
| 425 } | 449 } |
| 426 } | 450 } |
| 427 | 451 |
| 428 } // namespace net | 452 } // namespace net |
| OLD | NEW |