| Index: cc/layers/picture_layer_impl.cc
|
| diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
|
| index d75ad8ca19ea89d365e00937e44f68224257da1b..7299bc09fc62f5601029dfcb572e380f0565282c 100644
|
| --- a/cc/layers/picture_layer_impl.cc
|
| +++ b/cc/layers/picture_layer_impl.cc
|
| @@ -391,14 +391,6 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
| TRACE_EVENT0("cc", "PictureLayerImpl::UpdateTilePriorities");
|
|
|
| DoPostCommitInitializationIfNeeded();
|
| - UpdateIdealScales();
|
| - // TODO(sohanjg): Avoid needlessly update priorities when syncing to a
|
| - // non-updated tree which will then be updated immediately afterwards.
|
| - should_update_tile_priorities_ = true;
|
| - if (CanHaveTilings()) {
|
| - ManageTilings(draw_properties().screen_space_transform_is_animating,
|
| - draw_properties().maximum_animation_contents_scale);
|
| - }
|
|
|
| if (layer_tree_impl()->device_viewport_valid_for_tile_management()) {
|
| visible_rect_for_tile_priority_ = visible_content_rect();
|
| @@ -406,6 +398,23 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
| screen_space_transform_for_tile_priority_ = screen_space_transform();
|
| }
|
|
|
| + if (!CanHaveTilings()) {
|
| + ideal_page_scale_ = 0.f;
|
| + ideal_device_scale_ = 0.f;
|
| + ideal_contents_scale_ = 0.f;
|
| + ideal_source_scale_ = 0.f;
|
| + SanityCheckTilingState();
|
| + return;
|
| + }
|
| +
|
| + // TODO(sohanjg): Avoid needlessly update priorities when syncing to a
|
| + // non-updated tree which will then be updated immediately afterwards.
|
| + should_update_tile_priorities_ = true;
|
| +
|
| + UpdateIdealScales();
|
| + ManageTilings(draw_properties().screen_space_transform_is_animating,
|
| + draw_properties().maximum_animation_contents_scale);
|
| +
|
| if (!tilings_->num_tilings())
|
| return;
|
|
|
| @@ -1150,7 +1159,7 @@ void PictureLayerImpl::CleanUpTilingsOnActiveLayer(
|
| float twin_low_res_scale = 0.f;
|
|
|
| PictureLayerImpl* twin = twin_layer_;
|
| - if (twin) {
|
| + if (twin && twin->CanHaveTilings()) {
|
| min_acceptable_high_res_scale = std::min(
|
| min_acceptable_high_res_scale,
|
| std::min(twin->raster_contents_scale_, twin->ideal_contents_scale_));
|
| @@ -1273,14 +1282,7 @@ float PictureLayerImpl::MaximumTilingContentsScale() const {
|
| }
|
|
|
| void PictureLayerImpl::UpdateIdealScales() {
|
| - if (!CanHaveTilings()) {
|
| - ideal_page_scale_ = draw_properties().page_scale_factor;
|
| - ideal_device_scale_ = draw_properties().device_scale_factor;
|
| - ideal_contents_scale_ = draw_properties().ideal_contents_scale;
|
| - ideal_source_scale_ =
|
| - ideal_contents_scale_ / ideal_page_scale_ / ideal_device_scale_;
|
| - return;
|
| - }
|
| + DCHECK(CanHaveTilings());
|
|
|
| float min_contents_scale = MinimumContentsScale();
|
| DCHECK_GT(min_contents_scale, 0.f);
|
|
|