 Chromium Code Reviews
 Chromium Code Reviews Issue 2261073002:
  Make HistoryBackend a client of memory coordinator  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 2261073002:
  Make HistoryBackend a client of memory coordinator  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: components/history/core/browser/history_backend.cc | 
| diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc | 
| index 431eb37ba7507dba003f6933a0711812f5730397..bced2eb364857b317d1f5f2d6c37c9e029f73d2d 100644 | 
| --- a/components/history/core/browser/history_backend.cc | 
| +++ b/components/history/core/browser/history_backend.cc | 
| @@ -39,6 +39,7 @@ | 
| #include "components/history/core/browser/page_usage_data.h" | 
| #include "components/history/core/browser/typed_url_syncable_service.h" | 
| #include "components/history/core/browser/url_utils.h" | 
| +#include "components/memory_coordinator/browser/memory_coordinator.h" | 
| #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 
| #include "sql/error_delegate_util.h" | 
| #include "third_party/skia/include/core/SkBitmap.h" | 
| @@ -252,8 +253,12 @@ void HistoryBackend::Init( | 
| InitImpl(history_database_params); | 
| delegate_->DBLoaded(); | 
| typed_url_syncable_service_.reset(new TypedUrlSyncableService(this)); | 
| - memory_pressure_listener_.reset(new base::MemoryPressureListener( | 
| - base::Bind(&HistoryBackend::OnMemoryPressure, base::Unretained(this)))); | 
| + if (memory_coordinator::MemoryCoordinator::GetInstance()) { | 
| + memory_coordinator::MemoryCoordinator::GetInstance()->RegisterClient(this); | 
| 
sky
2016/08/24 23:48:21
Shouldn't you unregister in the destructor?
 
bashi
2016/08/24 23:57:53
Yes. Done.
 | 
| + } else { | 
| + memory_pressure_listener_.reset(new base::MemoryPressureListener( | 
| + base::Bind(&HistoryBackend::OnMemoryPressure, base::Unretained(this)))); | 
| + } | 
| } | 
| void HistoryBackend::SetOnBackendDestroyTask(base::MessageLoop* message_loop, | 
| @@ -737,15 +742,25 @@ void HistoryBackend::InitImpl( | 
| LOCAL_HISTOGRAM_TIMES("History.InitTime", TimeTicks::Now() - beginning_time); | 
| } | 
| +void HistoryBackend::TrimMemory(bool trim_aggressively) { | 
| + if (db_) | 
| + db_->TrimMemory(trim_aggressively); | 
| + if (thumbnail_db_) | 
| + thumbnail_db_->TrimMemory(trim_aggressively); | 
| +} | 
| + | 
| void HistoryBackend::OnMemoryPressure( | 
| base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { | 
| bool trim_aggressively = | 
| memory_pressure_level == | 
| base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL; | 
| - if (db_) | 
| - db_->TrimMemory(trim_aggressively); | 
| - if (thumbnail_db_) | 
| - thumbnail_db_->TrimMemory(trim_aggressively); | 
| + TrimMemory(trim_aggressively); | 
| +} | 
| + | 
| +void HistoryBackend::OnMemoryStateChange( | 
| 
sky
2016/08/24 23:48:21
Make position match that of header.
 
bashi
2016/08/24 23:57:53
Done.
 | 
| + memory_coordinator::MemoryState state) { | 
| + bool trim_aggressively = state == memory_coordinator::MemoryState::SUSPENDED; | 
| + TrimMemory(trim_aggressively); | 
| } | 
| void HistoryBackend::CloseAllDatabases() { |