| Index: cc/trees/layer_tree_host_common_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc
|
| index 2ea5b2ad8c9a0896120fbd96704e5914a7750276..30a0f44b3d4d725d686593c17f690a4585479642 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -146,6 +146,8 @@ TEST_F(LayerTreeHostCommonTest, DoNotSkipLayersWithHandlers) {
|
| LayerImpl* parent = root_layer();
|
| LayerImpl* child = AddChild<LayerImpl>(parent);
|
| LayerImpl* grand_child = AddChild<LayerImpl>(child);
|
| + child->SetDrawsContent(true);
|
| + grand_child->SetDrawsContent(true);
|
|
|
| gfx::Transform identity_matrix;
|
| SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(),
|
| @@ -468,6 +470,7 @@ TEST_F(LayerTreeHostCommonTest, TransformsForSingleRenderSurface) {
|
|
|
| // Child is set up so that a new render surface should be created.
|
| child->SetOpacity(0.5f);
|
| + child->SetDrawsContent(true);
|
|
|
| gfx::Transform parent_layer_transform;
|
| parent_layer_transform.Scale3d(1.f, 0.9f, 1.f);
|
| @@ -662,12 +665,19 @@ TEST_F(LayerTreeHostCommonTest, TransformsForRenderSurfaceHierarchy) {
|
|
|
| LayerImpl* root = root_layer();
|
| LayerImpl* parent = AddChildToRoot<LayerImpl>();
|
| + parent->SetDrawsContent(true);
|
| LayerImpl* render_surface1 = AddChild<LayerImpl>(parent);
|
| + render_surface1->SetDrawsContent(true);
|
| LayerImpl* render_surface2 = AddChild<LayerImpl>(render_surface1);
|
| + render_surface2->SetDrawsContent(true);
|
| LayerImpl* child_of_root = AddChild<LayerImpl>(parent);
|
| + child_of_root->SetDrawsContent(true);
|
| LayerImpl* child_of_rs1 = AddChild<LayerImpl>(render_surface1);
|
| + child_of_rs1->SetDrawsContent(true);
|
| LayerImpl* child_of_rs2 = AddChild<LayerImpl>(render_surface2);
|
| + child_of_rs2->SetDrawsContent(true);
|
| LayerImpl* grand_child_of_root = AddChild<LayerImpl>(child_of_root);
|
| + grand_child_of_root->SetDrawsContent(true);
|
| LayerImpl* grand_child_of_rs1 = AddChild<LayerImpl>(child_of_rs1);
|
| grand_child_of_rs1->SetDrawsContent(true);
|
| LayerImpl* grand_child_of_rs2 = AddChild<LayerImpl>(child_of_rs2);
|
| @@ -891,6 +901,7 @@ TEST_F(LayerTreeHostCommonTest, TransformsForFlatteningLayer) {
|
|
|
| LayerImpl* root = root_layer();
|
| LayerImpl* child = AddChildToRoot<LayerImpl>();
|
| + child->SetDrawsContent(true);
|
| LayerImpl* grand_child = AddChild<LayerImpl>(child);
|
| grand_child->SetDrawsContent(true);
|
| LayerImpl* great_grand_child = AddChild<LayerImpl>(grand_child);
|
| @@ -1255,7 +1266,8 @@ TEST_F(LayerTreeHostCommonTest,
|
| ASSERT_TRUE(parent->render_surface());
|
| EXPECT_EQ(1U, parent->render_surface()->layer_list().size());
|
| EXPECT_EQ(2U, render_surface_layer_list.size());
|
| - EXPECT_EQ(gfx::Rect(0, 0, 10, 10), parent->drawable_content_rect());
|
| + EXPECT_EQ(gfx::RectF(0, 0, 10, 10),
|
| + parent->render_surface()->DrawableContentRect());
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonTest, RenderSurfaceForBlendMode) {
|
| @@ -1614,9 +1626,13 @@ TEST_F(LayerTreeHostCommonTest, IsClippedIsSetCorrectlyLayerImpl) {
|
| const gfx::Transform identity_matrix;
|
| LayerImpl* root = root_layer();
|
| LayerImpl* parent = AddChild<LayerImpl>(root);
|
| + parent->SetDrawsContent(true);
|
| LayerImpl* child1 = AddChild<LayerImpl>(parent);
|
| + child1->SetDrawsContent(true);
|
| LayerImpl* child2 = AddChild<LayerImpl>(parent);
|
| + child2->SetDrawsContent(true);
|
| LayerImpl* grand_child = AddChild<LayerImpl>(child1);
|
| + grand_child->SetDrawsContent(true);
|
| LayerImpl* leaf_node1 = AddChild<LayerImpl>(grand_child);
|
| leaf_node1->SetDrawsContent(true);
|
| LayerImpl* leaf_node2 = AddChild<LayerImpl>(child2);
|
| @@ -1893,9 +1909,13 @@ TEST_F(LayerTreeHostCommonTest, DrawableContentRectForLayers) {
|
| LayerImpl* parent = root_layer();
|
| LayerImpl* child = AddChild<LayerImpl>(parent);
|
| LayerImpl* grand_child1 = AddChild<LayerImpl>(child);
|
| + grand_child1->SetDrawsContent(true);
|
| LayerImpl* grand_child2 = AddChild<LayerImpl>(child);
|
| + grand_child2->SetDrawsContent(true);
|
| LayerImpl* grand_child3 = AddChild<LayerImpl>(child);
|
| + grand_child3->SetDrawsContent(true);
|
| LayerImpl* grand_child4 = AddChild<LayerImpl>(child);
|
| + grand_child4->SetDrawsContent(true);
|
|
|
| SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(),
|
| gfx::PointF(), gfx::Size(500, 500), true, false,
|
| @@ -2207,8 +2227,15 @@ TEST_F(LayerTreeHostCommonTest, AnimationsForRenderSurfaceHierarchy) {
|
| LayerImpl* child_of_root = AddChildToRoot<LayerImpl>();
|
| LayerImpl* grand_child_of_root = AddChild<LayerImpl>(child_of_root);
|
|
|
| + parent->SetDrawsContent(true);
|
| + render_surface1->SetDrawsContent(true);
|
| + child_of_rs1->SetDrawsContent(true);
|
| grand_child_of_rs1->SetDrawsContent(true);
|
| + render_surface2->SetDrawsContent(true);
|
| + child_of_rs2->SetDrawsContent(true);
|
| grand_child_of_rs2->SetDrawsContent(true);
|
| + child_of_root->SetDrawsContent(true);
|
| + grand_child_of_root->SetDrawsContent(true);
|
|
|
| gfx::Transform layer_transform;
|
| layer_transform.Translate(1.0, 1.0);
|
| @@ -2729,7 +2756,6 @@ TEST_F(LayerTreeHostCommonTest, DrawableAndVisibleContentRectsForSimpleLayers) {
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible_layer_rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -2778,7 +2804,6 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible content rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -2861,7 +2886,6 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible content rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -3388,7 +3412,6 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible content rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -3453,7 +3476,6 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible content rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -3746,7 +3768,6 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| EXPECT_EQ(gfx::RectF(100.f, 100.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawable_content_rect());
|
|
|
| // Layers that do not draw content should have empty visible content rects.
|
| EXPECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_layer_rect());
|
| @@ -3871,7 +3892,6 @@ TEST_F(LayerTreeHostCommonTest, DrawableAndVisibleContentRectsInHighDPI) {
|
| // device_scale_factor.
|
| EXPECT_EQ(gfx::RectF(200.f, 200.f),
|
| root->render_surface()->DrawableContentRect());
|
| - EXPECT_EQ(gfx::Rect(0, 0, 200, 200), root->drawable_content_rect());
|
| EXPECT_EQ(gfx::RectF(10.f, 10.f, 190.f, 190.f),
|
| render_surface1->render_surface()->DrawableContentRect());
|
|
|
| @@ -4418,19 +4438,22 @@ TEST_F(LayerTreeHostCommonScalingTest, LayerTransformsInHighDPI) {
|
| gfx::Transform identity_matrix;
|
|
|
| LayerImpl* parent = root_layer();
|
| + parent->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(),
|
| gfx::PointF(), gfx::Size(100, 100), false, true,
|
| true);
|
|
|
| LayerImpl* child = AddChildToRoot<LayerImpl>();
|
| + child->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(child, identity_matrix, gfx::Point3F(),
|
| gfx::PointF(2.f, 2.f), gfx::Size(10, 10), false,
|
| true, false);
|
|
|
| - LayerImpl* child_empty = AddChildToRoot<LayerImpl>();
|
| - SetLayerPropertiesForTesting(child_empty, identity_matrix, gfx::Point3F(),
|
| - gfx::PointF(2.f, 2.f), gfx::Size(), false, true,
|
| - false);
|
| + LayerImpl* child2 = AddChildToRoot<LayerImpl>();
|
| + child2->SetDrawsContent(true);
|
| + SetLayerPropertiesForTesting(child2, identity_matrix, gfx::Point3F(),
|
| + gfx::PointF(2.f, 2.f), gfx::Size(5, 5), false,
|
| + true, false);
|
|
|
| float device_scale_factor = 2.5f;
|
| gfx::Size viewport_size(100, 100);
|
| @@ -4438,7 +4461,7 @@ TEST_F(LayerTreeHostCommonScalingTest, LayerTransformsInHighDPI) {
|
|
|
| EXPECT_IDEAL_SCALE_EQ(device_scale_factor, parent);
|
| EXPECT_IDEAL_SCALE_EQ(device_scale_factor, child);
|
| - EXPECT_IDEAL_SCALE_EQ(device_scale_factor, child_empty);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor, child2);
|
|
|
| EXPECT_EQ(1u, render_surface_layer_list_impl()->size());
|
|
|
| @@ -4463,7 +4486,7 @@ TEST_F(LayerTreeHostCommonScalingTest, LayerTransformsInHighDPI) {
|
| EXPECT_FLOAT_RECT_EQ(expected_parent_draw_rect, parent_draw_rect);
|
| EXPECT_FLOAT_RECT_EQ(expected_parent_draw_rect, parent_screen_space_rect);
|
|
|
| - // Verify child and child_empty transforms. They should match.
|
| + // Verify child and child2 transforms. They should match.
|
| gfx::Transform expected_child_transform;
|
| expected_child_transform.Scale(device_scale_factor, device_scale_factor);
|
| expected_child_transform.Translate(child->position().x(),
|
| @@ -4473,11 +4496,11 @@ TEST_F(LayerTreeHostCommonScalingTest, LayerTransformsInHighDPI) {
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform,
|
| child->screen_space_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform,
|
| - child_empty->draw_transform());
|
| + child2->draw_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform,
|
| - child_empty->screen_space_transform());
|
| + child2->screen_space_transform());
|
|
|
| - // Verify results of transformed child and child_empty rects. They should
|
| + // Verify results of transformed child and child2 rects. They should
|
| // match.
|
| gfx::RectF child_bounds(gfx::SizeF(child->bounds()));
|
|
|
| @@ -4486,18 +4509,18 @@ TEST_F(LayerTreeHostCommonScalingTest, LayerTransformsInHighDPI) {
|
| gfx::RectF child_screen_space_rect =
|
| MathUtil::MapClippedRect(child->screen_space_transform(), child_bounds);
|
|
|
| - gfx::RectF child_empty_draw_rect =
|
| - MathUtil::MapClippedRect(child_empty->draw_transform(), child_bounds);
|
| - gfx::RectF child_empty_screen_space_rect = MathUtil::MapClippedRect(
|
| - child_empty->screen_space_transform(), child_bounds);
|
| + gfx::RectF child2_draw_rect =
|
| + MathUtil::MapClippedRect(child2->draw_transform(), child_bounds);
|
| + gfx::RectF child2_screen_space_rect =
|
| + MathUtil::MapClippedRect(child2->screen_space_transform(), child_bounds);
|
|
|
| gfx::RectF expected_child_draw_rect(child->position(),
|
| gfx::SizeF(child->bounds()));
|
| expected_child_draw_rect.Scale(device_scale_factor);
|
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_draw_rect);
|
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_screen_space_rect);
|
| - EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_empty_draw_rect);
|
| - EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_empty_screen_space_rect);
|
| + EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child2_draw_rect);
|
| + EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child2_screen_space_rect);
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonScalingTest, SurfaceLayerTransformsInHighDPI) {
|
| @@ -4514,6 +4537,7 @@ TEST_F(LayerTreeHostCommonScalingTest, SurfaceLayerTransformsInHighDPI) {
|
| gfx::PointF(), gfx::Size(100, 100), false, true,
|
| false);
|
| LayerImpl* parent = AddChildToRoot<LayerImpl>();
|
| + parent->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(),
|
| gfx::PointF(), gfx::Size(100, 100), false, true,
|
| false);
|
| @@ -4604,11 +4628,13 @@ TEST_F(LayerTreeHostCommonScalingTest, SmallIdealScale) {
|
| root->SetBounds(gfx::Size(100, 100));
|
|
|
| LayerImpl* parent = AddChildToRoot<LayerImpl>();
|
| + parent->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(parent, parent_scale_matrix, gfx::Point3F(),
|
| gfx::PointF(), gfx::Size(100, 100), false, true,
|
| false);
|
|
|
| LayerImpl* child_scale = AddChild<LayerImpl>(parent);
|
| + child_scale->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(child_scale, child_scale_matrix, gfx::Point3F(),
|
| gfx::PointF(2.f, 2.f), gfx::Size(10, 10), false,
|
| true, false);
|
| @@ -4646,11 +4672,13 @@ TEST_F(LayerTreeHostCommonScalingTest, IdealScaleForAnimatingLayer) {
|
| root->SetBounds(gfx::Size(100, 100));
|
|
|
| LayerImpl* parent = AddChildToRoot<LayerImpl>();
|
| + parent->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(parent, parent_scale_matrix, gfx::Point3F(),
|
| gfx::PointF(), gfx::Size(100, 100), false, true,
|
| false);
|
|
|
| LayerImpl* child_scale = AddChild<LayerImpl>(parent);
|
| + child_scale->SetDrawsContent(true);
|
| SetLayerPropertiesForTesting(child_scale, child_scale_matrix, gfx::Point3F(),
|
| gfx::PointF(2.f, 2.f), gfx::Size(10, 10), false,
|
| true, false);
|
| @@ -5606,6 +5634,8 @@ TEST_F(LayerTreeHostCommonTest, ClipParentWithInterveningRenderSurface) {
|
| LayerImpl* intervening = AddChild<LayerImpl>(render_surface1);
|
| LayerImpl* render_surface2 = AddChild<LayerImpl>(intervening);
|
| LayerImpl* clip_child = AddChild<LayerImpl>(render_surface2);
|
| + render_surface1->SetDrawsContent(true);
|
| + render_surface2->SetDrawsContent(true);
|
| clip_child->SetDrawsContent(true);
|
|
|
| clip_child->SetClipParent(clip_parent);
|
| @@ -5697,6 +5727,8 @@ TEST_F(LayerTreeHostCommonTest, ClipParentScrolledInterveningLayer) {
|
| LayerImpl* intervening = AddChild<LayerImpl>(render_surface1);
|
| LayerImpl* render_surface2 = AddChild<LayerImpl>(intervening);
|
| LayerImpl* clip_child = AddChild<LayerImpl>(render_surface2);
|
| + render_surface1->SetDrawsContent(true);
|
| + render_surface2->SetDrawsContent(true);
|
| clip_child->SetDrawsContent(true);
|
|
|
| clip_child->SetClipParent(clip_parent);
|
| @@ -5786,6 +5818,7 @@ TEST_F(LayerTreeHostCommonTest, DescendantsOfClipChildren) {
|
| LayerImpl* intervening = AddChild<LayerImpl>(clip_parent);
|
| LayerImpl* clip_child = AddChild<LayerImpl>(intervening);
|
| LayerImpl* child = AddChild<LayerImpl>(clip_child);
|
| + clip_child->SetDrawsContent(true);
|
| child->SetDrawsContent(true);
|
|
|
| clip_child->SetClipParent(clip_parent);
|
| @@ -6638,8 +6671,11 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| LayerPositionConstraint constraint;
|
| constraint.set_is_fixed_position(true);
|
| + container->SetDrawsContent(true);
|
| + fixed->SetDrawsContent(true);
|
| fixed->SetPositionConstraint(constraint);
|
|
|
| + scroller->SetDrawsContent(true);
|
| scroller->SetScrollClipLayer(container->id());
|
|
|
| gfx::Transform identity_transform;
|
| @@ -9044,7 +9080,9 @@ TEST_F(LayerTreeHostCommonTest,
|
| gfx::PointF(), gfx::Size(50, 50), true, false,
|
| false);
|
| root->SetMasksToBounds(true);
|
| + root->SetDrawsContent(true);
|
| render_surface->SetMasksToBounds(true);
|
| + render_surface->SetDrawsContent(true);
|
| test_layer->SetMasksToBounds(true);
|
| test_layer->SetDrawsContent(true);
|
| ExecuteCalculateDrawProperties(root);
|
| @@ -9114,10 +9152,22 @@ TEST_F(LayerTreeHostCommonTest, LargeTransformTest) {
|
|
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| - EXPECT_TRUE(std::isinf(
|
| - render_surface2->render_surface()->draw_transform().matrix().get(0, 0)));
|
| - EXPECT_TRUE(std::isinf(
|
| - render_surface2->render_surface()->draw_transform().matrix().get(1, 1)));
|
| + bool is_inf_or_nan =
|
| + std::isinf(
|
| + render_surface2->render_surface()->draw_transform().matrix().get(
|
| + 0, 0)) ||
|
| + std::isnan(
|
| + render_surface2->render_surface()->draw_transform().matrix().get(0,
|
| + 0));
|
| + EXPECT_TRUE(is_inf_or_nan);
|
| + is_inf_or_nan =
|
| + std::isinf(
|
| + render_surface2->render_surface()->draw_transform().matrix().get(
|
| + 1, 1)) ||
|
| + std::isnan(
|
| + render_surface2->render_surface()->draw_transform().matrix().get(1,
|
| + 1));
|
| + EXPECT_TRUE(is_inf_or_nan);
|
| EXPECT_EQ(gfx::RectF(),
|
| render_surface2->render_surface()->DrawableContentRect());
|
|
|
|
|