| Index: content/renderer/render_thread_impl.cc
|
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
| index e652d229f3a8dafb4e6b58e018370886ba4de931..a438f5cef23aa991bbb3ca2fa6dc619cdaf3763f 100644
|
| --- a/content/renderer/render_thread_impl.cc
|
| +++ b/content/renderer/render_thread_impl.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| #include "base/memory/discardable_memory.h"
|
| +#include "base/memory/discardable_memory_emulated.h"
|
| #include "base/memory/shared_memory.h"
|
| #include "base/metrics/field_trial.h"
|
| #include "base/metrics/histogram.h"
|
| @@ -534,10 +535,6 @@ void RenderThreadImpl::Init() {
|
|
|
| base::DiscardableMemory::SetPreferredType(type);
|
|
|
| - // Allow discardable memory implementations to register memory pressure
|
| - // listeners.
|
| - base::DiscardableMemory::RegisterMemoryPressureListeners();
|
| -
|
| // AllocateGpuMemoryBuffer must be used exclusively on one thread but
|
| // it doesn't have to be the same thread RenderThreadImpl is created on.
|
| allocate_gpu_memory_buffer_thread_checker_.DetachFromThread();
|
| @@ -1609,6 +1606,11 @@ void RenderThreadImpl::WidgetHidden() {
|
| hidden_widget_count_++;
|
|
|
| if (widget_count_ && hidden_widget_count_ == widget_count_) {
|
| + // We emulate a "moderate memory pressure" event for emulated discardable
|
| + // memory to make sure that background tabs don't use too much memory.
|
| + base::DiscardableMemoryEmulated::
|
| + ReduceMemoryUsageUntilWithinModeratePressureLimit();
|
| +
|
| if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden())
|
| ScheduleIdleHandler(kInitialIdleHandlerDelayMs);
|
| }
|
|
|