| Index: cc/resources/tiling_set_eviction_queue.cc
|
| diff --git a/cc/resources/tiling_set_eviction_queue.cc b/cc/resources/tiling_set_eviction_queue.cc
|
| index c98cc7afd969dc14be9148a892c4a831a0ac0602..7b9fb1630e93fb67f4ef7e6a72a6ad6deda7543c 100644
|
| --- a/cc/resources/tiling_set_eviction_queue.cc
|
| +++ b/cc/resources/tiling_set_eviction_queue.cc
|
| @@ -188,10 +188,10 @@ TilingSetEvictionQueue::EvictionRectIterator::EvictionRectIterator()
|
| TilingSetEvictionQueue::EvictionRectIterator::EvictionRectIterator(
|
| std::vector<PictureLayerTiling*>* tilings,
|
| WhichTree tree,
|
| - bool skip_pending_visible_rect)
|
| + PictureLayerTiling::PriorityRectType priority_rect_type)
|
| : tilings_(tilings),
|
| tree_(tree),
|
| - skip_pending_visible_rect_(skip_pending_visible_rect),
|
| + priority_rect_type_(priority_rect_type),
|
| tiling_index_(0) {
|
| }
|
|
|
| @@ -219,12 +219,16 @@ bool TilingSetEvictionQueue::EvictionRectIterator::GetFirstTileAndCheckIfValid(
|
| // If there's nothing to evict, return false.
|
| if (!tile || !tile->HasResource())
|
| return false;
|
| - if (skip_pending_visible_rect_ &&
|
| + // After the pending visible rect has been processed, we must return false
|
| + // for pending visible rect tiles as tiling iterators do not ignore those
|
| + // tiles.
|
| + if (priority_rect_type_ > PictureLayerTiling::PENDING_VISIBLE_RECT &&
|
| tiling->pending_visible_rect().Intersects(tile->content_rect())) {
|
| return false;
|
| }
|
| (*tilings_)[tiling_index_]->UpdateRequiredStatesOnTile(tile);
|
| - prioritized_tile_ = (*tilings_)[tiling_index_]->MakePrioritizedTile(tile);
|
| + prioritized_tile_ = (*tilings_)[tiling_index_]->MakePrioritizedTile(
|
| + tile, priority_rect_type_);
|
| // In other cases, the tile we got is a viable candidate, return true.
|
| return true;
|
| }
|
| @@ -233,9 +237,7 @@ bool TilingSetEvictionQueue::EvictionRectIterator::GetFirstTileAndCheckIfValid(
|
| TilingSetEvictionQueue::EventuallyTilingIterator::EventuallyTilingIterator(
|
| std::vector<PictureLayerTiling*>* tilings,
|
| WhichTree tree)
|
| - : EvictionRectIterator(tilings,
|
| - tree,
|
| - true /* skip_pending_visible_rect */) {
|
| + : EvictionRectIterator(tilings, tree, PictureLayerTiling::EVENTUALLY_RECT) {
|
| // Find the first tiling with a tile.
|
| while (tiling_index_ < tilings_->size()) {
|
| if (!(*tilings_)[tiling_index_]->has_eventually_rect_tiles()) {
|
| @@ -287,7 +289,7 @@ TilingSetEvictionQueue::SoonBorderTilingIterator::SoonBorderTilingIterator(
|
| WhichTree tree)
|
| : EvictionRectIterator(tilings,
|
| tree,
|
| - true /* skip_pending_visible_rect */) {
|
| + PictureLayerTiling::SOON_BORDER_RECT) {
|
| // Find the first tiling with a tile.
|
| while (tiling_index_ < tilings_->size()) {
|
| if (!(*tilings_)[tiling_index_]->has_soon_border_rect_tiles()) {
|
| @@ -337,9 +339,7 @@ TilingSetEvictionQueue::SoonBorderTilingIterator&
|
| TilingSetEvictionQueue::SkewportTilingIterator::SkewportTilingIterator(
|
| std::vector<PictureLayerTiling*>* tilings,
|
| WhichTree tree)
|
| - : EvictionRectIterator(tilings,
|
| - tree,
|
| - true /* skip_pending_visible_rect */) {
|
| + : EvictionRectIterator(tilings, tree, PictureLayerTiling::SKEWPORT_RECT) {
|
| // Find the first tiling with a tile.
|
| while (tiling_index_ < tilings_->size()) {
|
| if (!(*tilings_)[tiling_index_]->has_skewport_rect_tiles()) {
|
| @@ -392,7 +392,7 @@ TilingSetEvictionQueue::PendingVisibleTilingIterator::
|
| bool return_required_for_activation_tiles)
|
| : EvictionRectIterator(tilings,
|
| tree,
|
| - false /* skip_pending_visible_rect */),
|
| + PictureLayerTiling::PENDING_VISIBLE_RECT),
|
| return_required_for_activation_tiles_(
|
| return_required_for_activation_tiles) {
|
| // Find the first tiling with a tile.
|
| @@ -456,9 +456,7 @@ TilingSetEvictionQueue::VisibleTilingIterator::VisibleTilingIterator(
|
| WhichTree tree,
|
| bool return_occluded_tiles,
|
| bool return_required_for_activation_tiles)
|
| - : EvictionRectIterator(tilings,
|
| - tree,
|
| - false /* skip_pending_visible_rect */),
|
| + : EvictionRectIterator(tilings, tree, PictureLayerTiling::VISIBLE_RECT),
|
| return_occluded_tiles_(return_occluded_tiles),
|
| return_required_for_activation_tiles_(
|
| return_required_for_activation_tiles) {
|
|
|