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" |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256); | 379 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256); |
380 } | 380 } |
381 } | 381 } |
382 | 382 |
383 void HttpNetworkSession::DumpMemoryStats( | 383 void HttpNetworkSession::DumpMemoryStats( |
384 base::trace_event::ProcessMemoryDump* pmd, | 384 base::trace_event::ProcessMemoryDump* pmd, |
385 const std::string& parent_absolute_name) const { | 385 const std::string& parent_absolute_name) const { |
386 std::string name = base::StringPrintf("net/http_network_session_%p", this); | 386 std::string name = base::StringPrintf("net/http_network_session_%p", this); |
387 base::trace_event::MemoryAllocatorDump* http_network_session_dump = | 387 base::trace_event::MemoryAllocatorDump* http_network_session_dump = |
388 pmd->GetAllocatorDump(name); | 388 pmd->GetAllocatorDump(name); |
389 // If memory dump already exists, it means that this is not the first | 389 if (http_network_session_dump == nullptr) { |
390 // DumpMemoryStats() invocation on this object and it is reached by another | 390 http_network_session_dump = pmd->CreateAllocatorDump(name); |
391 // "parent." If that's the case, add an ownership edge and return early. | 391 normal_socket_pool_manager_->DumpMemoryStats( |
392 // This is needed because URLRequestContexts can share an HttpNetworkSession. | 392 pmd, http_network_session_dump->absolute_name()); |
393 if (http_network_session_dump != nullptr) { | 393 spdy_session_pool_.DumpMemoryStats( |
394 pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(), | 394 pmd, http_network_session_dump->absolute_name()); |
395 http_network_session_dump->guid()); | |
396 | |
397 return; | |
398 } | 395 } |
399 http_network_session_dump = pmd->CreateAllocatorDump(name); | 396 // Create an empty row under parent's dump so size can be attributed correctly |
400 normal_socket_pool_manager_->DumpMemoryStats( | 397 // if |this| is shared between URLRequestContexts. |
401 pmd, http_network_session_dump->absolute_name()); | 398 base::trace_event::MemoryAllocatorDump* empty_row_dump = |
402 spdy_session_pool_.DumpMemoryStats( | 399 pmd->CreateAllocatorDump(base::StringPrintf( |
403 pmd, http_network_session_dump->absolute_name()); | 400 "%s/http_network_session", parent_absolute_name.c_str())); |
404 pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(), | 401 pmd->AddOwnershipEdge(empty_row_dump->guid(), |
405 http_network_session_dump->guid()); | 402 http_network_session_dump->guid()); |
406 } | 403 } |
407 | 404 |
408 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager( | 405 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager( |
409 SocketPoolType pool_type) { | 406 SocketPoolType pool_type) { |
410 switch (pool_type) { | 407 switch (pool_type) { |
411 case NORMAL_SOCKET_POOL: | 408 case NORMAL_SOCKET_POOL: |
412 return normal_socket_pool_manager_.get(); | 409 return normal_socket_pool_manager_.get(); |
413 case WEBSOCKET_SOCKET_POOL: | 410 case WEBSOCKET_SOCKET_POOL: |
414 return websocket_socket_pool_manager_.get(); | 411 return websocket_socket_pool_manager_.get(); |
(...skipping 28 matching lines...) Expand all Loading... |
443 break; | 440 break; |
444 case base::MemoryState::SUSPENDED: | 441 case base::MemoryState::SUSPENDED: |
445 // Note: Not supported at present. Fall through. | 442 // Note: Not supported at present. Fall through. |
446 case base::MemoryState::UNKNOWN: | 443 case base::MemoryState::UNKNOWN: |
447 NOTREACHED(); | 444 NOTREACHED(); |
448 break; | 445 break; |
449 } | 446 } |
450 } | 447 } |
451 | 448 |
452 } // namespace net | 449 } // namespace net |
OLD | NEW |