| Index: cc/raster/staging_buffer_pool.cc
|
| diff --git a/cc/raster/staging_buffer_pool.cc b/cc/raster/staging_buffer_pool.cc
|
| index ef78e4d317e60f4a8f3b3b5ca1298a05446fb60d..2672879e037f3dc102d95b23dfcb4b47c31d3003 100644
|
| --- a/cc/raster/staging_buffer_pool.cc
|
| +++ b/cc/raster/staging_buffer_pool.cc
|
| @@ -433,23 +433,18 @@ void StagingBufferPool::ReleaseBuffersNotUsedSince(base::TimeTicks time) {
|
| }
|
|
|
| void StagingBufferPool::OnMemoryStateChange(base::MemoryState state) {
|
| - switch (state) {
|
| - case base::MemoryState::NORMAL:
|
| - // TODO(tasak): go back to normal state.
|
| - break;
|
| - case base::MemoryState::THROTTLED:
|
| - // TODO(tasak): make the limits of this component's caches smaller to
|
| - // save memory usage.
|
| - break;
|
| - case base::MemoryState::SUSPENDED: {
|
| - base::AutoLock lock(lock_);
|
| - // Release all buffers, regardless of how recently they were used.
|
| - ReleaseBuffersNotUsedSince(base::TimeTicks() + base::TimeDelta::Max());
|
| - } break;
|
| - case base::MemoryState::UNKNOWN:
|
| - // NOT_REACHED.
|
| - break;
|
| - }
|
| + // TODO(bashi): We are going to separate purging from state changes and we
|
| + // shouldn't purge memory here (crbug.com/684287). Tentatively call
|
| + // OnPurgeMemory() so that we don't break existing experiments.
|
| + // (i.e. purge+suspend experiment)
|
| + if (state == base::MemoryState::SUSPENDED)
|
| + OnPurgeMemory();
|
| +}
|
| +
|
| +void StagingBufferPool::OnPurgeMemory() {
|
| + base::AutoLock lock(lock_);
|
| + // Release all buffers, regardless of how recently they were used.
|
| + ReleaseBuffersNotUsedSince(base::TimeTicks() + base::TimeDelta::Max());
|
| }
|
|
|
| } // namespace cc
|
|
|