Chromium Code Reviews| 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 b958dae01ffed772b4cec39af5c85b189334e3ef..ef21d0e4122abc69a18397ee2c65bf3d1ad09968 100644 |
| --- a/android_webview/browser/browser_view_renderer.cc |
| +++ b/android_webview/browser/browser_view_renderer.cc |
| @@ -5,6 +5,7 @@ |
| #include "android_webview/browser/browser_view_renderer.h" |
| #include "android_webview/browser/browser_view_renderer_client.h" |
| +#include "android_webview/browser/parent_compositor_draw_constraints.h" |
|
boliu
2014/07/29 19:02:41
This include should be in browser_view_renderer.h,
hush (inactive)
2014/07/29 21:14:20
I did compile this successfully, due to luck:
bvr.
|
| #include "android_webview/browser/shared_renderer_state.h" |
| #include "android_webview/common/aw_switches.h" |
| #include "android_webview/public/browser/draw_gl.h" |
| @@ -259,14 +260,29 @@ 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; |
| - scoped_ptr<cc::CompositorFrame> frame = compositor_->DemandDrawHw( |
| - surface_size, transform, viewport, clip); |
| + gfx::Rect viewport_rect_for_tile_priority; |
|
boliu
2014/07/29 19:02:41
nit: move this down below to where it's first used
hush (inactive)
2014/07/29 21:14:21
Done.
|
| + parent_draw_constraints_ = shared_renderer_state_->ParentDrawConstraints(); |
|
boliu
2014/07/29 19:02:41
nit: move this to the first line of this block.
hush (inactive)
2014/07/29 21:14:20
Done.
|
| + gfx::Transform transform_for_tile_priority = |
| + parent_draw_constraints_.transform; |
| + |
| + // If the WebView is on a layer, the parent transform is just an identity |
| + // matrix and WebView does not know what transform is applied onto the layer. |
| + // In this case, just use the surface rect for tiling. |
| + if (parent_draw_constraints_.is_layer) |
| + viewport_rect_for_tile_priority = parent_draw_constraints_.surface_rect; |
| + else |
| + viewport_rect_for_tile_priority = last_on_draw_global_visible_rect_; |
| + |
| + scoped_ptr<cc::CompositorFrame> frame = |
| + compositor_->DemandDrawHw(surface_size, |
| + gfx::Transform(), |
| + viewport, |
| + clip, |
| + viewport_rect_for_tile_priority, |
| + transform_for_tile_priority); |
| if (!frame.get()) |
| return false; |