Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(532)

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 23171014: Fix UpdateTilePriorities viewport in Android WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add tests Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/layers/picture_layer_impl.cc
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 82eef41e66fb833e33d691cb51c73ff6a475629e..e6454b13e9f700449ba17e860b26b0160103b929 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -293,6 +293,9 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
void PictureLayerImpl::UpdateTilePriorities() {
DCHECK(!needs_post_commit_initialization_);
+ if (!layer_tree_impl()->device_viewport_valid_for_tile_management())
enne (OOO) 2013/09/03 16:58:47 If you're going to early out here, can you also DC
aelias_OOO_until_Jul13 2013/09/03 19:52:09 Done.
+ return;
+
if (!tilings_->num_tilings())
return;
@@ -318,12 +321,13 @@ void PictureLayerImpl::UpdateTilePriorities() {
gfx::Transform current_screen_space_transform = screen_space_transform();
+ gfx::Size device_viewport_size = layer_tree_impl()->DeviceViewport().size();
enne (OOO) 2013/09/03 16:58:47 Can you either use DeviceViewport() directly witho
aelias_OOO_until_Jul13 2013/09/03 19:52:09 This is a pretty subtle question but I've convince
enne (OOO) 2013/09/03 21:47:31 Aha! Thanks, I really appreciate the explanation
aelias_OOO_until_Jul13 2013/09/04 01:22:23 OK, I went with "DrawViewportSize" and "DeviceView
gfx::Rect viewport_in_content_space;
gfx::Transform screen_to_layer(gfx::Transform::kSkipInitialization);
if (screen_space_transform().GetInverse(&screen_to_layer)) {
- gfx::Rect device_viewport(layer_tree_impl()->device_viewport_size());
- viewport_in_content_space = gfx::ToEnclosingRect(
- MathUtil::ProjectClippedRect(screen_to_layer, device_viewport));
+ viewport_in_content_space =
+ gfx::ToEnclosingRect(MathUtil::ProjectClippedRect(
+ screen_to_layer, gfx::Rect(device_viewport_size)));
}
WhichTree tree =
@@ -332,7 +336,7 @@ void PictureLayerImpl::UpdateTilePriorities() {
layer_tree_impl()->settings().max_tiles_for_interest_area;
tilings_->UpdateTilePriorities(
tree,
- layer_tree_impl()->device_viewport_size(),
+ device_viewport_size,
viewport_in_content_space,
visible_content_rect(),
last_bounds_,

Powered by Google App Engine
This is Rietveld 408576698