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 bcf2ca4666e5eb25e65a9907139231f859372c39..7964cfd202051861f68f243ecbe9e4f02d156f59 100644 |
--- a/android_webview/browser/in_process_view_renderer.cc |
+++ b/android_webview/browser/in_process_view_renderer.cc |
@@ -387,15 +387,20 @@ void InProcessViewRenderer::DrawGL(AwDrawGLInfo* draw_info) { |
// Assume we always draw the full visible rect if we are drawing into a layer. |
bool drew_full_visible_rect = true; |
+ gfx::Rect viewport_rect; |
if (!draw_info->is_layer) { |
- clip_rect.Intersect(cached_global_visible_rect_); |
- drew_full_visible_rect = clip_rect.Contains(cached_global_visible_rect_); |
+ viewport_rect = cached_global_visible_rect_; |
+ clip_rect.Intersect(viewport_rect); |
+ drew_full_visible_rect = clip_rect.Contains(viewport_rect); |
+ } else { |
+ viewport_rect = clip_rect; |
} |
block_invalidates_ = true; |
// TODO(joth): Check return value. |
compositor_->DemandDrawHw(gfx::Size(draw_info->width, draw_info->height), |
transform, |
+ viewport_rect, |
clip_rect, |
state_restore.stencil_enabled()); |
block_invalidates_ = false; |