Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2933)

Unified Diff: content/renderer/render_thread_impl.cc

Issue 2648323005: memory coordinator: Add MemoryCoordinatorClient::OnPurgeMemory() (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698