Index: content/renderer/render_thread_impl.cc |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
index 1dcaaa6f25a0819ac9b32f3e6748c033b2c1c9cf..d08cc389d906d5fccb315598f0abd96fe44476ba 100644 |
--- a/content/renderer/render_thread_impl.cc |
+++ b/content/renderer/render_thread_impl.cc |
@@ -1668,8 +1668,7 @@ void RenderThreadImpl::OnProcessPurgeAndSuspend() { |
if (base::FeatureList::IsEnabled(features::kPurgeAndSuspend)) { |
// TODO(tasak): After enabling MemoryCoordinator, remove this Notify |
// and follow MemoryCoordinator's request. |
- base::MemoryCoordinatorClientRegistry::GetInstance()->Notify( |
- base::MemoryState::SUSPENDED); |
+ base::MemoryCoordinatorClientRegistry::GetInstance()->PurgeMemory(); |
} |
// Since purging is not a synchronous task (e.g. v8 GC, oilpan GC, ...), |
// we need to wait until the task is finished. So wait 15 seconds and |
@@ -1840,24 +1839,6 @@ void RenderThreadImpl::RecordPurgeAndSuspendMemoryGrowthMetrics() const { |
total_allocated_mb) * 1024); |
} |
-void RenderThreadImpl::OnProcessResume() { |
- ChildThreadImpl::OnProcessResume(); |
- |
- if (!RendererIsHidden()) |
- return; |
- |
- // TODO(bashi): Enable the tab suspension when MemoryCoordinator is enabled. |
- if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) |
- return; |
- |
- if (base::FeatureList::IsEnabled(features::kPurgeAndSuspend)) { |
- // TODO(tasak): after enabling MemoryCoordinator, remove this Notify |
- // and follow MemoryCoordinator's request. |
- base::MemoryCoordinatorClientRegistry::GetInstance()->Notify( |
- base::MemoryState::NORMAL); |
- } |
-} |
- |
scoped_refptr<gpu::GpuChannelHost> RenderThreadImpl::EstablishGpuChannelSync() { |
TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); |
@@ -2221,29 +2202,16 @@ void RenderThreadImpl::OnMemoryStateChange(base::MemoryState state) { |
blink::WebMemoryCoordinator::onMemoryStateChange( |
static_cast<blink::MemoryState>(state)); |
} |
- switch (state) { |
- case base::MemoryState::NORMAL: |
- break; |
- case base::MemoryState::THROTTLED: |
- // TODO(bashi): Figure out what kind of strategy is suitable on |
- // THROTTLED state. crbug.com/674815 |
-#if defined(OS_ANDROID) |
- OnTrimMemoryImmediately(); |
-#else |
- OnSyncMemoryPressure( |
- base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE); |
-#endif |
- ReleaseFreeMemory(); |
- break; |
- case base::MemoryState::SUSPENDED: |
- OnTrimMemoryImmediately(); |
- ReleaseFreeMemory(); |
- ClearMemory(); |
- break; |
- case base::MemoryState::UNKNOWN: |
- NOTREACHED(); |
- break; |
- } |
+} |
+ |
+void RenderThreadImpl::OnPurgeMemory() { |
+ OnTrimMemoryImmediately(); |
+ ReleaseFreeMemory(); |
+ ClearMemory(); |
+ // TODO(bashi): Add onPurgeMemory() to blink::WebMemoryCoordinator. |
+ // Notifies pseudo SUSPENDED state change to purge memory in blink. |
+ // crbug.com/684287 |
+ OnMemoryStateChange(base::MemoryState::SUSPENDED); |
} |
void RenderThreadImpl::ClearMemory() { |