Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: net/http/http_network_session.cc

Issue 2132313002: [HttpNetworkSession] Flush socket pools on low memory notification. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mmenke's comments and rebasing Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_network_session.h ('k') | net/http/http_network_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 AlternateProtocol alternate = 233 AlternateProtocol alternate =
234 AlternateProtocolFromNextProto(kProtoQUIC1SPDY3); 234 AlternateProtocolFromNextProto(kProtoQUIC1SPDY3);
235 enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = 235 enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] =
236 true; 236 true;
237 } 237 }
238 238
239 next_protos_.push_back(kProtoHTTP11); 239 next_protos_.push_back(kProtoHTTP11);
240 240
241 http_server_properties_->SetMaxServerConfigsStoredInProperties( 241 http_server_properties_->SetMaxServerConfigsStoredInProperties(
242 params.quic_max_server_configs_stored_in_properties); 242 params.quic_max_server_configs_stored_in_properties);
243
244 memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind(
245 &HttpNetworkSession::OnMemoryPressure, base::Unretained(this))));
243 } 246 }
244 247
245 HttpNetworkSession::~HttpNetworkSession() { 248 HttpNetworkSession::~HttpNetworkSession() {
246 STLDeleteElements(&response_drainers_); 249 STLDeleteElements(&response_drainers_);
247 spdy_session_pool_.CloseAllSessions(); 250 spdy_session_pool_.CloseAllSessions();
248 } 251 }
249 252
250 void HttpNetworkSession::AddResponseDrainer(HttpResponseBodyDrainer* drainer) { 253 void HttpNetworkSession::AddResponseDrainer(HttpResponseBodyDrainer* drainer) {
251 DCHECK(!ContainsKey(response_drainers_, drainer)); 254 DCHECK(!ContainsKey(response_drainers_, drainer));
252 response_drainers_.insert(drainer); 255 response_drainers_.insert(drainer);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 return normal_socket_pool_manager_.get(); 398 return normal_socket_pool_manager_.get();
396 case WEBSOCKET_SOCKET_POOL: 399 case WEBSOCKET_SOCKET_POOL:
397 return websocket_socket_pool_manager_.get(); 400 return websocket_socket_pool_manager_.get();
398 default: 401 default:
399 NOTREACHED(); 402 NOTREACHED();
400 break; 403 break;
401 } 404 }
402 return NULL; 405 return NULL;
403 } 406 }
404 407
408 void HttpNetworkSession::OnMemoryPressure(
409 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
410 switch (memory_pressure_level) {
411 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE:
412 break;
413 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE:
414 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL:
415 CloseIdleConnections();
416 break;
417 }
418 }
419
405 } // namespace net 420 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_session.h ('k') | net/http/http_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698