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 fd00b6be6b701a1c054c305d7ccadf9ae3f1890b..cd315c1e4eed3bc2d4c1aa8de415bd9be15cec26 100644 |
--- a/android_webview/browser/browser_view_renderer.cc |
+++ b/android_webview/browser/browser_view_renderer.cc |
@@ -258,14 +258,19 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
draw_gl_input->width = width_; |
draw_gl_input->height = height_; |
- gfx::Transform transform; |
gfx::Size surface_size(width_, height_); |
gfx::Rect viewport(surface_size); |
- // TODO(boliu): Should really be |last_on_draw_global_visible_rect_|. |
- // See crbug.com/372073. |
+ |
gfx::Rect clip = viewport; |
+ |
+ if (shared_renderer_state_->IsParentDrawConstraintsDirty()) { |
+ parent_transform_ = shared_renderer_state_->ParentTransform(); |
+ parent_clip_ = shared_renderer_state_->ParentClip(); |
+ shared_renderer_state_->SetParentDrawConstraintsDirty(false); |
+ } |
+ |
scoped_ptr<cc::CompositorFrame> frame = compositor_->DemandDrawHw( |
- surface_size, transform, viewport, clip); |
+ surface_size, parent_transform_, viewport, clip, parent_clip_); |
if (!frame.get()) |
return false; |