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

Unified Diff: android_webview/browser/in_process_view_renderer.cc

Issue 25082006: [Android WebView] OnMemoryPressure to drop tile memory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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: 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();
}

Powered by Google App Engine
This is Rietveld 408576698