Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2159513003: Setup LayerTree class, refactor 2 functions from LayerTreeHost to it. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix based on review. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 2985 matching lines...) Expand 10 before | Expand all | Expand 10 after
2996 class PushPropertiesCountingLayer : public Layer { 2996 class PushPropertiesCountingLayer : public Layer {
2997 public: 2997 public:
2998 static scoped_refptr<PushPropertiesCountingLayer> Create() { 2998 static scoped_refptr<PushPropertiesCountingLayer> Create() {
2999 return new PushPropertiesCountingLayer(); 2999 return new PushPropertiesCountingLayer();
3000 } 3000 }
3001 3001
3002 void PushPropertiesTo(LayerImpl* layer) override { 3002 void PushPropertiesTo(LayerImpl* layer) override {
3003 Layer::PushPropertiesTo(layer); 3003 Layer::PushPropertiesTo(layer);
3004 push_properties_count_++; 3004 push_properties_count_++;
3005 if (persist_needs_push_properties_) { 3005 if (persist_needs_push_properties_) {
3006 layer_tree_host()->AddLayerShouldPushProperties(this); 3006 layer_tree_host()->GetLayerTree()->AddLayerShouldPushProperties(this);
3007 } 3007 }
3008 } 3008 }
3009 3009
3010 // Something to make this layer push properties, but no other layer. 3010 // Something to make this layer push properties, but no other layer.
3011 void MakePushProperties() { SetContentsOpaque(!contents_opaque()); } 3011 void MakePushProperties() { SetContentsOpaque(!contents_opaque()); }
3012 3012
3013 std::unique_ptr<LayerImpl> CreateLayerImpl( 3013 std::unique_ptr<LayerImpl> CreateLayerImpl(
3014 LayerTreeImpl* tree_impl) override { 3014 LayerTreeImpl* tree_impl) override {
3015 return PushPropertiesCountingLayerImpl::Create(tree_impl, id()); 3015 return PushPropertiesCountingLayerImpl::Create(tree_impl, id());
3016 } 3016 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
3083 other_root_->push_properties_count()) 3083 other_root_->push_properties_count())
3084 << "num_commits: " << num_commits_; 3084 << "num_commits: " << num_commits_;
3085 EXPECT_EQ(expected_push_properties_leaf_layer_, 3085 EXPECT_EQ(expected_push_properties_leaf_layer_,
3086 leaf_always_pushing_layer_->push_properties_count()) 3086 leaf_always_pushing_layer_->push_properties_count())
3087 << "num_commits: " << num_commits_; 3087 << "num_commits: " << num_commits_;
3088 3088
3089 ++num_commits_; 3089 ++num_commits_;
3090 3090
3091 // The scrollbar layer always needs to be pushed. 3091 // The scrollbar layer always needs to be pushed.
3092 if (root_->layer_tree_host()) { 3092 if (root_->layer_tree_host()) {
3093 EXPECT_FALSE(root_->layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3093 EXPECT_FALSE(root_->layer_tree_host()
3094 root_.get())); 3094 ->GetLayerTree()
3095 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3095 } 3096 }
3096 if (child2_->layer_tree_host()) { 3097 if (child2_->layer_tree_host()) {
3097 EXPECT_FALSE( 3098 EXPECT_FALSE(child2_->layer_tree_host()
3098 child2_->layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3099 ->GetLayerTree()
3099 child2_.get())); 3100 ->LayerNeedsPushPropertiesForTesting(child2_.get()));
3100 } 3101 }
3101 if (leaf_always_pushing_layer_->layer_tree_host()) { 3102 if (leaf_always_pushing_layer_->layer_tree_host()) {
3102 EXPECT_TRUE(leaf_always_pushing_layer_->layer_tree_host() 3103 EXPECT_TRUE(leaf_always_pushing_layer_->layer_tree_host()
3104 ->GetLayerTree()
3103 ->LayerNeedsPushPropertiesForTesting( 3105 ->LayerNeedsPushPropertiesForTesting(
3104 leaf_always_pushing_layer_.get())); 3106 leaf_always_pushing_layer_.get()));
3105 } 3107 }
3106 3108
3107 // child_ and grandchild_ don't persist their need to push properties. 3109 // child_ and grandchild_ don't persist their need to push properties.
3108 if (child_->layer_tree_host()) { 3110 if (child_->layer_tree_host()) {
3109 EXPECT_FALSE( 3111 EXPECT_FALSE(child_->layer_tree_host()
3110 child_->layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3112 ->GetLayerTree()
3111 child_.get())); 3113 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3112 } 3114 }
3113 if (grandchild_->layer_tree_host()) { 3115 if (grandchild_->layer_tree_host()) {
3114 EXPECT_FALSE( 3116 EXPECT_FALSE(grandchild_->layer_tree_host()
3115 grandchild_->layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3117 ->GetLayerTree()
3116 grandchild_.get())); 3118 ->LayerNeedsPushPropertiesForTesting(grandchild_.get()));
3117 } 3119 }
3118 3120
3119 if (other_root_->layer_tree_host()) { 3121 if (other_root_->layer_tree_host()) {
3120 EXPECT_FALSE( 3122 EXPECT_FALSE(other_root_->layer_tree_host()
3121 other_root_->layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3123 ->GetLayerTree()
3122 other_root_.get())); 3124 ->LayerNeedsPushPropertiesForTesting(other_root_.get()));
3123 } 3125 }
3124 3126
3125 switch (num_commits_) { 3127 switch (num_commits_) {
3126 case 1: 3128 case 1:
3127 layer_tree_host()->SetRootLayer(root_); 3129 layer_tree_host()->SetRootLayer(root_);
3128 // Layers added to the tree get committed. 3130 // Layers added to the tree get committed.
3129 ++expected_push_properties_root_; 3131 ++expected_push_properties_root_;
3130 ++expected_push_properties_child_; 3132 ++expected_push_properties_child_;
3131 ++expected_push_properties_grandchild_; 3133 ++expected_push_properties_grandchild_;
3132 ++expected_push_properties_child2_; 3134 ++expected_push_properties_child2_;
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
3463 case 1: { 3465 case 1: {
3464 // During update, the ignore_set_needs_commit_ bit is set to true to 3466 // During update, the ignore_set_needs_commit_ bit is set to true to
3465 // avoid causing a second commit to be scheduled. If a property change 3467 // avoid causing a second commit to be scheduled. If a property change
3466 // is made during this, however, it needs to be pushed in the upcoming 3468 // is made during this, however, it needs to be pushed in the upcoming
3467 // commit. 3469 // commit.
3468 std::unique_ptr<base::AutoReset<bool>> ignore = 3470 std::unique_ptr<base::AutoReset<bool>> ignore =
3469 scrollbar_layer_->IgnoreSetNeedsCommit(); 3471 scrollbar_layer_->IgnoreSetNeedsCommit();
3470 3472
3471 scrollbar_layer_->SetBounds(gfx::Size(30, 30)); 3473 scrollbar_layer_->SetBounds(gfx::Size(30, 30));
3472 3474
3473 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3475 EXPECT_TRUE(
3474 scrollbar_layer_.get())); 3476 layer_tree_host()
3477 ->GetLayerTree()
3478 ->LayerNeedsPushPropertiesForTesting(scrollbar_layer_.get()));
3475 layer_tree_host()->SetNeedsCommit(); 3479 layer_tree_host()->SetNeedsCommit();
3476 3480
3477 scrollbar_layer_->reset_push_properties_count(); 3481 scrollbar_layer_->reset_push_properties_count();
3478 EXPECT_EQ(0u, scrollbar_layer_->push_properties_count()); 3482 EXPECT_EQ(0u, scrollbar_layer_->push_properties_count());
3479 break; 3483 break;
3480 } 3484 }
3481 case 2: 3485 case 2:
3482 EXPECT_EQ(1u, scrollbar_layer_->push_properties_count()); 3486 EXPECT_EQ(1u, scrollbar_layer_->push_properties_count());
3483 EndTest(); 3487 EndTest();
3484 break; 3488 break;
(...skipping 15 matching lines...) Expand all
3500 void SetupTree() override { 3504 void SetupTree() override {
3501 root_ = PushPropertiesCountingLayer::Create(); 3505 root_ = PushPropertiesCountingLayer::Create();
3502 child_ = PushPropertiesCountingLayer::Create(); 3506 child_ = PushPropertiesCountingLayer::Create();
3503 root_->AddChild(child_); 3507 root_->AddChild(child_);
3504 3508
3505 layer_tree_host()->SetRootLayer(root_); 3509 layer_tree_host()->SetRootLayer(root_);
3506 LayerTreeHostTest::SetupTree(); 3510 LayerTreeHostTest::SetupTree();
3507 } 3511 }
3508 3512
3509 void DidCommitAndDrawFrame() override { 3513 void DidCommitAndDrawFrame() override {
3514 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
3510 switch (layer_tree_host()->source_frame_number()) { 3515 switch (layer_tree_host()->source_frame_number()) {
3511 case 0: 3516 case 0:
3512 break; 3517 break;
3513 case 1: { 3518 case 1: {
3514 // During update, the ignore_set_needs_commit_ bit is set to true to 3519 // During update, the ignore_set_needs_commit_ bit is set to true to
3515 // avoid causing a second commit to be scheduled. If a property change 3520 // avoid causing a second commit to be scheduled. If a property change
3516 // is made during this, however, it needs to be pushed in the upcoming 3521 // is made during this, however, it needs to be pushed in the upcoming
3517 // commit. 3522 // commit.
3518 EXPECT_FALSE( 3523 EXPECT_FALSE(
3519 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3524 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3520 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3525 EXPECT_FALSE(
3521 child_.get())); 3526 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3522 EXPECT_EQ(0, root_->NumDescendantsThatDrawContent()); 3527 EXPECT_EQ(0, root_->NumDescendantsThatDrawContent());
3523 root_->reset_push_properties_count(); 3528 root_->reset_push_properties_count();
3524 child_->reset_push_properties_count(); 3529 child_->reset_push_properties_count();
3525 child_->SetDrawsContent(true); 3530 child_->SetDrawsContent(true);
3526 EXPECT_EQ(1, root_->NumDescendantsThatDrawContent()); 3531 EXPECT_EQ(1, root_->NumDescendantsThatDrawContent());
3527 EXPECT_EQ(0u, root_->push_properties_count()); 3532 EXPECT_EQ(0u, root_->push_properties_count());
3528 EXPECT_EQ(0u, child_->push_properties_count()); 3533 EXPECT_EQ(0u, child_->push_properties_count());
3529 EXPECT_TRUE( 3534 EXPECT_TRUE(
3530 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3535 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3531 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3536 EXPECT_TRUE(
3532 child_.get())); 3537
3538 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3533 break; 3539 break;
3534 } 3540 }
3535 case 2: 3541 case 2:
3536 EXPECT_EQ(1u, root_->push_properties_count()); 3542 EXPECT_EQ(1u, root_->push_properties_count());
3537 EXPECT_EQ(1u, child_->push_properties_count()); 3543 EXPECT_EQ(1u, child_->push_properties_count());
3538 EXPECT_FALSE( 3544 EXPECT_FALSE(
3539 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3545 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3540 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3546 EXPECT_FALSE(
3541 child_.get())); 3547 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3542 EndTest(); 3548 EndTest();
3543 break; 3549 break;
3544 } 3550 }
3545 } 3551 }
3546 3552
3547 void AfterTest() override {} 3553 void AfterTest() override {}
3548 3554
3549 scoped_refptr<PushPropertiesCountingLayer> root_; 3555 scoped_refptr<PushPropertiesCountingLayer> root_;
3550 scoped_refptr<PushPropertiesCountingLayer> child_; 3556 scoped_refptr<PushPropertiesCountingLayer> child_;
3551 }; 3557 };
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
3598 3604
3599 class LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush 3605 class LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush
3600 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3606 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3601 protected: 3607 protected:
3602 void DidCommitAndDrawFrame() override { 3608 void DidCommitAndDrawFrame() override {
3603 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3609 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3604 switch (last_source_frame_number) { 3610 switch (last_source_frame_number) {
3605 case 0: 3611 case 0:
3606 // All layers will need push properties as we set their layer tree host 3612 // All layers will need push properties as we set their layer tree host
3607 layer_tree_host()->SetRootLayer(root_); 3613 layer_tree_host()->SetRootLayer(root_);
3614 EXPECT_TRUE(layer_tree_host()
3615 ->GetLayerTree()
3616 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3617 EXPECT_TRUE(layer_tree_host()
3618 ->GetLayerTree()
3619 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3608 EXPECT_TRUE( 3620 EXPECT_TRUE(
3609 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3621 layer_tree_host()
3610 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3622 ->GetLayerTree()
3611 child_.get())); 3623 ->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3612 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3624 EXPECT_TRUE(
3613 grandchild1_.get())); 3625 layer_tree_host()
3614 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3626 ->GetLayerTree()
3615 grandchild2_.get())); 3627 ->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3616 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3628 EXPECT_TRUE(
3617 grandchild3_.get())); 3629 layer_tree_host()
3630 ->GetLayerTree()
3631 ->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3618 break; 3632 break;
3619 case 1: 3633 case 1:
3620 EndTest(); 3634 EndTest();
3621 break; 3635 break;
3622 } 3636 }
3623 } 3637 }
3624 }; 3638 };
3625 3639
3626 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush); 3640 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush);
3627 3641
3628 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion 3642 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion
3629 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3643 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3630 protected: 3644 protected:
3631 void DidCommitAndDrawFrame() override { 3645 void DidCommitAndDrawFrame() override {
3632 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3646 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3633 switch (last_source_frame_number) { 3647 switch (last_source_frame_number) {
3634 case 0: 3648 case 0:
3635 layer_tree_host()->SetRootLayer(root_); 3649 layer_tree_host()->SetRootLayer(root_);
3636 break; 3650 break;
3637 case 1: 3651 case 1:
3652 EXPECT_FALSE(layer_tree_host()
3653 ->GetLayerTree()
3654 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3655 EXPECT_FALSE(layer_tree_host()
3656 ->GetLayerTree()
3657 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3638 EXPECT_FALSE( 3658 EXPECT_FALSE(
3639 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3659 layer_tree_host()
3640 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3660 ->GetLayerTree()
3641 child_.get())); 3661 ->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3642 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3662 EXPECT_FALSE(
3643 grandchild1_.get())); 3663 layer_tree_host()
3644 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3664 ->GetLayerTree()
3645 grandchild2_.get())); 3665 ->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3646 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3666 EXPECT_FALSE(
3647 grandchild3_.get())); 3667 layer_tree_host()
3668 ->GetLayerTree()
3669 ->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3648 3670
3649 grandchild1_->RemoveFromParent(); 3671 grandchild1_->RemoveFromParent();
3650 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f)); 3672 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f));
3651 3673
3674 EXPECT_FALSE(layer_tree_host()
3675 ->GetLayerTree()
3676 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3677 EXPECT_FALSE(layer_tree_host()
3678 ->GetLayerTree()
3679 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3652 EXPECT_FALSE( 3680 EXPECT_FALSE(
3653 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3681 layer_tree_host()
3654 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3682 ->GetLayerTree()
3655 child_.get())); 3683 ->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3656 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3684 EXPECT_FALSE(
3657 grandchild2_.get())); 3685 layer_tree_host()
3658 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3686 ->GetLayerTree()
3659 grandchild3_.get())); 3687 ->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3660 3688
3661 child_->AddChild(grandchild1_); 3689 child_->AddChild(grandchild1_);
3662 3690
3691 EXPECT_FALSE(layer_tree_host()
3692 ->GetLayerTree()
3693 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3694 EXPECT_FALSE(layer_tree_host()
3695 ->GetLayerTree()
3696 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3697 EXPECT_TRUE(
3698 layer_tree_host()
3699 ->GetLayerTree()
3700 ->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3663 EXPECT_FALSE( 3701 EXPECT_FALSE(
3664 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3702 layer_tree_host()
3665 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3703 ->GetLayerTree()
3666 child_.get())); 3704 ->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3667 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3705 EXPECT_FALSE(
3668 grandchild1_.get())); 3706 layer_tree_host()
3669 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3707 ->GetLayerTree()
3670 grandchild2_.get())); 3708 ->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3671 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting(
3672 grandchild3_.get()));
3673 3709
3674 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f)); 3710 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f));
3675 3711
3712 EXPECT_FALSE(layer_tree_host()
3713 ->GetLayerTree()
3714 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3715 EXPECT_FALSE(layer_tree_host()
3716 ->GetLayerTree()
3717 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3718 EXPECT_TRUE(
3719 layer_tree_host()
3720 ->GetLayerTree()
3721 ->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3722 EXPECT_TRUE(
3723 layer_tree_host()
3724 ->GetLayerTree()
3725 ->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3676 EXPECT_FALSE( 3726 EXPECT_FALSE(
3677 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3727 layer_tree_host()
3678 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3728 ->GetLayerTree()
3679 child_.get())); 3729 ->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3680 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting(
3681 grandchild1_.get()));
3682 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting(
3683 grandchild2_.get()));
3684 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting(
3685 grandchild3_.get()));
3686 3730
3687 // grandchild2_ will still need a push properties. 3731 // grandchild2_ will still need a push properties.
3688 grandchild1_->RemoveFromParent(); 3732 grandchild1_->RemoveFromParent();
3689 3733
3690 EXPECT_FALSE( 3734 EXPECT_FALSE(layer_tree_host()
3691 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3735 ->GetLayerTree()
3692 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3736 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3693 child_.get())); 3737 EXPECT_FALSE(layer_tree_host()
3738 ->GetLayerTree()
3739 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3694 3740
3695 // grandchild3_ does not need a push properties, so recursing should 3741 // grandchild3_ does not need a push properties, so recursing should
3696 // no longer be needed. 3742 // no longer be needed.
3697 grandchild2_->RemoveFromParent(); 3743 grandchild2_->RemoveFromParent();
3698 3744
3699 EXPECT_FALSE( 3745 EXPECT_FALSE(layer_tree_host()
3700 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3746 ->GetLayerTree()
3701 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3747 ->LayerNeedsPushPropertiesForTesting(root_.get()));
3702 child_.get())); 3748 EXPECT_FALSE(layer_tree_host()
3749 ->GetLayerTree()
3750 ->LayerNeedsPushPropertiesForTesting(child_.get()));
3703 EndTest(); 3751 EndTest();
3704 break; 3752 break;
3705 } 3753 }
3706 } 3754 }
3707 }; 3755 };
3708 3756
3709 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion); 3757 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion);
3710 3758
3711 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence 3759 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence
3712 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3760 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3713 protected: 3761 protected:
3714 void DidCommitAndDrawFrame() override { 3762 void DidCommitAndDrawFrame() override {
3763 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
3715 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3764 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3716 switch (last_source_frame_number) { 3765 switch (last_source_frame_number) {
3717 case 0: 3766 case 0:
3718 layer_tree_host()->SetRootLayer(root_); 3767 layer_tree_host()->SetRootLayer(root_);
3719 grandchild1_->set_persist_needs_push_properties(true); 3768 grandchild1_->set_persist_needs_push_properties(true);
3720 grandchild2_->set_persist_needs_push_properties(true); 3769 grandchild2_->set_persist_needs_push_properties(true);
3721 break; 3770 break;
3722 case 1: 3771 case 1:
3723 EXPECT_FALSE( 3772 EXPECT_FALSE(
3724 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3773 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3725 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3774 EXPECT_FALSE(
3726 child_.get())); 3775 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3727 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3776 EXPECT_TRUE(
3728 grandchild1_.get())); 3777 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3729 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3778 EXPECT_TRUE(
3730 grandchild2_.get())); 3779 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3731 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3780 EXPECT_FALSE(
3732 grandchild3_.get())); 3781 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3733 3782
3734 // grandchild2_ will still need a push properties. 3783 // grandchild2_ will still need a push properties.
3735 grandchild1_->RemoveFromParent(); 3784 grandchild1_->RemoveFromParent();
3736 3785
3737 EXPECT_FALSE( 3786 EXPECT_FALSE(
3738 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3787 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3739 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3788 EXPECT_FALSE(
3740 child_.get())); 3789 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3741 3790
3742 // grandchild3_ does not need a push properties, so recursing should 3791 // grandchild3_ does not need a push properties, so recursing should
3743 // no longer be needed. 3792 // no longer be needed.
3744 grandchild2_->RemoveFromParent(); 3793 grandchild2_->RemoveFromParent();
3745 3794
3746 EXPECT_FALSE( 3795 EXPECT_FALSE(
3747 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3796 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3748 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3797 EXPECT_FALSE(
3749 child_.get())); 3798 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3750 EndTest(); 3799 EndTest();
3751 break; 3800 break;
3752 } 3801 }
3753 } 3802 }
3754 }; 3803 };
3755 3804
3756 MULTI_THREAD_TEST_F( 3805 MULTI_THREAD_TEST_F(
3757 LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence); 3806 LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence);
3758 3807
3759 class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree 3808 class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree
3760 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3809 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3761 protected: 3810 protected:
3762 void DidCommitAndDrawFrame() override { 3811 void DidCommitAndDrawFrame() override {
3812 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
3763 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3813 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3764 switch (last_source_frame_number) { 3814 switch (last_source_frame_number) {
3765 case 0: 3815 case 0:
3766 layer_tree_host()->SetRootLayer(root_); 3816 layer_tree_host()->SetRootLayer(root_);
3767 break; 3817 break;
3768 case 1: 3818 case 1:
3769 EXPECT_FALSE( 3819 EXPECT_FALSE(
3770 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3820 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3771 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3821 EXPECT_FALSE(
3772 child_.get())); 3822 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3773 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3823 EXPECT_FALSE(
3774 grandchild1_.get())); 3824 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3775 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3825 EXPECT_FALSE(
3776 grandchild2_.get())); 3826 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3777 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3827 EXPECT_FALSE(
3778 grandchild3_.get())); 3828 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3779 3829
3780 // Change grandchildren while their parent is not in the tree. 3830 // Change grandchildren while their parent is not in the tree.
3781 child_->RemoveFromParent(); 3831 child_->RemoveFromParent();
3782 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f)); 3832 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f));
3783 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f)); 3833 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f));
3784 root_->AddChild(child_); 3834 root_->AddChild(child_);
3785 3835
3786 EXPECT_FALSE( 3836 EXPECT_FALSE(
3787 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3837 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3788 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3838 EXPECT_TRUE(
3789 child_.get())); 3839 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3790 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3840 EXPECT_TRUE(
3791 grandchild1_.get())); 3841 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3792 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3842 EXPECT_TRUE(
3793 grandchild2_.get())); 3843 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3794 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3844 EXPECT_TRUE(
3795 grandchild3_.get())); 3845 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3796 3846
3797 grandchild1_->RemoveFromParent(); 3847 grandchild1_->RemoveFromParent();
3798 3848
3799 EXPECT_FALSE( 3849 EXPECT_FALSE(
3800 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3850 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3801 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3851 EXPECT_TRUE(
3802 child_.get())); 3852 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3803 3853
3804 grandchild2_->RemoveFromParent(); 3854 grandchild2_->RemoveFromParent();
3805 3855
3806 EXPECT_FALSE( 3856 EXPECT_FALSE(
3807 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3857 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3808 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3858 EXPECT_TRUE(
3809 child_.get())); 3859 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3810 3860
3811 grandchild3_->RemoveFromParent(); 3861 grandchild3_->RemoveFromParent();
3812 3862
3813 EXPECT_FALSE( 3863 EXPECT_FALSE(
3814 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3864 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3815 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3865 EXPECT_TRUE(
3816 child_.get())); 3866 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3817 3867
3818 EndTest(); 3868 EndTest();
3819 break; 3869 break;
3820 } 3870 }
3821 } 3871 }
3822 }; 3872 };
3823 3873
3824 MULTI_THREAD_TEST_F( 3874 MULTI_THREAD_TEST_F(
3825 LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree); 3875 LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree);
3826 3876
3827 class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild 3877 class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild
3828 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3878 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3829 protected: 3879 protected:
3830 void DidCommitAndDrawFrame() override { 3880 void DidCommitAndDrawFrame() override {
3881 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
3831 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3882 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3832 switch (last_source_frame_number) { 3883 switch (last_source_frame_number) {
3833 case 0: 3884 case 0:
3834 layer_tree_host()->SetRootLayer(root_); 3885 layer_tree_host()->SetRootLayer(root_);
3835 break; 3886 break;
3836 case 1: 3887 case 1:
3837 EXPECT_FALSE( 3888 EXPECT_FALSE(
3838 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3889 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3839 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3890 EXPECT_FALSE(
3840 child_.get())); 3891 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3841 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3892 EXPECT_FALSE(
3842 grandchild1_.get())); 3893 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3843 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3894 EXPECT_FALSE(
3844 grandchild2_.get())); 3895 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3845 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3896 EXPECT_FALSE(
3846 grandchild3_.get())); 3897 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3847 3898
3848 child_->SetPosition(gfx::PointF(1.f, 1.f)); 3899 child_->SetPosition(gfx::PointF(1.f, 1.f));
3849 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f)); 3900 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f));
3850 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f)); 3901 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f));
3851 3902
3852 EXPECT_FALSE( 3903 EXPECT_FALSE(
3853 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3904 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3854 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3905 EXPECT_TRUE(
3855 child_.get())); 3906 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3856 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3907 EXPECT_TRUE(
3857 grandchild1_.get())); 3908 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3858 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3909 EXPECT_TRUE(
3859 grandchild2_.get())); 3910 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3860 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3911 EXPECT_FALSE(
3861 grandchild3_.get())); 3912 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3862 3913
3863 grandchild1_->RemoveFromParent(); 3914 grandchild1_->RemoveFromParent();
3864 3915
3865 EXPECT_FALSE( 3916 EXPECT_FALSE(
3866 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3917 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3867 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3918 EXPECT_TRUE(
3868 child_.get())); 3919 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3869 3920
3870 grandchild2_->RemoveFromParent(); 3921 grandchild2_->RemoveFromParent();
3871 3922
3872 EXPECT_FALSE( 3923 EXPECT_FALSE(
3873 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3924 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3874 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3925 EXPECT_TRUE(
3875 child_.get())); 3926 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3876 3927
3877 child_->RemoveFromParent(); 3928 child_->RemoveFromParent();
3878 3929
3879 EXPECT_FALSE( 3930 EXPECT_FALSE(
3880 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3931 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3881 3932
3882 EndTest(); 3933 EndTest();
3883 break; 3934 break;
3884 } 3935 }
3885 } 3936 }
3886 }; 3937 };
3887 3938
3888 MULTI_THREAD_TEST_F( 3939 MULTI_THREAD_TEST_F(
3889 LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild); 3940 LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild);
3890 3941
3891 class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent 3942 class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent
3892 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { 3943 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren {
3893 protected: 3944 protected:
3894 void DidCommitAndDrawFrame() override { 3945 void DidCommitAndDrawFrame() override {
3946 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
3895 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; 3947 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1;
3896 switch (last_source_frame_number) { 3948 switch (last_source_frame_number) {
3897 case 0: 3949 case 0:
3898 layer_tree_host()->SetRootLayer(root_); 3950 layer_tree_host()->SetRootLayer(root_);
3899 break; 3951 break;
3900 case 1: 3952 case 1:
3901 EXPECT_FALSE( 3953 EXPECT_FALSE(
3902 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3954 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3903 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3955 EXPECT_FALSE(
3904 child_.get())); 3956 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3905 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3957 EXPECT_FALSE(
3906 grandchild1_.get())); 3958 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3907 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3959 EXPECT_FALSE(
3908 grandchild2_.get())); 3960 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3909 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3961 EXPECT_FALSE(
3910 grandchild3_.get())); 3962 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3911 3963
3912 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f)); 3964 grandchild1_->SetPosition(gfx::PointF(1.f, 1.f));
3913 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f)); 3965 grandchild2_->SetPosition(gfx::PointF(1.f, 1.f));
3914 child_->SetPosition(gfx::PointF(1.f, 1.f)); 3966 child_->SetPosition(gfx::PointF(1.f, 1.f));
3915 3967
3916 EXPECT_FALSE( 3968 EXPECT_FALSE(
3917 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3969 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3918 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3970 EXPECT_TRUE(
3919 child_.get())); 3971 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3920 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3972 EXPECT_TRUE(
3921 grandchild1_.get())); 3973 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild1_.get()));
3922 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3974 EXPECT_TRUE(
3923 grandchild2_.get())); 3975 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild2_.get()));
3924 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3976 EXPECT_FALSE(
3925 grandchild3_.get())); 3977 layer_tree->LayerNeedsPushPropertiesForTesting(grandchild3_.get()));
3926 3978
3927 grandchild1_->RemoveFromParent(); 3979 grandchild1_->RemoveFromParent();
3928 3980
3929 EXPECT_FALSE( 3981 EXPECT_FALSE(
3930 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3982 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3931 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3983 EXPECT_TRUE(
3932 child_.get())); 3984 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3933 3985
3934 grandchild2_->RemoveFromParent(); 3986 grandchild2_->RemoveFromParent();
3935 3987
3936 EXPECT_FALSE( 3988 EXPECT_FALSE(
3937 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3989 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3938 EXPECT_TRUE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 3990 EXPECT_TRUE(
3939 child_.get())); 3991 layer_tree->LayerNeedsPushPropertiesForTesting(child_.get()));
3940 3992
3941 child_->RemoveFromParent(); 3993 child_->RemoveFromParent();
3942 3994
3943 EXPECT_FALSE( 3995 EXPECT_FALSE(
3944 layer_tree_host()->LayerNeedsPushPropertiesForTesting(root_.get())); 3996 layer_tree->LayerNeedsPushPropertiesForTesting(root_.get()));
3945 3997
3946 EndTest(); 3998 EndTest();
3947 break; 3999 break;
3948 } 4000 }
3949 } 4001 }
3950 }; 4002 };
3951 4003
3952 MULTI_THREAD_TEST_F( 4004 MULTI_THREAD_TEST_F(
3953 LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent); 4005 LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent);
3954 4006
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
4094 child_layer_->SetIsDrawable(true); 4146 child_layer_->SetIsDrawable(true);
4095 parent_layer_->AddChild(child_layer_); 4147 parent_layer_->AddChild(child_layer_);
4096 4148
4097 layer_tree_host()->SetRootLayer(root_layer_); 4149 layer_tree_host()->SetRootLayer(root_layer_);
4098 LayerTreeHostTest::SetupTree(); 4150 LayerTreeHostTest::SetupTree();
4099 } 4151 }
4100 4152
4101 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 4153 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
4102 4154
4103 void DidCommitAndDrawFrame() override { 4155 void DidCommitAndDrawFrame() override {
4156 LayerTree* layer_tree = layer_tree_host()->GetLayerTree();
4104 switch (layer_tree_host()->source_frame_number()) { 4157 switch (layer_tree_host()->source_frame_number()) {
4105 case 1: 4158 case 1:
4106 // The layer type used does not need to push properties every frame. 4159 // The layer type used does not need to push properties every frame.
4107 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 4160 EXPECT_FALSE(
4108 child_layer_.get())); 4161 layer_tree->LayerNeedsPushPropertiesForTesting(child_layer_.get()));
4109 4162
4110 // Change the bounds of the child layer, but make it skipped 4163 // Change the bounds of the child layer, but make it skipped
4111 // by CalculateDrawProperties. 4164 // by CalculateDrawProperties.
4112 parent_layer_->SetOpacity(0.f); 4165 parent_layer_->SetOpacity(0.f);
4113 child_layer_->SetBounds(gfx::Size(5, 5)); 4166 child_layer_->SetBounds(gfx::Size(5, 5));
4114 break; 4167 break;
4115 case 2: 4168 case 2:
4116 // The bounds of the child layer were pushed to the impl side. 4169 // The bounds of the child layer were pushed to the impl side.
4117 EXPECT_FALSE(layer_tree_host()->LayerNeedsPushPropertiesForTesting( 4170 EXPECT_FALSE(
4118 child_layer_.get())); 4171 layer_tree->LayerNeedsPushPropertiesForTesting(child_layer_.get()));
4119 4172
4120 EndTest(); 4173 EndTest();
4121 break; 4174 break;
4122 } 4175 }
4123 } 4176 }
4124 4177
4125 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override { 4178 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
4126 LayerImpl* child = impl->active_tree()->LayerById(child_layer_->id()); 4179 LayerImpl* child = impl->active_tree()->LayerById(child_layer_->id());
4127 4180
4128 switch (impl->active_tree()->source_frame_number()) { 4181 switch (impl->active_tree()->source_frame_number()) {
(...skipping 2764 matching lines...) Expand 10 before | Expand all | Expand 10 after
6893 private: 6946 private:
6894 FakeContentLayerClient client_; 6947 FakeContentLayerClient client_;
6895 const gfx::Size viewport_size_; 6948 const gfx::Size viewport_size_;
6896 const gfx::Size large_image_size_; 6949 const gfx::Size large_image_size_;
6897 }; 6950 };
6898 6951
6899 SINGLE_AND_MULTI_THREAD_TEST_F(GpuRasterizationSucceedsWithLargeImage); 6952 SINGLE_AND_MULTI_THREAD_TEST_F(GpuRasterizationSucceedsWithLargeImage);
6900 6953
6901 } // namespace 6954 } // namespace
6902 } // namespace cc 6955 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698