Index: cc/resources/picture_layer_tiling_set.cc |
diff --git a/cc/resources/picture_layer_tiling_set.cc b/cc/resources/picture_layer_tiling_set.cc |
index 7c36a3ff552e40ccf701abdb466e489560500562..d9315434860bbd516a8e0b415ca569b50c7667f6 100644 |
--- a/cc/resources/picture_layer_tiling_set.cc |
+++ b/cc/resources/picture_layer_tiling_set.cc |
@@ -65,6 +65,13 @@ void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSource( |
// Copy over tilings that are shared with the |twin_set| tiling set (if it |
// exists). |
if (twin_set) { |
+ if (twin_set->tilings_.empty()) { |
+ // If the twin (pending) tiling set is empty, it was not updated for the |
+ // current frame. So we drop tilings from our set as well, instead of |
+ // leaving behind unshared tilings that are all non-ideal. |
+ RemoveAllTilings(); |
+ } |
+ |
for (PictureLayerTiling* twin_tiling : twin_set->tilings_) { |
float contents_scale = twin_tiling->contents_scale(); |
DCHECK_GE(contents_scale, minimum_contents_scale); |
@@ -479,7 +486,8 @@ PictureLayerTilingSet::CoverageIterator::operator bool() const { |
region_iter_.has_rect(); |
} |
-void PictureLayerTilingSet::AsValueInto(base::debug::TracedValue* state) const { |
+void PictureLayerTilingSet::AsValueInto( |
+ base::trace_event::TracedValue* state) const { |
for (size_t i = 0; i < tilings_.size(); ++i) { |
state->BeginDictionary(); |
tilings_[i]->AsValueInto(state); |