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

Unified Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 441863002: cc: Make sure mask and replica layers get DidBecomeActive signal. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/fake_picture_layer_impl.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_impl_unittest.cc
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 05ccc45e012fa178678a7101c9dcb7178791e688..a940e3487625981d71e6fe4e14bca2f2c7701249 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -6764,5 +6764,56 @@ TEST_F(LayerTreeHostImplTest, GetPictureLayerImplPairs) {
EXPECT_EQ(pending_layer.get(), layer_pairs[0].pending);
}
+TEST_F(LayerTreeHostImplTest, DidBecomeActive) {
+ host_impl_->CreatePendingTree();
+ host_impl_->ActivateSyncTree();
+ host_impl_->CreatePendingTree();
+
+ LayerTreeImpl* pending_tree = host_impl_->pending_tree();
+
+ scoped_ptr<FakePictureLayerImpl> pending_layer =
+ FakePictureLayerImpl::Create(pending_tree, 10);
+ pending_layer->DoPostCommitInitializationIfNeeded();
+ FakePictureLayerImpl* raw_pending_layer = pending_layer.get();
+ pending_tree->SetRootLayer(pending_layer.PassAs<LayerImpl>());
+ ASSERT_EQ(raw_pending_layer, pending_tree->root_layer());
+
+ EXPECT_EQ(0u, raw_pending_layer->did_become_active_call_count());
+ pending_tree->DidBecomeActive();
+ EXPECT_EQ(1u, raw_pending_layer->did_become_active_call_count());
+
+ scoped_ptr<FakePictureLayerImpl> mask_layer =
+ FakePictureLayerImpl::Create(pending_tree, 11);
+ mask_layer->DoPostCommitInitializationIfNeeded();
+ FakePictureLayerImpl* raw_mask_layer = mask_layer.get();
+ raw_pending_layer->SetMaskLayer(mask_layer.PassAs<LayerImpl>());
+ ASSERT_EQ(raw_mask_layer, raw_pending_layer->mask_layer());
+
+ EXPECT_EQ(1u, raw_pending_layer->did_become_active_call_count());
+ EXPECT_EQ(0u, raw_mask_layer->did_become_active_call_count());
+ pending_tree->DidBecomeActive();
+ EXPECT_EQ(2u, raw_pending_layer->did_become_active_call_count());
+ EXPECT_EQ(1u, raw_mask_layer->did_become_active_call_count());
+
+ scoped_ptr<FakePictureLayerImpl> replica_layer =
+ FakePictureLayerImpl::Create(pending_tree, 12);
+ scoped_ptr<FakePictureLayerImpl> replica_mask_layer =
+ FakePictureLayerImpl::Create(pending_tree, 13);
+ replica_mask_layer->DoPostCommitInitializationIfNeeded();
+ FakePictureLayerImpl* raw_replica_mask_layer = replica_mask_layer.get();
+ replica_layer->SetMaskLayer(replica_mask_layer.PassAs<LayerImpl>());
+ raw_pending_layer->SetReplicaLayer(replica_layer.PassAs<LayerImpl>());
+ ASSERT_EQ(raw_replica_mask_layer,
+ raw_pending_layer->replica_layer()->mask_layer());
+
+ EXPECT_EQ(2u, raw_pending_layer->did_become_active_call_count());
+ EXPECT_EQ(1u, raw_mask_layer->did_become_active_call_count());
+ EXPECT_EQ(0u, raw_replica_mask_layer->did_become_active_call_count());
+ pending_tree->DidBecomeActive();
+ EXPECT_EQ(3u, raw_pending_layer->did_become_active_call_count());
+ EXPECT_EQ(2u, raw_mask_layer->did_become_active_call_count());
+ EXPECT_EQ(1u, raw_replica_mask_layer->did_become_active_call_count());
+}
+
} // namespace
} // namespace cc
« no previous file with comments | « cc/test/fake_picture_layer_impl.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698