| 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 bc58bfd381f7acb48f857ce785e729516d60c21b..34ca241bcc925a323bc18c820f36638b35dc3045 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -8240,5 +8240,58 @@ TEST_F(LayerTreeHostCommonTest, ResetLayerDrawPropertiestest) {
|
| EXPECT_FALSE(child->sorted_for_recursion());
|
| }
|
|
|
| +TEST_F(LayerTreeHostCommonTest, RenderSurfaceClipsSubtree) {
|
| + // Ensure that a Clip Node is added when a render surface applies clip.
|
| + LayerImpl* root = root_layer();
|
| + LayerImpl* significant_transform = AddChildToRoot<LayerImpl>();
|
| + LayerImpl* layer_clips_subtree = AddChild<LayerImpl>(significant_transform);
|
| + LayerImpl* render_surface = AddChild<LayerImpl>(layer_clips_subtree);
|
| + LayerImpl* test_layer = AddChild<LayerImpl>(render_surface);
|
| +
|
| + const gfx::Transform identity_matrix;
|
| + // This transform should be a significant one so that a transform node is
|
| + // formed for it.
|
| + gfx::Transform transform1;
|
| + transform1.RotateAboutYAxis(45);
|
| + transform1.RotateAboutXAxis(30);
|
| + // This transform should be a 3d transform as we want the render surface
|
| + // to flatten the transform
|
| + gfx::Transform transform2;
|
| + transform2.Translate3d(10, 10, 10);
|
| +
|
| + layer_clips_subtree->SetMasksToBounds(true);
|
| + test_layer->SetDrawsContent(true);
|
| +
|
| + SetLayerPropertiesForTesting(root, identity_matrix, gfx::Point3F(),
|
| + gfx::PointF(), gfx::Size(30, 30), true, false,
|
| + true);
|
| + SetLayerPropertiesForTesting(significant_transform, transform1,
|
| + gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30),
|
| + true, false, false);
|
| + SetLayerPropertiesForTesting(layer_clips_subtree, identity_matrix,
|
| + gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30),
|
| + true, false, false);
|
| + SetLayerPropertiesForTesting(render_surface, transform2, gfx::Point3F(),
|
| + gfx::PointF(), gfx::Size(30, 30), true, false,
|
| + true);
|
| + SetLayerPropertiesForTesting(test_layer, identity_matrix, gfx::Point3F(),
|
| + gfx::PointF(), gfx::Size(30, 30), true, false,
|
| + false);
|
| +
|
| + ExecuteCalculateDrawProperties(root);
|
| +
|
| + TransformTree transform_tree =
|
| + root->layer_tree_impl()->property_trees()->transform_tree;
|
| + TransformNode* transform_node = transform_tree.Node(2);
|
| + EXPECT_EQ(transform_node->owner_id, significant_transform->id());
|
| +
|
| + ClipTree clip_tree = root->layer_tree_impl()->property_trees()->clip_tree;
|
| + ClipNode* clip_node = clip_tree.Node(3);
|
| + EXPECT_EQ(clip_node->owner_id, render_surface->id());
|
| + EXPECT_TRUE(clip_node->data.inherit_parent_target_space_clip);
|
| + EXPECT_EQ(test_layer->visible_rect_from_property_trees().ToString(),
|
| + test_layer->visible_layer_rect().ToString());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|