| Index: cc/trees/layer_tree_host_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
|
| index a08d6584c20d7a384b83f0613efcfe1ec032470c..b76093d6a3b90fac85362e838a530a826bffafbc 100644
|
| --- a/cc/trees/layer_tree_host_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_unittest.cc
|
| @@ -1180,20 +1180,169 @@ class LayerTreeHostTestPropertyTreesChangedSync : public LayerTreeHostTest {
|
|
|
| SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync);
|
|
|
| -class LayerTreeHostTestAnimationFilterMutatedNotUsingLayerLists
|
| - : public LayerTreeHostTest {
|
| +// Simple base class for tests that just need to mutate the layer tree
|
| +// host and observe results without any impl thread, multi-layer, or
|
| +// multi-frame antics.
|
| +class LayerTreeHostTestLayerListsTest : public LayerTreeHostTest {
|
| public:
|
| + explicit LayerTreeHostTestLayerListsTest(bool use_layer_lists)
|
| + : use_layer_lists_(use_layer_lists) {}
|
| +
|
| + protected:
|
| void InitializeSettings(LayerTreeSettings* settings) override {
|
| - settings->use_layer_lists = false;
|
| + settings->use_layer_lists = use_layer_lists_;
|
| }
|
|
|
| - protected:
|
| void SetupTree() override {
|
| root_ = Layer::Create();
|
| layer_tree_host()->SetRootLayer(root_);
|
| LayerTreeHostTest::SetupTree();
|
| }
|
|
|
| + void AfterTest() override {}
|
| +
|
| + scoped_refptr<Layer> root_;
|
| +
|
| + private:
|
| + bool use_layer_lists_;
|
| +};
|
| +
|
| +class LayerTreeHostTestAnimationOpacityMutatedNotUsingLayerLists
|
| + : public LayerTreeHostTestLayerListsTest {
|
| + public:
|
| + LayerTreeHostTestAnimationOpacityMutatedNotUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(false) {}
|
| +
|
| + protected:
|
| + void BeginTest() override {
|
| + EXPECT_EQ(1.0f, root_->opacity());
|
| + layer_tree_host()->SetElementOpacityMutated(root_->element_id(),
|
| + ElementListType::ACTIVE, 0.3f);
|
| + // When not using layer lists, opacity is stored on the layer.
|
| + EXPECT_EQ(0.3f, root_->opacity());
|
| + EndTest();
|
| + }
|
| +};
|
| +
|
| +SINGLE_THREAD_TEST_F(
|
| + LayerTreeHostTestAnimationOpacityMutatedNotUsingLayerLists);
|
| +
|
| +class LayerTreeHostTestAnimationOpacityMutatedUsingLayerLists
|
| + : public LayerTreeHostTestLayerListsTest {
|
| + public:
|
| + LayerTreeHostTestAnimationOpacityMutatedUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(true) {}
|
| +
|
| + protected:
|
| + void BeginTest() override {
|
| + // Insert a dummy effect node to observe its mutation. This would
|
| + // normally have been created by PaintArtifactCompositor.
|
| + int effect_node_id =
|
| + layer_tree_host()->property_trees()->effect_tree.Insert(
|
| + EffectNode(), EffectTree::kInvalidNodeId);
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->element_id_to_effect_node_index[root_->element_id()] = effect_node_id;
|
| +
|
| + EXPECT_EQ(1.0f, root_->opacity());
|
| + EXPECT_EQ(1.0f,
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->effect_tree.FindNodeFromElementId(root_->element_id())
|
| + ->opacity);
|
| +
|
| + layer_tree_host()->SetElementOpacityMutated(root_->element_id(),
|
| + ElementListType::ACTIVE, 0.3f);
|
| +
|
| + // When using layer lists, we don't have to store the opacity on the layer.
|
| + EXPECT_EQ(1.0f, root_->opacity());
|
| + // The opacity should have been set directly on the effect node instead.
|
| + EXPECT_EQ(0.3f,
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->effect_tree.FindNodeFromElementId(root_->element_id())
|
| + ->opacity);
|
| + EndTest();
|
| + }
|
| +};
|
| +
|
| +SINGLE_THREAD_TEST_F(LayerTreeHostTestAnimationOpacityMutatedUsingLayerLists);
|
| +
|
| +class LayerTreeHostTestAnimationTransformMutatedNotUsingLayerLists
|
| + : public LayerTreeHostTestLayerListsTest {
|
| + public:
|
| + LayerTreeHostTestAnimationTransformMutatedNotUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(false) {}
|
| +
|
| + protected:
|
| + void BeginTest() override {
|
| + EXPECT_EQ(gfx::Transform(), root_->transform());
|
| + gfx::Transform expected_transform;
|
| + expected_transform.Translate(42, 42);
|
| + layer_tree_host()->SetElementTransformMutated(
|
| + root_->element_id(), ElementListType::ACTIVE, expected_transform);
|
| + // When not using layer lists, transform is stored on the layer.
|
| + EXPECT_EQ(expected_transform, root_->transform());
|
| + EndTest();
|
| + }
|
| +};
|
| +
|
| +SINGLE_THREAD_TEST_F(
|
| + LayerTreeHostTestAnimationTransformMutatedNotUsingLayerLists);
|
| +
|
| +class LayerTreeHostTestAnimationTransformMutatedUsingLayerLists
|
| + : public LayerTreeHostTestLayerListsTest {
|
| + public:
|
| + LayerTreeHostTestAnimationTransformMutatedUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(true) {}
|
| +
|
| + protected:
|
| + void BeginTest() override {
|
| + // Insert a dummy transform node to observe its mutation. This would
|
| + // normally have been created by PaintArtifactCompositor.
|
| + int transform_node_id =
|
| + layer_tree_host()->property_trees()->transform_tree.Insert(
|
| + TransformNode(), TransformTree::kInvalidNodeId);
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->element_id_to_transform_node_index[root_->element_id()] =
|
| + transform_node_id;
|
| +
|
| + EXPECT_EQ(gfx::Transform(), root_->transform());
|
| + EXPECT_EQ(gfx::Transform(),
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->transform_tree.FindNodeFromElementId(root_->element_id())
|
| + ->local);
|
| +
|
| + gfx::Transform expected_transform;
|
| + expected_transform.Translate(42, 42);
|
| + layer_tree_host()->SetElementTransformMutated(
|
| + root_->element_id(), ElementListType::ACTIVE, expected_transform);
|
| +
|
| + // When using layer lists, we don't have to store the transform on the
|
| + // layer.
|
| + EXPECT_EQ(gfx::Transform(), root_->transform());
|
| + // The transform should have been set directly on the transform node
|
| + // instead.
|
| + EXPECT_EQ(expected_transform,
|
| + layer_tree_host()
|
| + ->property_trees()
|
| + ->transform_tree.FindNodeFromElementId(root_->element_id())
|
| + ->local);
|
| + EndTest();
|
| + }
|
| +};
|
| +
|
| +SINGLE_THREAD_TEST_F(LayerTreeHostTestAnimationTransformMutatedUsingLayerLists);
|
| +
|
| +class LayerTreeHostTestAnimationFilterMutatedNotUsingLayerLists
|
| + : public LayerTreeHostTestLayerListsTest {
|
| + public:
|
| + LayerTreeHostTestAnimationFilterMutatedNotUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(false) {}
|
| +
|
| + protected:
|
| void BeginTest() override {
|
| FilterOperations filters;
|
| EXPECT_EQ(FilterOperations(), root_->filters());
|
| @@ -1205,29 +1354,17 @@ class LayerTreeHostTestAnimationFilterMutatedNotUsingLayerLists
|
| EXPECT_EQ(filters, root_->filters());
|
| EndTest();
|
| }
|
| -
|
| - void AfterTest() override {}
|
| -
|
| - private:
|
| - scoped_refptr<Layer> root_;
|
| };
|
|
|
| SINGLE_THREAD_TEST_F(LayerTreeHostTestAnimationFilterMutatedNotUsingLayerLists);
|
|
|
| class LayerTreeHostTestAnimationFilterMutatedUsingLayerLists
|
| - : public LayerTreeHostTest {
|
| + : public LayerTreeHostTestLayerListsTest {
|
| public:
|
| - void InitializeSettings(LayerTreeSettings* settings) override {
|
| - settings->use_layer_lists = true;
|
| - }
|
| + LayerTreeHostTestAnimationFilterMutatedUsingLayerLists()
|
| + : LayerTreeHostTestLayerListsTest(true) {}
|
|
|
| protected:
|
| - void SetupTree() override {
|
| - root_ = Layer::Create();
|
| - layer_tree_host()->SetRootLayer(root_);
|
| - LayerTreeHostTest::SetupTree();
|
| - }
|
| -
|
| void BeginTest() override {
|
| // Insert a dummy effect node to observe its mutation. This would
|
| // normally have been created by PaintArtifactCompositor.
|
| @@ -1260,11 +1397,6 @@ class LayerTreeHostTestAnimationFilterMutatedUsingLayerLists
|
| ->filters);
|
| EndTest();
|
| }
|
| -
|
| - void AfterTest() override {}
|
| -
|
| - private:
|
| - scoped_refptr<Layer> root_;
|
| };
|
|
|
| SINGLE_THREAD_TEST_F(LayerTreeHostTestAnimationFilterMutatedUsingLayerLists);
|
|
|