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

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: Rebase to 221292 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
« no previous file with comments | « cc/debug/overdraw_metrics.cc ('k') | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..7575e2fc8389d5fb2343e6dd3b8ee45d218a634f 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -293,6 +293,12 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
void PictureLayerImpl::UpdateTilePriorities() {
DCHECK(!needs_post_commit_initialization_);
+ if (!layer_tree_impl()->device_viewport_valid_for_tile_management()) {
+ for (size_t i = 0; i < tilings_->num_tilings(); ++i)
+ DCHECK(tilings_->tiling_at(i)->has_ever_been_updated());
+ return;
+ }
+
if (!tilings_->num_tilings())
return;
@@ -318,12 +324,13 @@ void PictureLayerImpl::UpdateTilePriorities() {
gfx::Transform current_screen_space_transform = screen_space_transform();
+ gfx::Size viewport_size = layer_tree_impl()->DrawViewportSize();
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(viewport_size)));
}
WhichTree tree =
@@ -332,7 +339,7 @@ void PictureLayerImpl::UpdateTilePriorities() {
layer_tree_impl()->settings().max_tiles_for_interest_area;
tilings_->UpdateTilePriorities(
tree,
- layer_tree_impl()->device_viewport_size(),
+ viewport_size,
viewport_in_content_space,
visible_content_rect(),
last_bounds_,
@@ -798,6 +805,9 @@ void PictureLayerImpl::ManageTilings(bool animating_transform_to_screen) {
if (!change_target_tiling)
return;
+ if (!layer_tree_impl()->device_viewport_valid_for_tile_management())
+ return;
+
raster_page_scale_ = ideal_page_scale_;
raster_device_scale_ = ideal_device_scale_;
raster_source_scale_ = ideal_source_scale_;
« no previous file with comments | « cc/debug/overdraw_metrics.cc ('k') | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698