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

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

Issue 2035863003: cc: Add mask and replica layer ids to the effect tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 4 years, 6 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
« no previous file with comments | « cc/trees/tree_synchronizer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/tree_synchronizer.h" 5 #include "cc/trees/tree_synchronizer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 LayerImpl* layer_impl = *layer_impl_iter; 89 LayerImpl* layer_impl = *layer_impl_iter;
90 ASSERT_TRUE(layer); 90 ASSERT_TRUE(layer);
91 ASSERT_TRUE(layer_impl); 91 ASSERT_TRUE(layer_impl);
92 92
93 EXPECT_EQ(layer->id(), layer_impl->id()); 93 EXPECT_EQ(layer->id(), layer_impl->id());
94 EXPECT_EQ(layer_impl->layer_tree_impl(), tree_impl); 94 EXPECT_EQ(layer_impl->layer_tree_impl(), tree_impl);
95 95
96 EXPECT_EQ(layer->non_fast_scrollable_region(), 96 EXPECT_EQ(layer->non_fast_scrollable_region(),
97 layer_impl->non_fast_scrollable_region()); 97 layer_impl->non_fast_scrollable_region());
98 98
99 ASSERT_EQ(!!layer->mask_layer(), !!layer_impl->mask_layer()); 99 const EffectTree& effect_tree = tree_impl->property_trees()->effect_tree;
100 if (layer->mask_layer()) { 100 if (layer->mask_layer()) {
101 SCOPED_TRACE("mask_layer"); 101 SCOPED_TRACE("mask_layer");
102 EXPECT_EQ(layer->mask_layer()->id(), layer_impl->mask_layer()->id()); 102 int mask_layer_id = layer->mask_layer()->id();
103 EXPECT_TRUE(tree_impl->LayerById(mask_layer_id));
104 EXPECT_EQ(mask_layer_id,
105 effect_tree.Node(layer_impl->effect_tree_index())
106 ->data.mask_layer_id);
103 } 107 }
104 108
105 ASSERT_EQ(!!layer->replica_layer(), !!layer_impl->replica_layer());
106 if (layer->replica_layer()) { 109 if (layer->replica_layer()) {
107 SCOPED_TRACE("replica_layer"); 110 SCOPED_TRACE("replica_layer");
108 EXPECT_EQ(layer->replica_layer()->id(), 111 int replica_layer_id = layer->replica_layer()->id();
109 layer_impl->replica_layer()->id()); 112 EXPECT_TRUE(tree_impl->LayerById(layer->replica_layer()->id()));
110 ASSERT_EQ(!!layer->replica_layer()->mask_layer(), 113 EXPECT_EQ(replica_layer_id,
111 !!layer_impl->replica_layer()->mask_layer()); 114 effect_tree.Node(layer_impl->effect_tree_index())
115 ->data.replica_layer_id);
112 if (layer->replica_layer()->mask_layer()) { 116 if (layer->replica_layer()->mask_layer()) {
113 SCOPED_TRACE("mask_layer"); 117 SCOPED_TRACE("replica_mask_layer");
114 EXPECT_EQ(layer->replica_layer()->mask_layer()->id(), 118 int replica_mask_layer_id = layer->replica_layer()->mask_layer()->id();
115 layer_impl->replica_layer()->mask_layer()->id()); 119 EXPECT_TRUE(tree_impl->LayerById(replica_mask_layer_id));
120 EXPECT_EQ(replica_mask_layer_id,
121 effect_tree.Node(layer_impl->effect_tree_index())
122 ->data.replica_mask_layer_id);
116 } 123 }
117 } 124 }
118 125
119 const Layer* layer_scroll_parent = layer->scroll_parent(); 126 const Layer* layer_scroll_parent = layer->scroll_parent();
120 127
121 if (layer_scroll_parent) { 128 if (layer_scroll_parent) {
122 ASSERT_TRUE(layer_scroll_parent->scroll_children()->find(layer) != 129 ASSERT_TRUE(layer_scroll_parent->scroll_children()->find(layer) !=
123 layer_scroll_parent->scroll_children()->end()); 130 layer_scroll_parent->scroll_children()->end());
124 } 131 }
125 132
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 layer_tree_root->children()[1]->SetReplicaLayer(replica_layer.get()); 465 layer_tree_root->children()[1]->SetReplicaLayer(replica_layer.get());
459 466
460 // Third child gets a replica layer with a mask layer. 467 // Third child gets a replica layer with a mask layer.
461 scoped_refptr<Layer> replica_layer_with_mask = Layer::Create(); 468 scoped_refptr<Layer> replica_layer_with_mask = Layer::Create();
462 scoped_refptr<Layer> replica_mask_layer = Layer::Create(); 469 scoped_refptr<Layer> replica_mask_layer = Layer::Create();
463 replica_layer_with_mask->SetMaskLayer(replica_mask_layer.get()); 470 replica_layer_with_mask->SetMaskLayer(replica_mask_layer.get());
464 layer_tree_root->children()[2]->SetReplicaLayer( 471 layer_tree_root->children()[2]->SetReplicaLayer(
465 replica_layer_with_mask.get()); 472 replica_layer_with_mask.get());
466 473
467 host_->SetRootLayer(layer_tree_root); 474 host_->SetRootLayer(layer_tree_root);
475 host_->BuildPropertyTreesForTesting();
476 host_->CommitAndCreateLayerImplTree();
468 477
469 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
470 host_->active_tree());
471 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer(); 478 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer();
472 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 479 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
473 host_->active_tree()); 480 host_->active_tree());
474 481
475 // Remove the mask layer. 482 // Remove the mask layer.
476 layer_tree_root->children()[0]->SetMaskLayer(NULL); 483 layer_tree_root->children()[0]->SetMaskLayer(NULL);
477 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 484 host_->BuildPropertyTreesForTesting();
478 host_->active_tree()); 485 host_->CommitAndCreateLayerImplTree();
486
479 layer_impl_tree_root = host_->active_tree()->root_layer(); 487 layer_impl_tree_root = host_->active_tree()->root_layer();
480 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 488 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
481 host_->active_tree()); 489 host_->active_tree());
482 490
483 // Remove the replica layer. 491 // Remove the replica layer.
484 layer_tree_root->children()[1]->SetReplicaLayer(NULL); 492 layer_tree_root->children()[1]->SetReplicaLayer(NULL);
485 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 493 host_->BuildPropertyTreesForTesting();
486 host_->active_tree()); 494 host_->CommitAndCreateLayerImplTree();
495
487 layer_impl_tree_root = host_->active_tree()->root_layer(); 496 layer_impl_tree_root = host_->active_tree()->root_layer();
488 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 497 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
489 host_->active_tree()); 498 host_->active_tree());
490 499
491 // Remove the replica mask. 500 // Remove the replica mask.
492 replica_layer_with_mask->SetMaskLayer(NULL); 501 replica_layer_with_mask->SetMaskLayer(NULL);
493 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 502 host_->BuildPropertyTreesForTesting();
494 host_->active_tree()); 503 host_->CommitAndCreateLayerImplTree();
504
495 layer_impl_tree_root = host_->active_tree()->root_layer(); 505 layer_impl_tree_root = host_->active_tree()->root_layer();
496 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 506 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
497 host_->active_tree()); 507 host_->active_tree());
498 508
499 host_->active_tree()->DetachLayers(); 509 host_->active_tree()->DetachLayers();
500 } 510 }
501 511
502 TEST_F(TreeSynchronizerTest, SynchronizeCurrentlyScrollingNode) { 512 TEST_F(TreeSynchronizerTest, SynchronizeCurrentlyScrollingNode) {
503 LayerTreeSettings settings; 513 LayerTreeSettings settings;
504 FakeLayerTreeHostImplClient client; 514 FakeLayerTreeHostImplClient client;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread(); 646 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread();
637 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50)); 647 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50));
638 scroll_offset_map[scroll_layer->id()]->PushFromMainThread( 648 scroll_offset_map[scroll_layer->id()]->PushFromMainThread(
639 gfx::ScrollOffset(100, 100)); 649 gfx::ScrollOffset(100, 100));
640 scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); 650 scroll_offset_map[scroll_layer->id()]->PushPendingToActive();
641 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map())); 651 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map()));
642 } 652 }
643 653
644 } // namespace 654 } // namespace
645 } // namespace cc 655 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/tree_synchronizer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698