Chromium Code Reviews| Index: cc/layers/picture_layer_impl_unittest.cc |
| diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc |
| index bd6a8f7f479f7fd466a466cfadcbf30597a07103..f72abfbe7f1296ddab3d348b3587065b4da2177f 100644 |
| --- a/cc/layers/picture_layer_impl_unittest.cc |
| +++ b/cc/layers/picture_layer_impl_unittest.cc |
| @@ -2498,6 +2498,11 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForGpuRasterization) { |
| } |
| TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
| + base::TimeTicks time_ticks; |
| + time_ticks += base::TimeDelta::FromMilliseconds(1); |
| + host_impl_.SetCurrentBeginFrameArgs( |
| + CreateBeginFrameArgsForTesting(time_ticks)); |
| + |
| gfx::Size tile_size(100, 100); |
| gfx::Size layer_bounds(1000, 1000); |
| @@ -2563,6 +2568,74 @@ TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
| EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, |
| unique_tiles.size()); |
| + time_ticks += base::TimeDelta::FromMilliseconds(200); |
| + host_impl_.SetCurrentBeginFrameArgs( |
| + CreateBeginFrameArgsForTesting(time_ticks)); |
| + |
| + gfx::Rect viewport = gfx::Rect(1100, 1100, 500, 500); |
| + gfx::Transform transform; |
| + bool resourceless_software_draw = false; |
| + host_impl_.SetExternalDrawConstraints(transform, |
|
vmpstr
2014/09/09 17:37:35
nit: Does host_impl_.SetViewportSize work here ins
USE eero AT chromium.org
2014/09/10 07:48:19
I don't see how as it is not about size but positi
|
| + viewport, |
| + viewport, |
| + viewport, |
| + transform, |
| + resourceless_software_draw); |
| + pending_layer_->draw_properties().visible_content_rect = viewport; |
| + pending_layer_->draw_properties().screen_space_transform = transform; |
|
vmpstr
2014/09/09 17:37:35
I don't think you need this?
USE eero AT chromium.org
2014/09/10 07:48:19
I'll check.
|
| + pending_layer_->UpdateTiles(NULL); |
| + |
| + unique_tiles.clear(); |
| + reached_prepaint = false; |
| + non_ideal_tile_count = 0u; |
| + low_res_tile_count = 0u; |
| + high_res_tile_count = 0u; |
| + for (it = PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); |
| + it; |
| + ++it) { |
| + Tile* tile = *it; |
| + TilePriority priority = tile->priority(PENDING_TREE); |
| + |
| + EXPECT_TRUE(tile); |
| + |
| + // Non-high res tiles only get visible tiles. Also, prepaint should only |
| + // come at the end of the iteration. |
| + if (priority.resolution != HIGH_RESOLUTION) |
| + EXPECT_EQ(TilePriority::NOW, priority.priority_bin); |
| + else if (reached_prepaint) |
| + EXPECT_NE(TilePriority::NOW, priority.priority_bin); |
| + else |
| + reached_prepaint = priority.priority_bin != TilePriority::NOW; |
| + |
| + non_ideal_tile_count += priority.resolution == NON_IDEAL_RESOLUTION; |
| + low_res_tile_count += priority.resolution == LOW_RESOLUTION; |
| + high_res_tile_count += priority.resolution == HIGH_RESOLUTION; |
| + |
| + unique_tiles.insert(tile); |
| + } |
| + |
| + EXPECT_TRUE(reached_prepaint); |
| + EXPECT_EQ(0u, non_ideal_tile_count); |
| + EXPECT_EQ(0u, low_res_tile_count); |
| + EXPECT_EQ(16u, high_res_tile_count); |
|
USE eero AT chromium.org
2014/09/09 17:13:45
Without the fix, the iterator returns only 15 high
vmpstr
2014/09/09 17:37:35
These are non-now ones, right?
USE eero AT chromium.org
2014/09/10 07:48:19
Yes, correct.
|
| + EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, |
| + unique_tiles.size()); |
| + |
| + time_ticks += base::TimeDelta::FromMilliseconds(200); |
| + host_impl_.SetCurrentBeginFrameArgs( |
| + CreateBeginFrameArgsForTesting(time_ticks)); |
| + |
| + viewport = gfx::Rect(0, 0, 500, 500); |
| + host_impl_.SetExternalDrawConstraints(transform, |
|
vmpstr
2014/09/09 17:37:35
Same comments here as above
USE eero AT chromium.org
2014/09/10 07:48:19
And the same reply.
|
| + viewport, |
| + viewport, |
| + viewport, |
| + transform, |
| + resourceless_software_draw); |
| + pending_layer_->draw_properties().visible_content_rect = viewport; |
| + pending_layer_->draw_properties().screen_space_transform = transform; |
| + pending_layer_->UpdateTiles(NULL); |
| + |
| std::vector<Tile*> high_res_tiles = high_res_tiling->AllTilesForTesting(); |
| for (std::vector<Tile*>::iterator tile_it = high_res_tiles.begin(); |
| tile_it != high_res_tiles.end(); |