diff options
author | boliu <boliu@chromium.org> | 2015-06-29 14:08:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-29 21:08:43 +0000 |
commit | 7441045adbfba646724716930c674ea5d408c230 (patch) | |
tree | eb8630608a00937e2c3bc567d696613c96339836 /android_webview/browser/browser_view_renderer.cc | |
parent | c1edbf2a3303e63e940298dea2c2a9a68e4f0dda (diff) | |
download | chromium_src-7441045adbfba646724716930c674ea5d408c230.zip chromium_src-7441045adbfba646724716930c674ea5d408c230.tar.gz chromium_src-7441045adbfba646724716930c674ea5d408c230.tar.bz2 |
aw: Make is_layer match offscreen_pre_raster
When in layer, use the webview size to make tiling decisions (memory and
interect rect). This mostly matches offscreen_pre_raster behavior.
BUG=505133
Review URL: https://codereview.chromium.org/1221533002
Cr-Commit-Position: refs/heads/master@{#336638}
Diffstat (limited to 'android_webview/browser/browser_view_renderer.cc')
-rw-r--r-- | android_webview/browser/browser_view_renderer.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc index 61a9192..7d15b89 100644 --- a/android_webview/browser/browser_view_renderer.cc +++ b/android_webview/browser/browser_view_renderer.cc @@ -170,9 +170,12 @@ void BrowserViewRenderer::UpdateMemoryPolicy() { if (g_memory_override_in_bytes) { bytes_limit = static_cast<size_t>(g_memory_override_in_bytes); } else { - gfx::Rect interest_rect = offscreen_pre_raster_ - ? gfx::Rect(size_) - : last_on_draw_global_visible_rect_; + ParentCompositorDrawConstraints parent_draw_constraints = + shared_renderer_state_.GetParentDrawConstraintsOnUI(); + gfx::Rect interest_rect = + offscreen_pre_raster_ || parent_draw_constraints.is_layer + ? gfx::Rect(size_) + : last_on_draw_global_visible_rect_; size_t width = interest_rect.width(); size_t height = interest_rect.height(); bytes_limit = kMemoryMultiplier * kBytesPerPixel * width * height; @@ -240,12 +243,8 @@ bool BrowserViewRenderer::CompositeHw() { gfx::Rect viewport_rect_for_tile_priority; // Leave viewport_rect_for_tile_priority empty if offscreen_pre_raster_ is on. - if (!offscreen_pre_raster_) { - 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_; - } + if (!offscreen_pre_raster_ && !parent_draw_constraints.is_layer) { + viewport_rect_for_tile_priority = last_on_draw_global_visible_rect_; } scoped_ptr<cc::CompositorFrame> frame = @@ -262,7 +261,7 @@ bool BrowserViewRenderer::CompositeHw() { } scoped_ptr<ChildFrame> child_frame = make_scoped_ptr( - new ChildFrame(frame.Pass(), viewport_rect_for_tile_priority, + new ChildFrame(frame.Pass(), viewport_rect_for_tile_priority.IsEmpty(), transform_for_tile_priority, offscreen_pre_raster_, parent_draw_constraints.is_layer)); |