summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/browser_view_renderer.cc
diff options
context:
space:
mode:
authorboliu <boliu@chromium.org>2015-06-29 14:08:12 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-29 21:08:43 +0000
commit7441045adbfba646724716930c674ea5d408c230 (patch)
treeeb8630608a00937e2c3bc567d696613c96339836 /android_webview/browser/browser_view_renderer.cc
parentc1edbf2a3303e63e940298dea2c2a9a68e4f0dda (diff)
downloadchromium_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.cc19
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));