Index: android_webview/browser/browser_view_renderer.cc |
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc |
index 8b083ace04ef4bfaba96914901e0434cf448f134..667aee69a89633a4f6a81d508ea1721e3a4782c0 100644 |
--- a/android_webview/browser/browser_view_renderer.cc |
+++ b/android_webview/browser/browser_view_renderer.cc |
@@ -258,6 +258,7 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
TRACE_EVENT_INSTANT0("android_webview", |
"EarlyOut_EmptyVisibleRect", |
TRACE_EVENT_SCOPE_THREAD); |
+ shared_renderer_state_->SetForceInvalidateOnNextDrawGL(true); |
return client_->RequestDrawGL(java_canvas, false); |
} |
@@ -326,9 +327,12 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
void BrowserViewRenderer::UpdateParentDrawConstraints() { |
// Post an invalidate if the parent draw constraints are stale and there is |
// no pending invalidate. |
- if (!parent_draw_constraints_.Equals( |
- shared_renderer_state_->ParentDrawConstraints())) |
+ if (shared_renderer_state_->NeedsForceInvalidateOnNextDrawGL() || |
+ !parent_draw_constraints_.Equals( |
+ shared_renderer_state_->ParentDrawConstraints())) { |
+ shared_renderer_state_->SetForceInvalidateOnNextDrawGL(false); |
EnsureContinuousInvalidation(true); |
+ } |
} |
void BrowserViewRenderer::ReturnUnusedResource(scoped_ptr<DrawGLInput> input) { |