| Index: net/ssl/ssl_client_session_cache.cc
|
| diff --git a/net/ssl/ssl_client_session_cache.cc b/net/ssl/ssl_client_session_cache.cc
|
| index 82526a5ae4d1a022b0fdbd47c981b592a814cf0a..650d98948a2cacd2093d5fd49faef46fd62a6744 100644
|
| --- a/net/ssl/ssl_client_session_cache.cc
|
| +++ b/net/ssl/ssl_client_session_cache.cc
|
| @@ -15,7 +15,10 @@ SSLClientSessionCache::SSLClientSessionCache(const Config& config)
|
| : clock_(new base::DefaultClock),
|
| config_(config),
|
| cache_(config.max_entries),
|
| - lookups_since_flush_(0) {}
|
| + lookups_since_flush_(0) {
|
| + memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind(
|
| + &SSLClientSessionCache::OnMemoryPressure, base::Unretained(this))));
|
| +}
|
|
|
| SSLClientSessionCache::~SSLClientSessionCache() {
|
| Flush();
|
| @@ -91,4 +94,18 @@ void SSLClientSessionCache::FlushExpiredSessions() {
|
| }
|
| }
|
|
|
| +void SSLClientSessionCache::OnMemoryPressure(
|
| + base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
|
| + switch (memory_pressure_level) {
|
| + case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE:
|
| + break;
|
| + case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE:
|
| + FlushExpiredSessions();
|
| + break;
|
| + case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL:
|
| + Flush();
|
| + break;
|
| + }
|
| +}
|
| +
|
| } // namespace net
|
|
|