Chromium Code Reviews| Index: android_webview/browser/in_process_view_renderer.cc |
| diff --git a/android_webview/browser/in_process_view_renderer.cc b/android_webview/browser/in_process_view_renderer.cc |
| index 51f365ae50723c8b6424986eb5b3fcc458f6d001..f629bee6d61406f79b04bd11622f12ab3fdb6ace 100644 |
| --- a/android_webview/browser/in_process_view_renderer.cc |
| +++ b/android_webview/browser/in_process_view_renderer.cc |
| @@ -316,6 +316,28 @@ bool InProcessViewRenderer::RequestProcessGL() { |
| return client_->RequestDrawGL(NULL); |
| } |
| +void InProcessViewRenderer::OnMemoryPressure( |
| + base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { |
| + // Nothing to release. |
| + if (!attached_to_window_ || !compositor_ || !hardware_initialized_) |
| + return; |
| + |
| + // Do not release resources on view we expect to get DrawGL soon. |
| + if (view_visible_ && window_visible_) |
| + return; |
| + |
| + TRACE_EVENT_INSTANT0( |
| + "android_webview", "OnMemoryPressure", TRACE_EVENT_SCOPE_THREAD); |
| + ScopedAppGLStateRestore state_restore(ScopedAppGLStateRestore::MODE_ON_TRIM); |
| + gpu::InProcessCommandBuffer::ProcessGpuWorkOnCurrentThread(); |
| + ScopedAllowGL allow_gl; |
|
joth
2013/10/01 11:10:46
GL not valid if this is a 'fake' memory pressure?
|
| + |
| + content::SynchronousCompositorMemoryPolicy policy; |
| + policy.bytes_limit = 0; |
| + policy.num_resources_limit = 0; |
| + compositor_->SetMemoryPolicy(policy); |
|
joth
2013/10/01 11:10:46
comment this will get set back upward on the next
|
| +} |
| + |
| void InProcessViewRenderer::UpdateCachedGlobalVisibleRect() { |
| client_->UpdateGlobalVisibleRect(); |
| } |