| 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 6817657d07dd8ec3c4685866c9914aa6aabd1235..055ae9165c458fa80b7809b7a4752a182649953d 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -878,16 +878,20 @@ TEST_F(LayerTreeHostCommonTest, TransformsForRenderSurfaceHierarchy) {
|
| // Only layers that are associated with render surfaces should have an actual
|
| // RenderSurface() value.
|
| ASSERT_TRUE(GetRenderSurface(root));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_root));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_root));
|
| + ASSERT_EQ(GetRenderSurface(child_of_root), GetRenderSurface(root));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_root), GetRenderSurface(root));
|
|
|
| - ASSERT_TRUE(GetRenderSurface(render_surface1));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_rs1));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs1));
|
| + ASSERT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root));
|
| + ASSERT_EQ(GetRenderSurface(child_of_rs1), GetRenderSurface(render_surface1));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_rs1),
|
| + GetRenderSurface(render_surface1));
|
|
|
| - ASSERT_TRUE(GetRenderSurface(render_surface2));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_rs2));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs2));
|
| + ASSERT_NE(GetRenderSurface(render_surface2), GetRenderSurface(root));
|
| + ASSERT_NE(GetRenderSurface(render_surface2),
|
| + GetRenderSurface(render_surface1));
|
| + ASSERT_EQ(GetRenderSurface(child_of_rs2), GetRenderSurface(render_surface2));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_rs2),
|
| + GetRenderSurface(render_surface2));
|
|
|
| // Verify all render target accessors
|
| EXPECT_EQ(GetRenderSurface(root), parent->render_target());
|
| @@ -1548,7 +1552,7 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceDrawOpacity) {
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| ASSERT_TRUE(GetRenderSurface(surface1));
|
| - ASSERT_FALSE(GetRenderSurface(not_surface));
|
| + ASSERT_EQ(GetRenderSurface(not_surface), GetRenderSurface(surface1));
|
| ASSERT_TRUE(GetRenderSurface(surface2));
|
| EXPECT_EQ(0.5f, GetRenderSurface(surface1)->draw_opacity());
|
| // surface2's draw opacity should include the opacity of not-surface and
|
| @@ -1572,7 +1576,7 @@ TEST_F(LayerTreeHostCommonTest, ForceRenderSurface) {
|
|
|
| // The root layer always creates a render surface
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_TRUE(GetRenderSurface(render_surface1));
|
| + EXPECT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root));
|
| }
|
|
|
| {
|
| @@ -1580,7 +1584,7 @@ TEST_F(LayerTreeHostCommonTest, ForceRenderSurface) {
|
| render_surface1->layer_tree_impl()->property_trees()->needs_rebuild = true;
|
| ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root);
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_FALSE(GetRenderSurface(render_surface1));
|
| + EXPECT_EQ(GetRenderSurface(render_surface1), GetRenderSurface(root));
|
| }
|
| }
|
|
|
| @@ -1607,8 +1611,8 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfacesFlattenScreenSpaceTransform) {
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| EXPECT_TRUE(GetRenderSurface(parent));
|
| - EXPECT_FALSE(GetRenderSurface(child));
|
| - EXPECT_FALSE(GetRenderSurface(grand_child));
|
| + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(parent));
|
| + EXPECT_EQ(GetRenderSurface(grand_child), GetRenderSurface(parent));
|
|
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), child->DrawTransform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(),
|
| @@ -1947,6 +1951,42 @@ TEST_F(LayerTreeHostCommonTest, ClipRectIsPropagatedCorrectlyToSurfaces) {
|
| GetRenderSurface(grand_child3)->clip_rect());
|
| }
|
|
|
| +TEST_F(LayerTreeHostCommonTest, HitTestingWhenSurfacesDisabled) {
|
| + LayerImpl* root = root_layer_for_testing();
|
| + LayerImpl* parent = AddChild<LayerImpl>(root);
|
| + LayerImpl* child = AddChild<LayerImpl>(parent);
|
| + LayerImpl* grand_child = AddChild<LayerImpl>(child);
|
| + LayerImpl* leaf_node = AddChild<LayerImpl>(grand_child);
|
| +
|
| + root->SetBounds(gfx::Size(100, 100));
|
| + parent->SetPosition(gfx::PointF(2.f, 2.f));
|
| + parent->SetBounds(gfx::Size(400, 400));
|
| + parent->SetMasksToBounds(true);
|
| + child->SetPosition(gfx::PointF(4.f, 4.f));
|
| + child->SetBounds(gfx::Size(800, 800));
|
| + child->SetMasksToBounds(true);
|
| + child->test_properties()->force_render_surface = true;
|
| + grand_child->SetPosition(gfx::PointF(8.f, 8.f));
|
| + grand_child->SetBounds(gfx::Size(1500, 1500));
|
| + grand_child->test_properties()->force_render_surface = true;
|
| + leaf_node->SetPosition(gfx::PointF(16.f, 16.f));
|
| + leaf_node->SetBounds(gfx::Size(2000, 2000));
|
| +
|
| + root->SetDrawsContent(true);
|
| + parent->SetDrawsContent(true);
|
| + child->SetDrawsContent(true);
|
| + grand_child->SetDrawsContent(true);
|
| + leaf_node->SetDrawsContent(true);
|
| +
|
| + host_impl()->set_resourceless_software_draw_for_testing();
|
| + ExecuteCalculateDrawPropertiesWithoutSeparateSurfaces(root);
|
| + gfx::PointF test_point(90.f, 90.f);
|
| + LayerImpl* result_layer =
|
| + root->layer_tree_impl()->FindLayerThatIsHitByPoint(test_point);
|
| + ASSERT_TRUE(result_layer);
|
| + EXPECT_EQ(leaf_node, result_layer);
|
| +}
|
| +
|
| TEST_F(LayerTreeHostCommonTest, AnimationsForRenderSurfaceHierarchy) {
|
| LayerImpl* root = root_layer_for_testing();
|
| LayerImpl* render_surface1 = AddChildToRoot<LayerImpl>();
|
| @@ -2046,16 +2086,20 @@ TEST_F(LayerTreeHostCommonTest, AnimationsForRenderSurfaceHierarchy) {
|
| // Only layers that are associated with render surfaces should have an actual
|
| // RenderSurface() value.
|
| ASSERT_TRUE(GetRenderSurface(root));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_root));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_root));
|
| + ASSERT_EQ(GetRenderSurface(child_of_root), GetRenderSurface(root));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_root), GetRenderSurface(root));
|
|
|
| - ASSERT_TRUE(GetRenderSurface(render_surface1));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_rs1));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs1));
|
| + ASSERT_NE(GetRenderSurface(render_surface1), GetRenderSurface(root));
|
| + ASSERT_EQ(GetRenderSurface(child_of_rs1), GetRenderSurface(render_surface1));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_rs1),
|
| + GetRenderSurface(render_surface1));
|
|
|
| - ASSERT_TRUE(GetRenderSurface(render_surface2));
|
| - ASSERT_FALSE(GetRenderSurface(child_of_rs2));
|
| - ASSERT_FALSE(GetRenderSurface(grand_child_of_rs2));
|
| + ASSERT_NE(GetRenderSurface(render_surface2), GetRenderSurface(root));
|
| + ASSERT_NE(GetRenderSurface(render_surface2),
|
| + GetRenderSurface(render_surface1));
|
| + ASSERT_EQ(GetRenderSurface(child_of_rs2), GetRenderSurface(render_surface2));
|
| + ASSERT_EQ(GetRenderSurface(grand_child_of_rs2),
|
| + GetRenderSurface(render_surface2));
|
|
|
| // Verify all render target accessors
|
| EXPECT_EQ(GetRenderSurface(root), root->render_target());
|
| @@ -3686,14 +3730,20 @@ TEST_F(LayerTreeHostCommonTest, BackFaceCullingWithoutPreserves3d) {
|
| ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root);
|
|
|
| // Verify which render surfaces were created.
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child));
|
| - EXPECT_TRUE(GetRenderSurface(front_facing_surface));
|
| - EXPECT_TRUE(GetRenderSurface(back_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_front_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_front_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_back_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_back_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(front_facing_surface), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(back_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child_of_front_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child_of_front_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child_of_back_facing_surface),
|
| + GetRenderSurface(back_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child_of_back_facing_surface),
|
| + GetRenderSurface(back_facing_surface));
|
|
|
| EXPECT_EQ(3u, update_layer_list_impl()->size());
|
| EXPECT_TRUE(UpdateLayerListImplContains(front_facing_child->id()));
|
| @@ -3794,15 +3844,21 @@ TEST_F(LayerTreeHostCommonTest, BackFaceCullingWithPreserves3d) {
|
| ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root);
|
|
|
| // Verify which render surfaces were created and used.
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child));
|
| - EXPECT_TRUE(GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(front_facing_surface), GetRenderSurface(root));
|
| // We expect that a has_render_surface was created but not used.
|
| - EXPECT_TRUE(GetRenderSurface(back_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_front_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_front_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(front_facing_child_of_back_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(back_facing_child_of_back_facing_surface));
|
| + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(back_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child_of_front_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child_of_front_facing_surface),
|
| + GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(front_facing_child_of_back_facing_surface),
|
| + GetRenderSurface(back_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(back_facing_child_of_back_facing_surface),
|
| + GetRenderSurface(back_facing_surface));
|
|
|
| EXPECT_EQ(3u, update_layer_list_impl()->size());
|
|
|
| @@ -3868,11 +3924,12 @@ TEST_F(LayerTreeHostCommonTest, BackFaceCullingWithAnimatingTransforms) {
|
|
|
| ExecuteCalculateDrawPropertiesAndSaveUpdateLayerList(root);
|
|
|
| - EXPECT_FALSE(GetRenderSurface(child));
|
| + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(root));
|
| EXPECT_TRUE(GetRenderSurface(animating_surface));
|
| - EXPECT_FALSE(GetRenderSurface(child_of_animating_surface));
|
| - EXPECT_FALSE(GetRenderSurface(animating_child));
|
| - EXPECT_FALSE(GetRenderSurface(child2));
|
| + EXPECT_EQ(GetRenderSurface(child_of_animating_surface),
|
| + GetRenderSurface(animating_surface));
|
| + EXPECT_EQ(GetRenderSurface(animating_child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(child2), GetRenderSurface(root));
|
|
|
| EXPECT_EQ(1u, update_layer_list_impl()->size());
|
|
|
| @@ -3931,9 +3988,9 @@ TEST_F(LayerTreeHostCommonTest,
|
| EXPECT_TRUE(GetRenderSurface(front_facing_surface));
|
|
|
| // We expect the render surface to have been created, but remain unused.
|
| - EXPECT_TRUE(GetRenderSurface(back_facing_surface));
|
| - EXPECT_FALSE(GetRenderSurface(child1));
|
| - EXPECT_FALSE(GetRenderSurface(child2));
|
| + EXPECT_NE(GetRenderSurface(back_facing_surface), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(child1), GetRenderSurface(front_facing_surface));
|
| + EXPECT_EQ(GetRenderSurface(child2), GetRenderSurface(back_facing_surface));
|
|
|
| EXPECT_EQ(2u, update_layer_list_impl()->size());
|
| EXPECT_TRUE(UpdateLayerListImplContains(front_facing_surface->id()));
|
| @@ -4333,7 +4390,7 @@ TEST_F(LayerTreeHostCommonTest, TransparentChildRenderSurfaceCreation) {
|
| grand_child->SetBounds(gfx::Size(10, 10));
|
| grand_child->SetDrawsContent(true);
|
| ExecuteCalculateDrawProperties(root);
|
| - EXPECT_FALSE(GetRenderSurface(child));
|
| + EXPECT_EQ(GetRenderSurface(child), GetRenderSurface(root));
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonTest, OpacityAnimatingOnPendingTree) {
|
| @@ -5426,9 +5483,9 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| // Verify which render surfaces were created.
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_FALSE(GetRenderSurface(child1));
|
| - EXPECT_TRUE(GetRenderSurface(child2));
|
| - EXPECT_FALSE(GetRenderSurface(child3));
|
| + EXPECT_EQ(GetRenderSurface(child1), GetRenderSurface(root));
|
| + EXPECT_NE(GetRenderSurface(child2), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(child3), GetRenderSurface(child2));
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) {
|
| @@ -8302,10 +8359,10 @@ TEST_F(LayerTreeHostCommonTest, AnimatedOpacityCreatesRenderSurface) {
|
| 10.0, 1.f, 0.2f, false);
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| - EXPECT_EQ(1.f, child->Opacity());
|
| + EXPECT_EQ(1.f, OpacityForLayer(child));
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_TRUE(GetRenderSurface(child));
|
| - EXPECT_FALSE(GetRenderSurface(grandchild));
|
| + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child));
|
| }
|
|
|
| // Verify that having an animated filter (but no current filter, as these
|
| @@ -8325,8 +8382,8 @@ TEST_F(LayerTreeHostCommonTest, AnimatedFilterCreatesRenderSurface) {
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_TRUE(GetRenderSurface(child));
|
| - EXPECT_FALSE(GetRenderSurface(grandchild));
|
| + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child));
|
|
|
| EXPECT_TRUE(GetRenderSurface(root)->Filters().IsEmpty());
|
| EXPECT_TRUE(GetRenderSurface(child)->Filters().IsEmpty());
|
| @@ -8369,8 +8426,8 @@ TEST_F(LayerTreeHostCommonTest, DelayedFilterAnimationCreatesRenderSurface) {
|
| ExecuteCalculateDrawProperties(root);
|
|
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_TRUE(GetRenderSurface(child));
|
| - EXPECT_FALSE(GetRenderSurface(grandchild));
|
| + EXPECT_NE(GetRenderSurface(child), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(grandchild), GetRenderSurface(child));
|
|
|
| EXPECT_TRUE(GetRenderSurface(root)->Filters().IsEmpty());
|
| EXPECT_TRUE(GetRenderSurface(child)->Filters().IsEmpty());
|
| @@ -9081,10 +9138,10 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceClipsSubtree) {
|
| EXPECT_EQ(transform_node->owning_layer_id, significant_transform->id());
|
|
|
| EXPECT_TRUE(GetRenderSurface(root));
|
| - EXPECT_FALSE(GetRenderSurface(significant_transform));
|
| + EXPECT_EQ(GetRenderSurface(significant_transform), GetRenderSurface(root));
|
| EXPECT_TRUE(GetRenderSurface(layer_clips_subtree));
|
| - EXPECT_TRUE(GetRenderSurface(render_surface));
|
| - EXPECT_FALSE(GetRenderSurface(test_layer));
|
| + EXPECT_NE(GetRenderSurface(render_surface), GetRenderSurface(root));
|
| + EXPECT_EQ(GetRenderSurface(test_layer), GetRenderSurface(render_surface));
|
|
|
| EXPECT_EQ(gfx::Rect(30, 20), test_layer->visible_layer_rect());
|
| }
|
|
|