| 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() {
|
|
|