Index: cc/tiles/tile_manager_unittest.cc |
diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc |
index ff67be2c6e13a813ffbed0998046a0c44ba4bca4..465b8a72efcb3ea40b16902b9132e8a7a795c5c5 100644 |
--- a/cc/tiles/tile_manager_unittest.cc |
+++ b/cc/tiles/tile_manager_unittest.cc |
@@ -1452,6 +1452,50 @@ TEST_F(TileManagerTilePriorityQueueTest, RasterQueueAllUsesCorrectTileBounds) { |
} |
} |
+TEST_F(TileManagerTilePriorityQueueTest, NoRasterTasksforSolidColorTiles) { |
+ gfx::Size size(10, 10); |
+ const gfx::Size layer_bounds(10, 10); |
+ |
+ scoped_ptr<FakeDisplayListRecordingSource> recording_source = |
+ FakeDisplayListRecordingSource::CreateFilledRecordingSource(layer_bounds); |
+ |
+ SkPaint solid_paint; |
+ SkColor solid_color = SkColorSetARGB(255, 12, 23, 34); |
+ solid_paint.setColor(solid_color); |
+ recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), |
+ solid_paint); |
+ recording_source->Rerecord(); |
+ |
+ scoped_refptr<DisplayListRasterSource> raster_source = |
+ DisplayListRasterSource::CreateFromDisplayListRecordingSource( |
+ recording_source.get(), false); |
+ |
+ FakePictureLayerTilingClient tiling_client; |
+ tiling_client.SetTileSize(size); |
+ |
+ scoped_ptr<PictureLayerImpl> layer_impl = |
+ PictureLayerImpl::Create(host_impl_.active_tree(), 1, false, nullptr); |
+ PictureLayerTilingSet* tiling_set = layer_impl->picture_layer_tiling_set(); |
+ |
+ PictureLayerTiling* tiling = tiling_set->AddTiling(1.0f, raster_source); |
sohanjg
2016/01/07 12:32:16
this causes a dcheck fail for solid color raster s
|
+ tiling->set_resolution(HIGH_RESOLUTION); |
+ tiling->CreateAllTilesForTesting(); |
+ tiling->SetTilePriorityRectsForTesting(gfx::Rect(size), // Visible rect. |
+ gfx::Rect(size), // Skewport rect. |
+ gfx::Rect(size), // Soon rect. |
+ gfx::Rect(size)); // Eventually rect. |
+ |
+ host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state()); |
+ |
+ std::vector<Tile*> tiles = tiling->AllTilesForTesting(); |
+ for (size_t tile_idx = 0; tile_idx < tiles.size(); ++tile_idx) { |
+ Tile* tile = tiles[tile_idx]; |
+ EXPECT_FALSE(tile->HasRasterTask()); |
+ EXPECT_EQ(TileDrawInfo::SOLID_COLOR_MODE, tile->draw_info().mode()); |
+ EXPECT_EQ(solid_color, tile->draw_info().solid_color()); |
+ } |
+} |
+ |
// TODO(vmpstr): Merge TileManagerTest and TileManagerTilePriorityQueueTest. |
class TileManagerTest : public testing::Test { |
public: |