| OLD | NEW |
| 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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 host_->SetRootLayer(layer_tree_root); | 236 host_->SetRootLayer(layer_tree_root); |
| 237 | 237 |
| 238 scoped_ptr<LayerImpl> layer_impl_tree_root = | 238 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 239 TreeSynchronizer::SynchronizeTrees( | 239 TreeSynchronizer::SynchronizeTrees( |
| 240 layer_tree_root.get(), nullptr, host_->active_tree()); | 240 layer_tree_root.get(), nullptr, host_->active_tree()); |
| 241 ExpectTreesAreIdentical(layer_tree_root.get(), | 241 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 242 layer_impl_tree_root.get(), | 242 layer_impl_tree_root.get(), |
| 243 host_->active_tree()); | 243 host_->active_tree()); |
| 244 | 244 |
| 245 // We have to push properties to pick up the destruction list pointer. | 245 // We have to push properties to pick up the destruction list pointer. |
| 246 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 246 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 247 layer_impl_tree_root.get()); | 247 host_->active_tree()); |
| 248 | 248 |
| 249 // Add a new layer to the Layer side | 249 // Add a new layer to the Layer side |
| 250 layer_tree_root->children()[0]->AddChild( | 250 layer_tree_root->children()[0]->AddChild( |
| 251 MockLayer::Create(&layer_impl_destruction_list)); | 251 MockLayer::Create(&layer_impl_destruction_list)); |
| 252 // Remove one. | 252 // Remove one. |
| 253 layer_tree_root->children()[1]->RemoveFromParent(); | 253 layer_tree_root->children()[1]->RemoveFromParent(); |
| 254 int second_layer_impl_id = layer_impl_tree_root->children()[1]->id(); | 254 int second_layer_impl_id = layer_impl_tree_root->children()[1]->id(); |
| 255 | 255 |
| 256 // Synchronize again. After the sync the trees should be equivalent and we | 256 // Synchronize again. After the sync the trees should be equivalent and we |
| 257 // should have created and destroyed one LayerImpl. | 257 // should have created and destroyed one LayerImpl. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 281 | 281 |
| 282 host_->SetRootLayer(layer_tree_root); | 282 host_->SetRootLayer(layer_tree_root); |
| 283 | 283 |
| 284 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees( | 284 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees( |
| 285 layer_tree_root.get(), nullptr, host_->active_tree())); | 285 layer_tree_root.get(), nullptr, host_->active_tree())); |
| 286 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer(); | 286 LayerImpl* layer_impl_tree_root = host_->active_tree()->root_layer(); |
| 287 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, | 287 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, |
| 288 host_->active_tree()); | 288 host_->active_tree()); |
| 289 | 289 |
| 290 // We have to push properties to pick up the destruction list pointer. | 290 // We have to push properties to pick up the destruction list pointer. |
| 291 TreeSynchronizer::PushProperties(layer_tree_root.get(), layer_impl_tree_root); | 291 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 292 host_->active_tree()); |
| 292 | 293 |
| 293 host_->active_tree()->ResetAllChangeTracking( | 294 host_->active_tree()->ResetAllChangeTracking( |
| 294 PropertyTrees::ResetFlags::ALL_TREES); | 295 PropertyTrees::ResetFlags::ALL_TREES); |
| 295 | 296 |
| 296 // re-insert the layer and sync again. | 297 // re-insert the layer and sync again. |
| 297 child2->RemoveFromParent(); | 298 child2->RemoveFromParent(); |
| 298 layer_tree_root->AddChild(child2); | 299 layer_tree_root->AddChild(child2); |
| 299 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees( | 300 host_->active_tree()->SetRootLayer(TreeSynchronizer::SynchronizeTrees( |
| 300 layer_tree_root.get(), host_->active_tree()->DetachLayerTree(), | 301 layer_tree_root.get(), host_->active_tree()->DetachLayerTree(), |
| 301 host_->active_tree())); | 302 host_->active_tree())); |
| 302 layer_impl_tree_root = host_->active_tree()->root_layer(); | 303 layer_impl_tree_root = host_->active_tree()->root_layer(); |
| 303 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, | 304 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, |
| 304 host_->active_tree()); | 305 host_->active_tree()); |
| 305 | 306 |
| 306 TreeSynchronizer::PushProperties(layer_tree_root.get(), layer_impl_tree_root); | 307 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 308 host_->active_tree()); |
| 307 | 309 |
| 308 // Check that the impl thread properly tracked the change. | 310 // Check that the impl thread properly tracked the change. |
| 309 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged()); | 311 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged()); |
| 310 EXPECT_FALSE(layer_impl_tree_root->children()[0]->LayerPropertyChanged()); | 312 EXPECT_FALSE(layer_impl_tree_root->children()[0]->LayerPropertyChanged()); |
| 311 EXPECT_TRUE(layer_impl_tree_root->children()[1]->LayerPropertyChanged()); | 313 EXPECT_TRUE(layer_impl_tree_root->children()[1]->LayerPropertyChanged()); |
| 312 host_->active_tree()->DetachLayerTree(); | 314 host_->active_tree()->DetachLayerTree(); |
| 313 } | 315 } |
| 314 | 316 |
| 315 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndProperties) { | 317 TEST_F(TreeSynchronizerTest, SyncSimpleTreeAndProperties) { |
| 316 scoped_refptr<Layer> layer_tree_root = Layer::Create(); | 318 scoped_refptr<Layer> layer_tree_root = Layer::Create(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 331 layer_tree_root->children()[1]->SetBounds(second_child_bounds); | 333 layer_tree_root->children()[1]->SetBounds(second_child_bounds); |
| 332 layer_tree_root->children()[1]->SavePaintProperties(); | 334 layer_tree_root->children()[1]->SavePaintProperties(); |
| 333 | 335 |
| 334 scoped_ptr<LayerImpl> layer_impl_tree_root = | 336 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 335 TreeSynchronizer::SynchronizeTrees( | 337 TreeSynchronizer::SynchronizeTrees( |
| 336 layer_tree_root.get(), nullptr, host_->active_tree()); | 338 layer_tree_root.get(), nullptr, host_->active_tree()); |
| 337 ExpectTreesAreIdentical(layer_tree_root.get(), | 339 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 338 layer_impl_tree_root.get(), | 340 layer_impl_tree_root.get(), |
| 339 host_->active_tree()); | 341 host_->active_tree()); |
| 340 | 342 |
| 341 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 343 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 342 layer_impl_tree_root.get()); | 344 host_->active_tree()); |
| 343 | 345 |
| 344 // Check that the property values we set on the Layer tree are reflected in | 346 // Check that the property values we set on the Layer tree are reflected in |
| 345 // the LayerImpl tree. | 347 // the LayerImpl tree. |
| 346 gfx::PointF root_layer_impl_position = layer_impl_tree_root->position(); | 348 gfx::PointF root_layer_impl_position = layer_impl_tree_root->position(); |
| 347 EXPECT_EQ(root_position.x(), root_layer_impl_position.x()); | 349 EXPECT_EQ(root_position.x(), root_layer_impl_position.x()); |
| 348 EXPECT_EQ(root_position.y(), root_layer_impl_position.y()); | 350 EXPECT_EQ(root_position.y(), root_layer_impl_position.y()); |
| 349 | 351 |
| 350 EXPECT_EQ(first_child_opacity, | 352 EXPECT_EQ(first_child_opacity, |
| 351 layer_impl_tree_root->children()[0]->opacity()); | 353 layer_impl_tree_root->children()[0]->opacity()); |
| 352 | 354 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 382 host_->SetRootLayer(layer_tree_root); | 384 host_->SetRootLayer(layer_tree_root); |
| 383 | 385 |
| 384 scoped_ptr<LayerImpl> layer_impl_tree_root = | 386 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 385 TreeSynchronizer::SynchronizeTrees( | 387 TreeSynchronizer::SynchronizeTrees( |
| 386 layer_tree_root.get(), nullptr, host_->active_tree()); | 388 layer_tree_root.get(), nullptr, host_->active_tree()); |
| 387 ExpectTreesAreIdentical(layer_tree_root.get(), | 389 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 388 layer_impl_tree_root.get(), | 390 layer_impl_tree_root.get(), |
| 389 host_->active_tree()); | 391 host_->active_tree()); |
| 390 | 392 |
| 391 // We have to push properties to pick up the destruction list pointer. | 393 // We have to push properties to pick up the destruction list pointer. |
| 392 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 394 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 393 layer_impl_tree_root.get()); | 395 host_->active_tree()); |
| 394 | 396 |
| 395 // Now restructure the tree to look like this: | 397 // Now restructure the tree to look like this: |
| 396 // root --- D ---+--- A | 398 // root --- D ---+--- A |
| 397 // | | 399 // | |
| 398 // +--- C --- B | 400 // +--- C --- B |
| 399 layer_tree_root->RemoveAllChildren(); | 401 layer_tree_root->RemoveAllChildren(); |
| 400 layer_d->RemoveAllChildren(); | 402 layer_d->RemoveAllChildren(); |
| 401 layer_tree_root->AddChild(layer_d); | 403 layer_tree_root->AddChild(layer_d); |
| 402 layer_a->RemoveAllChildren(); | 404 layer_a->RemoveAllChildren(); |
| 403 layer_d->AddChild(layer_a); | 405 layer_d->AddChild(layer_a); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id(); | 439 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id(); |
| 438 | 440 |
| 439 scoped_ptr<LayerImpl> layer_impl_tree_root = | 441 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 440 TreeSynchronizer::SynchronizeTrees( | 442 TreeSynchronizer::SynchronizeTrees( |
| 441 old_layer_tree_root.get(), nullptr, host_->active_tree()); | 443 old_layer_tree_root.get(), nullptr, host_->active_tree()); |
| 442 ExpectTreesAreIdentical(old_layer_tree_root.get(), | 444 ExpectTreesAreIdentical(old_layer_tree_root.get(), |
| 443 layer_impl_tree_root.get(), | 445 layer_impl_tree_root.get(), |
| 444 host_->active_tree()); | 446 host_->active_tree()); |
| 445 | 447 |
| 446 // We have to push properties to pick up the destruction list pointer. | 448 // We have to push properties to pick up the destruction list pointer. |
| 447 TreeSynchronizer::PushProperties(old_layer_tree_root.get(), | 449 TreeSynchronizer::PushLayerProperties(old_layer_tree_root->layer_tree_host(), |
| 448 layer_impl_tree_root.get()); | 450 host_->active_tree()); |
| 449 | 451 |
| 450 // Remove all children on the Layer side. | 452 // Remove all children on the Layer side. |
| 451 old_layer_tree_root->RemoveAllChildren(); | 453 old_layer_tree_root->RemoveAllChildren(); |
| 452 | 454 |
| 453 // Synchronize again. After the sync all LayerImpls from the old tree should | 455 // Synchronize again. After the sync all LayerImpls from the old tree should |
| 454 // be deleted. | 456 // be deleted. |
| 455 scoped_refptr<Layer> new_layer_tree_root = Layer::Create(); | 457 scoped_refptr<Layer> new_layer_tree_root = Layer::Create(); |
| 456 host_->SetRootLayer(new_layer_tree_root); | 458 host_->SetRootLayer(new_layer_tree_root); |
| 457 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 459 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 458 new_layer_tree_root.get(), std::move(layer_impl_tree_root), | 460 new_layer_tree_root.get(), std::move(layer_impl_tree_root), |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 | 557 |
| 556 host_->SetRootLayer(layer_tree_root); | 558 host_->SetRootLayer(layer_tree_root); |
| 557 | 559 |
| 558 // First child is the second and third child's scroll parent. | 560 // First child is the second and third child's scroll parent. |
| 559 layer_tree_root->children()[1]->SetScrollParent(scroll_parent.get()); | 561 layer_tree_root->children()[1]->SetScrollParent(scroll_parent.get()); |
| 560 layer_tree_root->children()[2]->SetScrollParent(scroll_parent.get()); | 562 layer_tree_root->children()[2]->SetScrollParent(scroll_parent.get()); |
| 561 | 563 |
| 562 scoped_ptr<LayerImpl> layer_impl_tree_root = | 564 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 563 TreeSynchronizer::SynchronizeTrees( | 565 TreeSynchronizer::SynchronizeTrees( |
| 564 layer_tree_root.get(), nullptr, host_impl->active_tree()); | 566 layer_tree_root.get(), nullptr, host_impl->active_tree()); |
| 565 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 567 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 566 layer_impl_tree_root.get()); | 568 host_impl->active_tree()); |
| 567 { | 569 { |
| 568 SCOPED_TRACE("case one"); | 570 SCOPED_TRACE("case one"); |
| 569 ExpectTreesAreIdentical(layer_tree_root.get(), | 571 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 570 layer_impl_tree_root.get(), | 572 layer_impl_tree_root.get(), |
| 571 host_impl->active_tree()); | 573 host_impl->active_tree()); |
| 572 } | 574 } |
| 573 | 575 |
| 574 // Remove the first scroll child. | 576 // Remove the first scroll child. |
| 575 layer_tree_root->children()[1]->RemoveFromParent(); | 577 layer_tree_root->children()[1]->RemoveFromParent(); |
| 576 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 578 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 577 layer_tree_root.get(), std::move(layer_impl_tree_root), | 579 layer_tree_root.get(), std::move(layer_impl_tree_root), |
| 578 host_impl->active_tree()); | 580 host_impl->active_tree()); |
| 579 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 581 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 580 layer_impl_tree_root.get()); | 582 host_impl->active_tree()); |
| 581 { | 583 { |
| 582 SCOPED_TRACE("case two"); | 584 SCOPED_TRACE("case two"); |
| 583 ExpectTreesAreIdentical(layer_tree_root.get(), | 585 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 584 layer_impl_tree_root.get(), | 586 layer_impl_tree_root.get(), |
| 585 host_impl->active_tree()); | 587 host_impl->active_tree()); |
| 586 } | 588 } |
| 587 | 589 |
| 588 // Add an additional scroll layer. | 590 // Add an additional scroll layer. |
| 589 scoped_refptr<Layer> additional_scroll_child = Layer::Create(); | 591 scoped_refptr<Layer> additional_scroll_child = Layer::Create(); |
| 590 layer_tree_root->AddChild(additional_scroll_child); | 592 layer_tree_root->AddChild(additional_scroll_child); |
| 591 additional_scroll_child->SetScrollParent(scroll_parent.get()); | 593 additional_scroll_child->SetScrollParent(scroll_parent.get()); |
| 592 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 594 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 593 layer_tree_root.get(), std::move(layer_impl_tree_root), | 595 layer_tree_root.get(), std::move(layer_impl_tree_root), |
| 594 host_impl->active_tree()); | 596 host_impl->active_tree()); |
| 595 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 597 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 596 layer_impl_tree_root.get()); | 598 host_impl->active_tree()); |
| 597 { | 599 { |
| 598 SCOPED_TRACE("case three"); | 600 SCOPED_TRACE("case three"); |
| 599 ExpectTreesAreIdentical(layer_tree_root.get(), | 601 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 600 layer_impl_tree_root.get(), | 602 layer_impl_tree_root.get(), |
| 601 host_impl->active_tree()); | 603 host_impl->active_tree()); |
| 602 } | 604 } |
| 603 } | 605 } |
| 604 | 606 |
| 605 TEST_F(TreeSynchronizerTest, SynchronizeClipParent) { | 607 TEST_F(TreeSynchronizerTest, SynchronizeClipParent) { |
| 606 LayerTreeSettings settings; | 608 LayerTreeSettings settings; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 624 | 626 |
| 625 host_->SetRootLayer(layer_tree_root); | 627 host_->SetRootLayer(layer_tree_root); |
| 626 | 628 |
| 627 // First child is the second and third child's scroll parent. | 629 // First child is the second and third child's scroll parent. |
| 628 clip_child1->SetClipParent(clip_parent.get()); | 630 clip_child1->SetClipParent(clip_parent.get()); |
| 629 clip_child2->SetClipParent(clip_parent.get()); | 631 clip_child2->SetClipParent(clip_parent.get()); |
| 630 | 632 |
| 631 scoped_ptr<LayerImpl> layer_impl_tree_root = | 633 scoped_ptr<LayerImpl> layer_impl_tree_root = |
| 632 TreeSynchronizer::SynchronizeTrees( | 634 TreeSynchronizer::SynchronizeTrees( |
| 633 layer_tree_root.get(), nullptr, host_impl->active_tree()); | 635 layer_tree_root.get(), nullptr, host_impl->active_tree()); |
| 634 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 636 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 635 layer_impl_tree_root.get()); | 637 host_impl->active_tree()); |
| 636 ExpectTreesAreIdentical(layer_tree_root.get(), | 638 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 637 layer_impl_tree_root.get(), | 639 layer_impl_tree_root.get(), |
| 638 host_impl->active_tree()); | 640 host_impl->active_tree()); |
| 639 | 641 |
| 640 // Remove the first clip child. | 642 // Remove the first clip child. |
| 641 clip_child1->RemoveFromParent(); | 643 clip_child1->RemoveFromParent(); |
| 642 clip_child1 = NULL; | 644 clip_child1 = NULL; |
| 643 | 645 |
| 644 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 646 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 645 layer_tree_root.get(), std::move(layer_impl_tree_root), | 647 layer_tree_root.get(), std::move(layer_impl_tree_root), |
| 646 host_impl->active_tree()); | 648 host_impl->active_tree()); |
| 647 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 649 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 648 layer_impl_tree_root.get()); | 650 host_impl->active_tree()); |
| 649 ExpectTreesAreIdentical(layer_tree_root.get(), | 651 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 650 layer_impl_tree_root.get(), | 652 layer_impl_tree_root.get(), |
| 651 host_impl->active_tree()); | 653 host_impl->active_tree()); |
| 652 | 654 |
| 653 // Add an additional clip child. | 655 // Add an additional clip child. |
| 654 scoped_refptr<Layer> additional_clip_child = Layer::Create(); | 656 scoped_refptr<Layer> additional_clip_child = Layer::Create(); |
| 655 intervening->AddChild(additional_clip_child); | 657 intervening->AddChild(additional_clip_child); |
| 656 additional_clip_child->SetClipParent(clip_parent.get()); | 658 additional_clip_child->SetClipParent(clip_parent.get()); |
| 657 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 659 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 658 layer_tree_root.get(), std::move(layer_impl_tree_root), | 660 layer_tree_root.get(), std::move(layer_impl_tree_root), |
| 659 host_impl->active_tree()); | 661 host_impl->active_tree()); |
| 660 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 662 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 661 layer_impl_tree_root.get()); | 663 host_impl->active_tree()); |
| 662 ExpectTreesAreIdentical(layer_tree_root.get(), | 664 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 663 layer_impl_tree_root.get(), | 665 layer_impl_tree_root.get(), |
| 664 host_impl->active_tree()); | 666 host_impl->active_tree()); |
| 665 | 667 |
| 666 // Remove the nearest clipping ancestor. | 668 // Remove the nearest clipping ancestor. |
| 667 clip_parent->RemoveFromParent(); | 669 clip_parent->RemoveFromParent(); |
| 668 clip_parent = NULL; | 670 clip_parent = NULL; |
| 669 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( | 671 layer_impl_tree_root = TreeSynchronizer::SynchronizeTrees( |
| 670 layer_tree_root.get(), std::move(layer_impl_tree_root), | 672 layer_tree_root.get(), std::move(layer_impl_tree_root), |
| 671 host_impl->active_tree()); | 673 host_impl->active_tree()); |
| 672 TreeSynchronizer::PushProperties(layer_tree_root.get(), | 674 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), |
| 673 layer_impl_tree_root.get()); | 675 host_impl->active_tree()); |
| 674 ExpectTreesAreIdentical(layer_tree_root.get(), | 676 ExpectTreesAreIdentical(layer_tree_root.get(), |
| 675 layer_impl_tree_root.get(), | 677 layer_impl_tree_root.get(), |
| 676 host_impl->active_tree()); | 678 host_impl->active_tree()); |
| 677 | 679 |
| 678 // The clip children should have been unhooked. | 680 // The clip children should have been unhooked. |
| 679 EXPECT_EQ(2u, intervening->children().size()); | 681 EXPECT_EQ(2u, intervening->children().size()); |
| 680 EXPECT_FALSE(clip_child2->clip_parent()); | 682 EXPECT_FALSE(clip_child2->clip_parent()); |
| 681 EXPECT_FALSE(additional_clip_child->clip_parent()); | 683 EXPECT_FALSE(additional_clip_child->clip_parent()); |
| 682 } | 684 } |
| 683 | 685 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread(); | 820 scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread(); |
| 819 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50)); | 821 scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50)); |
| 820 scroll_offset_map[scroll_layer->id()]->PushFromMainThread( | 822 scroll_offset_map[scroll_layer->id()]->PushFromMainThread( |
| 821 gfx::ScrollOffset(100, 100)); | 823 gfx::ScrollOffset(100, 100)); |
| 822 scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); | 824 scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); |
| 823 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map())); | 825 EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map())); |
| 824 } | 826 } |
| 825 | 827 |
| 826 } // namespace | 828 } // namespace |
| 827 } // namespace cc | 829 } // namespace cc |
| OLD | NEW |