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 d9d3d0b1e18ab06b1eafcec9a9d45d6fd66dc6a8..af47e6f432a97416103d5db60d8cb9eeb0aa3aae 100644 |
--- a/android_webview/browser/browser_view_renderer.cc |
+++ b/android_webview/browser/browser_view_renderer.cc |
@@ -299,8 +299,14 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
gfx::Rect viewport_rect_for_tile_priority; |
if (parent_draw_constraints_.is_layer) |
viewport_rect_for_tile_priority = parent_draw_constraints_.surface_rect; |
- else |
+ else if (!last_on_draw_global_visible_rect_.IsEmpty()) |
viewport_rect_for_tile_priority = last_on_draw_global_visible_rect_; |
+ else { |
+ // An empty viewport rect for tile priority will make cc fallback to use |
+ // the WebView size as viewport rect for tile priority, which is not what |
+ // we want. Instead, use the smallest non-empty rect for it. |
+ viewport_rect_for_tile_priority = gfx::Rect(0, 0, 1, 1); |
+ } |
scoped_ptr<cc::CompositorFrame> frame = |
compositor_->DemandDrawHw(surface_size, |