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..fa0faf38ccc34b00c95bcb37b985d7fb5f9a10e4 100644 |
--- a/cc/trees/layer_tree_host_common_unittest.cc |
+++ b/cc/trees/layer_tree_host_common_unittest.cc |
@@ -8240,5 +8240,46 @@ TEST_F(LayerTreeHostCommonTest, ResetLayerDrawPropertiestest) { |
EXPECT_FALSE(child->sorted_for_recursion()); |
} |
+TEST_F(LayerTreeHostCommonTest, RenderSurfaceClipsSubtree) { |
jaydasika
2015/07/30 19:44:46
This unit test will crash without this patch.
|
+ // 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; |
+ gfx::Transform transform1(0.35, 0.0, -0.9, 0.0, 0.87, 0.35, 0.33, 0.0, 0.32, |
+ -0.93, 0.12, 0.0, 0.0, 0.0, -0.0025, 1); |
+ gfx::Transform transform2(-1.14, -0.09, +0.32, +7.98, -0.38, -0.19, -0.9366, |
+ +0.04, +0.15, -1.19, +0.12, +17.4304, 0, 0, 0, 1); |
ajuma
2015/07/30 20:56:50
I assume these numbers come from an actual page wh
jaydasika
2015/07/31 00:46:29
I am still working on it. transform2 has to be suc
|
+ |
+ 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); |
+ |
+ ClipTree tree = root->layer_tree_impl()->property_trees()->clip_tree; |
+ ClipNode* node = tree.Node(3); |
+ EXPECT_EQ(node->owner_id, render_surface->id()); |
+ EXPECT_TRUE(node->data.render_surface_applies_clip); |
ajuma
2015/07/30 20:56:50
Please also add an expectation for the test_layer'
jaydasika
2015/07/31 00:46:29
Done.
|
+} |
+ |
} // namespace |
} // namespace cc |