Index: cc/raster/staging_buffer_pool.cc |
diff --git a/cc/raster/staging_buffer_pool.cc b/cc/raster/staging_buffer_pool.cc |
index ade400d9906ad3c07a5b92280775f3c91644e6ab..f87aec445d7ec8d83f7d62121f3f91bdd5420fa9 100644 |
--- a/cc/raster/staging_buffer_pool.cc |
+++ b/cc/raster/staging_buffer_pool.cc |
@@ -409,4 +409,14 @@ void StagingBufferPool::ReleaseBuffersNotUsedSince(base::TimeTicks time) { |
} |
} |
+void StagingBufferPool::OnMemoryStateChange( |
+ memory_coordinator::mojom::MemoryState state) { |
+ if (state == memory_coordinator::mojom::MemoryState::SUSPENDED) { |
+ base::AutoLock lock(lock_); |
+ if (buffers_.empty()) |
+ return; |
+ ReleaseBuffersNotUsedSince(base::TimeTicks() + base::TimeDelta::Max()); |
+ } |
+} |
+ |
} // namespace cc |