Chromium Code Reviews| Index: cc/trees/layer_tree_host_unittest_animation.cc |
| diff --git a/cc/trees/layer_tree_host_unittest_animation.cc b/cc/trees/layer_tree_host_unittest_animation.cc |
| index fa4b88632b366eb61b42e1ec4be1cec63d25e3c9..171c155576f3f21586e43e211bb375148fa7f9ac 100644 |
| --- a/cc/trees/layer_tree_host_unittest_animation.cc |
| +++ b/cc/trees/layer_tree_host_unittest_animation.cc |
| @@ -18,9 +18,32 @@ |
| namespace cc { |
| namespace { |
| +class AlwaysUpdateLayer : public Layer { |
| + public: |
| + static scoped_refptr<AlwaysUpdateLayer> Create() { |
| + return new AlwaysUpdateLayer(); |
| + } |
| + |
| + virtual bool DrawsContent() const OVERRIDE { return true; } |
| + virtual bool Update(ResourceUpdateQueue* queue, |
| + const OcclusionTracker* occlusion) OVERRIDE { |
| + return true; |
|
danakj
2013/07/17 20:53:24
Why do you need update to force commit for these t
enne (OOO)
2013/07/18 17:36:37
Thanks for calling this out. I dug into this furt
|
| + } |
| + |
| + private: |
| + AlwaysUpdateLayer() {} |
| + virtual ~AlwaysUpdateLayer() {} |
| +}; |
| + |
| class LayerTreeHostAnimationTest : public LayerTreeTest { |
| public: |
| virtual void SetupTree() OVERRIDE { |
| + scoped_refptr<AlwaysUpdateLayer> root_layer = AlwaysUpdateLayer::Create(); |
| + root_layer->SetBounds(gfx::Size(1, 1)); |
| + root_layer->SetIsDrawable(true); |
| + root_layer->SetScrollable(true); |
| + layer_tree_host()->SetRootLayer(root_layer); |
| + |
| LayerTreeTest::SetupTree(); |
| layer_tree_host()->root_layer()->set_layer_animation_delegate(this); |
| } |
| @@ -445,9 +468,9 @@ class LayerTreeHostAnimationTestDoNotSkipLayersWithAnimatedOpacity |
| } |
| virtual void SetupTree() OVERRIDE { |
| - update_check_layer_->SetOpacity(0.f); |
| - layer_tree_host()->SetRootLayer(update_check_layer_); |
| LayerTreeHostAnimationTest::SetupTree(); |
| + update_check_layer_->SetOpacity(0.f); |
| + layer_tree_host()->root_layer()->AddChild(update_check_layer_); |
| } |
| virtual void BeginTest() OVERRIDE { |
| @@ -455,23 +478,25 @@ class LayerTreeHostAnimationTestDoNotSkipLayersWithAnimatedOpacity |
| } |
| virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| + LayerImpl* update_check_layer_impl = |
| + host_impl->active_tree()->LayerById(update_check_layer_->id()); |
| LayerAnimationController* controller_impl = |
| - host_impl->active_tree()->root_layer()->layer_animation_controller(); |
| + update_check_layer_impl->layer_animation_controller(); |
| Animation* animation_impl = |
| controller_impl->GetAnimation(Animation::Opacity); |
| controller_impl->RemoveAnimation(animation_impl->id()); |
| EndTest(); |
| } |
| - virtual void AfterTest() OVERRIDE { |
| + virtual void DidCommit() OVERRIDE { |
| // Update() should have been called once, proving that the layer was not |
| // skipped. |
| EXPECT_EQ(1u, update_check_layer_->update_count()); |
| - |
| - // clear update_check_layer_ so LayerTreeHost dies. |
| - update_check_layer_ = NULL; |
| + update_check_layer_->reset_update_count(); |
|
danakj
2013/07/17 20:53:24
Are you seeing more updates now than we were befor
enne (OOO)
2013/07/18 17:36:37
Yeah, this was the result of ignoring the ignore s
|
| } |
| + virtual void AfterTest() OVERRIDE {} |
| + |
| private: |
| FakeContentLayerClient client_; |
| scoped_refptr<FakeContentLayer> update_check_layer_; |