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

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

Issue 1808373002: cc : Make tree synchronization independent of layer tree hierarchy (2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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
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
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