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/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 using testing::AnyNumber; | 58 using testing::AnyNumber; |
59 using testing::AtLeast; | 59 using testing::AtLeast; |
60 using testing::Mock; | 60 using testing::Mock; |
61 | 61 |
62 namespace cc { | 62 namespace cc { |
63 namespace { | 63 namespace { |
64 | 64 |
65 class LayerTreeHostTest : public LayerTreeTest { | 65 class LayerTreeHostTest : public LayerTreeTest { |
66 }; | 66 }; |
67 | 67 |
68 // Two setNeedsCommits in a row should lead to at least 1 commit and at least 1 | 68 // Two setNeedsCommits in a row should lead to 1 commit and 1 draw. |
69 // draw with frame 0. | |
70 class LayerTreeHostTestSetNeedsCommit1 : public LayerTreeHostTest { | 69 class LayerTreeHostTestSetNeedsCommit1 : public LayerTreeHostTest { |
71 public: | 70 public: |
72 LayerTreeHostTestSetNeedsCommit1() : num_commits_(0), num_draws_(0) {} | 71 LayerTreeHostTestSetNeedsCommit1() : num_commits_(0), num_draws_(0) {} |
73 | 72 |
74 virtual void BeginTest() OVERRIDE { | 73 virtual void BeginTest() OVERRIDE { |
75 PostSetNeedsCommitToMainThread(); | 74 PostSetNeedsCommitToMainThread(); |
76 PostSetNeedsCommitToMainThread(); | 75 PostSetNeedsCommitToMainThread(); |
77 } | 76 } |
78 | 77 |
79 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 78 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
80 num_draws_++; | 79 num_draws_++; |
81 if (!impl->active_tree()->source_frame_number()) | 80 if (!impl->active_tree()->source_frame_number()) |
82 EndTest(); | 81 EndTest(); |
83 } | 82 } |
84 | 83 |
85 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 84 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
86 num_commits_++; | 85 num_commits_++; |
87 } | 86 } |
88 | 87 |
89 virtual void AfterTest() OVERRIDE { | 88 virtual void AfterTest() OVERRIDE { |
90 EXPECT_GE(1, num_commits_); | 89 EXPECT_EQ(num_commits_, 1); |
91 EXPECT_GE(1, num_draws_); | 90 EXPECT_EQ(num_draws_, 1); |
92 } | 91 } |
93 | 92 |
94 private: | 93 private: |
95 int num_commits_; | 94 int num_commits_; |
96 int num_draws_; | 95 int num_draws_; |
97 }; | 96 }; |
98 | 97 |
99 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsCommit1); | 98 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsCommit1); |
100 | 99 |
101 // A SetNeedsCommit should lead to 1 commit. Issuing a second commit after that | 100 // A SetNeedsCommit should lead to 1 commit. Issuing a second commit after that |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 | 615 |
617 // A compositeAndReadback while invisible should force a normal commit without | 616 // A compositeAndReadback while invisible should force a normal commit without |
618 // assertion. | 617 // assertion. |
619 class LayerTreeHostTestCompositeAndReadbackWhileInvisible | 618 class LayerTreeHostTestCompositeAndReadbackWhileInvisible |
620 : public LayerTreeHostTest { | 619 : public LayerTreeHostTest { |
621 public: | 620 public: |
622 LayerTreeHostTestCompositeAndReadbackWhileInvisible() : num_commits_(0) {} | 621 LayerTreeHostTestCompositeAndReadbackWhileInvisible() : num_commits_(0) {} |
623 | 622 |
624 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 623 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
625 | 624 |
626 virtual void DidCommitAndDrawFrame() OVERRIDE { | 625 virtual void DidCommit() OVERRIDE { |
627 num_commits_++; | 626 num_commits_++; |
628 if (num_commits_ == 1) { | 627 if (num_commits_ == 1) { |
629 layer_tree_host()->SetVisible(false); | 628 layer_tree_host()->SetVisible(false); |
630 layer_tree_host()->SetNeedsCommit(); | 629 layer_tree_host()->SetNeedsCommit(); |
631 layer_tree_host()->SetNeedsCommit(); | 630 layer_tree_host()->SetNeedsCommit(); |
632 char pixels[4]; | 631 char pixels[4]; |
633 layer_tree_host()->CompositeAndReadback(&pixels, gfx::Rect(0, 0, 1, 1)); | 632 layer_tree_host()->CompositeAndReadback(&pixels, gfx::Rect(0, 0, 1, 1)); |
634 } else { | 633 } else { |
635 EndTest(); | 634 EndTest(); |
636 } | 635 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 }; | 694 }; |
696 | 695 |
697 MULTI_THREAD_TEST_F(LayerTreeHostTestCommit); | 696 MULTI_THREAD_TEST_F(LayerTreeHostTestCommit); |
698 | 697 |
699 // This test verifies that LayerTreeHostImpl's current frame time gets | 698 // This test verifies that LayerTreeHostImpl's current frame time gets |
700 // updated in consecutive frames when it doesn't draw due to tree | 699 // updated in consecutive frames when it doesn't draw due to tree |
701 // activation failure. | 700 // activation failure. |
702 class LayerTreeHostTestFrameTimeUpdatesAfterActivationFails | 701 class LayerTreeHostTestFrameTimeUpdatesAfterActivationFails |
703 : public LayerTreeHostTest { | 702 : public LayerTreeHostTest { |
704 public: | 703 public: |
705 LayerTreeHostTestFrameTimeUpdatesAfterActivationFails() : frame_(0) {} | 704 LayerTreeHostTestFrameTimeUpdatesAfterActivationFails() |
| 705 : frame_count_with_pending_tree_(0) {} |
706 | 706 |
707 virtual void BeginTest() OVERRIDE { | 707 virtual void BeginTest() OVERRIDE { |
708 layer_tree_host()->SetViewportSize(gfx::Size(20, 20)); | 708 layer_tree_host()->SetViewportSize(gfx::Size(20, 20)); |
709 layer_tree_host()->set_background_color(SK_ColorGRAY); | 709 layer_tree_host()->set_background_color(SK_ColorGRAY); |
710 | 710 |
711 PostSetNeedsCommitToMainThread(); | 711 PostSetNeedsCommitToMainThread(); |
712 } | 712 } |
713 | 713 |
| 714 virtual void WillBeginFrameOnThread(LayerTreeHostImpl* host_impl, |
| 715 const BeginFrameArgs& args) OVERRIDE { |
| 716 if (host_impl->pending_tree()) |
| 717 frame_count_with_pending_tree_++; |
| 718 } |
| 719 |
714 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 720 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
715 if (frame_ >= 1) { | 721 if (frame_count_with_pending_tree_ > 1) { |
716 EXPECT_NE(first_frame_time_, impl->CurrentFrameTimeTicks()); | 722 EXPECT_NE(first_frame_time_.ToInternalValue(), |
| 723 impl->CurrentFrameTimeTicks().ToInternalValue()); |
717 EndTest(); | 724 EndTest(); |
718 return; | 725 return; |
719 } | 726 } |
720 | 727 |
721 EXPECT_FALSE(impl->settings().impl_side_painting); | 728 EXPECT_FALSE(impl->settings().impl_side_painting); |
722 EndTest(); | 729 EndTest(); |
723 } | 730 } |
724 | 731 |
725 virtual bool CanActivatePendingTree(LayerTreeHostImpl* impl) OVERRIDE { | 732 virtual bool CanActivatePendingTree(LayerTreeHostImpl* impl) OVERRIDE { |
726 if (frame_ >= 1) | 733 return frame_count_with_pending_tree_ > 1; |
727 return true; | |
728 | |
729 return false; | |
730 } | 734 } |
731 | 735 |
732 virtual bool CanActivatePendingTreeIfNeeded(LayerTreeHostImpl* impl) | 736 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
733 OVERRIDE { | 737 if (impl->settings().impl_side_painting) |
734 frame_++; | 738 EXPECT_NE(frame_count_with_pending_tree_, 1); |
735 if (frame_ == 1) { | |
736 first_frame_time_ = impl->CurrentFrameTimeTicks(); | |
737 | |
738 // Since base::TimeTicks::Now() uses a low-resolution clock on | |
739 // Windows, we need to make sure that the clock has incremented past | |
740 // first_frame_time_. | |
741 while (first_frame_time_ == base::TimeTicks::Now()) {} | |
742 | |
743 return false; | |
744 } | |
745 | |
746 return true; | |
747 } | 739 } |
748 | 740 |
749 virtual void AfterTest() OVERRIDE {} | 741 virtual void AfterTest() OVERRIDE {} |
750 | 742 |
751 private: | 743 private: |
752 int frame_; | 744 int frame_count_with_pending_tree_; |
753 base::TimeTicks first_frame_time_; | 745 base::TimeTicks first_frame_time_; |
754 }; | 746 }; |
755 | 747 |
756 SINGLE_AND_MULTI_THREAD_TEST_F( | 748 SINGLE_AND_MULTI_THREAD_TEST_F( |
757 LayerTreeHostTestFrameTimeUpdatesAfterActivationFails); | 749 LayerTreeHostTestFrameTimeUpdatesAfterActivationFails); |
758 | 750 |
759 // This test verifies that LayerTreeHostImpl's current frame time gets | 751 // This test verifies that LayerTreeHostImpl's current frame time gets |
760 // updated in consecutive frames when it draws in each frame. | 752 // updated in consecutive frames when it draws in each frame. |
761 class LayerTreeHostTestFrameTimeUpdatesAfterDraw : public LayerTreeHostTest { | 753 class LayerTreeHostTestFrameTimeUpdatesAfterDraw : public LayerTreeHostTest { |
762 public: | 754 public: |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 PostSetNeedsCommitToMainThread(); | 816 PostSetNeedsCommitToMainThread(); |
825 } | 817 } |
826 | 818 |
827 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, float scale) | 819 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, float scale) |
828 OVERRIDE { | 820 OVERRIDE { |
829 gfx::Vector2d offset = scroll_layer_->scroll_offset(); | 821 gfx::Vector2d offset = scroll_layer_->scroll_offset(); |
830 scroll_layer_->SetScrollOffset(offset + scroll_delta); | 822 scroll_layer_->SetScrollOffset(offset + scroll_delta); |
831 layer_tree_host()->SetPageScaleFactorAndLimits(scale, 0.5f, 2.f); | 823 layer_tree_host()->SetPageScaleFactorAndLimits(scale, 0.5f, 2.f); |
832 } | 824 } |
833 | 825 |
834 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 826 virtual void SwapBuffersOnThread(LayerTreeHostImpl* impl, |
835 impl->ProcessScrollDeltas(); | 827 bool result) OVERRIDE { |
836 // We get one commit before the first draw, and the animation doesn't happen | 828 // We get one commit before the first draw, and the animation doesn't happen |
837 // until the second draw. | 829 // until the second draw. |
838 switch (impl->active_tree()->source_frame_number()) { | 830 switch (impl->active_tree()->source_frame_number()) { |
839 case 0: | 831 case 0: |
840 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); | 832 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); |
841 // We'll start an animation when we get back to the main thread. | 833 // We'll start an animation when we get back to the main thread. |
842 break; | 834 break; |
843 case 1: | 835 case 1: |
844 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); | 836 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); |
845 PostSetNeedsRedrawToMainThread(); | |
846 break; | 837 break; |
847 case 2: | 838 case 2: |
848 EXPECT_EQ(1.25f, impl->active_tree()->page_scale_factor()); | 839 EXPECT_EQ(1.25f, impl->active_tree()->page_scale_factor()); |
849 EndTest(); | 840 EndTest(); |
850 break; | 841 break; |
851 default: | 842 default: |
852 NOTREACHED(); | 843 NOTREACHED(); |
853 } | 844 } |
854 } | 845 } |
855 | 846 |
856 virtual void DidCommitAndDrawFrame() OVERRIDE { | 847 virtual void DidCommit() OVERRIDE { |
857 switch (layer_tree_host()->source_frame_number()) { | 848 switch (layer_tree_host()->source_frame_number()) { |
858 case 1: | 849 case 1: |
859 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.5f, 2.f); | 850 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.5f, 2.f); |
860 layer_tree_host()->StartPageScaleAnimation( | 851 layer_tree_host()->StartPageScaleAnimation( |
861 gfx::Vector2d(), false, 1.25f, base::TimeDelta()); | 852 gfx::Vector2d(), false, 1.25f, base::TimeDelta()); |
862 break; | 853 break; |
863 } | 854 } |
864 } | 855 } |
865 | 856 |
866 virtual void AfterTest() OVERRIDE {} | 857 virtual void AfterTest() OVERRIDE {} |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1310 parent_->AddChild(child_); | 1301 parent_->AddChild(child_); |
1311 | 1302 |
1312 layer_tree_host()->SetRootLayer(parent_); | 1303 layer_tree_host()->SetRootLayer(parent_); |
1313 LayerTreeHostTest::SetupTree(); | 1304 LayerTreeHostTest::SetupTree(); |
1314 } | 1305 } |
1315 | 1306 |
1316 virtual void BeginTest() OVERRIDE { | 1307 virtual void BeginTest() OVERRIDE { |
1317 PostSetNeedsCommitToMainThread(); | 1308 PostSetNeedsCommitToMainThread(); |
1318 } | 1309 } |
1319 | 1310 |
1320 virtual void DidCommitAndDrawFrame() OVERRIDE { | 1311 virtual void DidCommit() OVERRIDE { |
1321 switch (layer_tree_host()->source_frame_number()) { | 1312 switch (layer_tree_host()->source_frame_number()) { |
1322 case 1: | 1313 case 1: |
1323 parent_->SetNeedsDisplay(); | 1314 parent_->SetNeedsDisplay(); |
1324 child_->SetNeedsDisplay(); | 1315 child_->SetNeedsDisplay(); |
1325 break; | 1316 break; |
1326 case 2: | 1317 case 2: |
1327 // Damage part of layers. | 1318 // Damage part of layers. |
1328 parent_->SetNeedsDisplayRect(gfx::RectF(0.f, 0.f, 5.f, 5.f)); | 1319 parent_->SetNeedsDisplayRect(gfx::RectF(0.f, 0.f, 5.f, 5.f)); |
1329 child_->SetNeedsDisplayRect(gfx::RectF(0.f, 0.f, 5.f, 5.f)); | 1320 child_->SetNeedsDisplayRect(gfx::RectF(0.f, 0.f, 5.f, 5.f)); |
1330 break; | 1321 break; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1441 | 1432 |
1442 class LayerTreeHostTestFinishAllRendering : public LayerTreeHostTest { | 1433 class LayerTreeHostTestFinishAllRendering : public LayerTreeHostTest { |
1443 public: | 1434 public: |
1444 LayerTreeHostTestFinishAllRendering() : once_(false), draw_count_(0) {} | 1435 LayerTreeHostTestFinishAllRendering() : once_(false), draw_count_(0) {} |
1445 | 1436 |
1446 virtual void BeginTest() OVERRIDE { | 1437 virtual void BeginTest() OVERRIDE { |
1447 layer_tree_host()->SetNeedsRedraw(); | 1438 layer_tree_host()->SetNeedsRedraw(); |
1448 PostSetNeedsCommitToMainThread(); | 1439 PostSetNeedsCommitToMainThread(); |
1449 } | 1440 } |
1450 | 1441 |
1451 virtual void DidCommitAndDrawFrame() OVERRIDE { | 1442 virtual void DidCommit() OVERRIDE { |
1452 if (once_) | 1443 if (once_) |
1453 return; | 1444 return; |
1454 once_ = true; | 1445 once_ = true; |
1455 layer_tree_host()->SetNeedsRedraw(); | 1446 layer_tree_host()->SetNeedsRedraw(); |
1456 layer_tree_host()->AcquireLayerTextures(); | 1447 layer_tree_host()->AcquireLayerTextures(); |
1457 { | 1448 { |
1458 base::AutoLock lock(lock_); | 1449 base::AutoLock lock(lock_); |
1459 draw_count_ = 0; | 1450 draw_count_ = 0; |
1460 } | 1451 } |
1461 layer_tree_host()->FinishAllRendering(); | 1452 layer_tree_host()->FinishAllRendering(); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1529 surface_layer2_->SetReplicaLayer(replica_layer2_.get()); | 1520 surface_layer2_->SetReplicaLayer(replica_layer2_.get()); |
1530 | 1521 |
1531 layer_tree_host()->SetRootLayer(root_layer_); | 1522 layer_tree_host()->SetRootLayer(root_layer_); |
1532 LayerTreeHostTest::SetupTree(); | 1523 LayerTreeHostTest::SetupTree(); |
1533 } | 1524 } |
1534 | 1525 |
1535 virtual void BeginTest() OVERRIDE { | 1526 virtual void BeginTest() OVERRIDE { |
1536 PostSetNeedsCommitToMainThread(); | 1527 PostSetNeedsCommitToMainThread(); |
1537 } | 1528 } |
1538 | 1529 |
| 1530 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 1531 if (host_impl->active_tree()->source_frame_number() == 0) { |
| 1532 // Reduce the memory limit to only fit the root layer and one render |
| 1533 // surface. This prevents any contents drawing into surfaces |
| 1534 // from being allocated. |
| 1535 host_impl->SetMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2)); |
| 1536 host_impl->SetDiscardBackBufferWhenNotVisible(true); |
| 1537 |
| 1538 // If ManageTiles ever deallocates resources before the subsequent draw, |
| 1539 // this test will need to change. |
| 1540 host_impl->ManageTiles(); |
| 1541 } |
| 1542 } |
| 1543 |
1539 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 1544 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
1540 Renderer* renderer = host_impl->renderer(); | 1545 Renderer* renderer = host_impl->renderer(); |
1541 RenderPass::Id surface1_render_pass_id = host_impl->active_tree() | 1546 RenderPass::Id surface1_render_pass_id = host_impl->active_tree() |
1542 ->root_layer()->children()[0]->render_surface()->RenderPassId(); | 1547 ->root_layer()->children()[0]->render_surface()->RenderPassId(); |
1543 RenderPass::Id surface2_render_pass_id = | 1548 RenderPass::Id surface2_render_pass_id = |
1544 host_impl->active_tree()->root_layer()->children()[0]->children()[0] | 1549 host_impl->active_tree()->root_layer()->children()[0]->children()[0] |
1545 ->render_surface()->RenderPassId(); | 1550 ->render_surface()->RenderPassId(); |
1546 | 1551 |
1547 switch (host_impl->active_tree()->source_frame_number()) { | 1552 switch (host_impl->active_tree()->source_frame_number()) { |
1548 case 0: | 1553 case 0: |
1549 EXPECT_TRUE(renderer->HaveCachedResourcesForRenderPassId( | 1554 EXPECT_TRUE(renderer->HaveCachedResourcesForRenderPassId( |
1550 surface1_render_pass_id)); | 1555 surface1_render_pass_id)); |
1551 EXPECT_TRUE(renderer->HaveCachedResourcesForRenderPassId( | 1556 EXPECT_TRUE(renderer->HaveCachedResourcesForRenderPassId( |
1552 surface2_render_pass_id)); | 1557 surface2_render_pass_id)); |
1553 | |
1554 // Reduce the memory limit to only fit the root layer and one render | |
1555 // surface. This prevents any contents drawing into surfaces | |
1556 // from being allocated. | |
1557 host_impl->SetMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2)); | |
1558 host_impl->SetDiscardBackBufferWhenNotVisible(true); | |
1559 break; | 1558 break; |
1560 case 1: | 1559 case 1: |
1561 EXPECT_FALSE(renderer->HaveCachedResourcesForRenderPassId( | 1560 EXPECT_FALSE(renderer->HaveCachedResourcesForRenderPassId( |
1562 surface1_render_pass_id)); | 1561 surface1_render_pass_id)); |
1563 EXPECT_FALSE(renderer->HaveCachedResourcesForRenderPassId( | 1562 EXPECT_FALSE(renderer->HaveCachedResourcesForRenderPassId( |
1564 surface2_render_pass_id)); | 1563 surface2_render_pass_id)); |
1565 | |
1566 EndTest(); | 1564 EndTest(); |
1567 break; | 1565 break; |
1568 } | 1566 } |
1569 } | 1567 } |
1570 | 1568 |
1571 virtual void DidCommitAndDrawFrame() OVERRIDE { | 1569 virtual void DidCommit() OVERRIDE { |
1572 if (layer_tree_host()->source_frame_number() < 2) | 1570 if (layer_tree_host()->source_frame_number() < 2) |
1573 root_layer_->SetNeedsDisplay(); | 1571 root_layer_->SetNeedsDisplay(); |
1574 } | 1572 } |
1575 | 1573 |
1576 virtual void AfterTest() OVERRIDE { | 1574 virtual void AfterTest() OVERRIDE { |
1577 EXPECT_LE(2u, root_layer_->update_count()); | 1575 EXPECT_LE(2u, root_layer_->update_count()); |
1578 EXPECT_LE(2u, surface_layer1_->update_count()); | 1576 EXPECT_LE(2u, surface_layer1_->update_count()); |
1579 EXPECT_LE(2u, surface_layer2_->update_count()); | 1577 EXPECT_LE(2u, surface_layer2_->update_count()); |
1580 } | 1578 } |
1581 | 1579 |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1867 content_layer_ = ContentLayer::Create(&client_); | 1865 content_layer_ = ContentLayer::Create(&client_); |
1868 content_layer_->SetBounds(gfx::Size(10, 10)); | 1866 content_layer_->SetBounds(gfx::Size(10, 10)); |
1869 content_layer_->SetPosition(gfx::PointF(0.f, 0.f)); | 1867 content_layer_->SetPosition(gfx::PointF(0.f, 0.f)); |
1870 content_layer_->SetAnchorPoint(gfx::PointF(0.f, 0.f)); | 1868 content_layer_->SetAnchorPoint(gfx::PointF(0.f, 0.f)); |
1871 content_layer_->SetIsDrawable(true); | 1869 content_layer_->SetIsDrawable(true); |
1872 layer_tree_host()->root_layer()->AddChild(content_layer_); | 1870 layer_tree_host()->root_layer()->AddChild(content_layer_); |
1873 | 1871 |
1874 PostSetNeedsCommitToMainThread(); | 1872 PostSetNeedsCommitToMainThread(); |
1875 } | 1873 } |
1876 | 1874 |
1877 virtual void DidCommitAndDrawFrame() OVERRIDE { | 1875 virtual void DidCommit() OVERRIDE { content_layer_->SetNeedsDisplay(); } |
1878 if (num_draw_layers_ == 2) | |
1879 return; | |
1880 content_layer_->SetNeedsDisplay(); | |
1881 } | |
1882 | 1876 |
1883 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 1877 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
1884 if (num_draw_layers_ == 1) | 1878 EXPECT_EQ(num_draw_layers_, num_commit_complete_); |
1885 num_commit_complete_++; | 1879 num_commit_complete_++; |
1886 } | 1880 } |
1887 | 1881 |
1888 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { | 1882 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { |
1889 num_draw_layers_++; | 1883 num_draw_layers_++; |
1890 if (num_draw_layers_ == 2) | 1884 if (num_draw_layers_ == 2) |
1891 EndTest(); | 1885 EndTest(); |
1892 } | 1886 } |
1893 | 1887 |
1894 virtual void AfterTest() OVERRIDE { | 1888 virtual void AfterTest() OVERRIDE {} |
1895 // Check that we didn't commit twice between first and second draw. | |
1896 EXPECT_EQ(1, num_commit_complete_); | |
1897 } | |
1898 | 1889 |
1899 private: | 1890 private: |
1900 FakeContentLayerClient client_; | 1891 FakeContentLayerClient client_; |
1901 scoped_refptr<Layer> content_layer_; | 1892 scoped_refptr<Layer> content_layer_; |
1902 int num_commit_complete_; | 1893 int num_commit_complete_; |
1903 int num_draw_layers_; | 1894 int num_draw_layers_; |
1904 }; | 1895 }; |
1905 | 1896 |
1906 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate); | 1897 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate); |
1907 | 1898 |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2265 settings->using_synchronous_renderer_compositor = true; | 2256 settings->using_synchronous_renderer_compositor = true; |
2266 } | 2257 } |
2267 | 2258 |
2268 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 2259 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
2269 | 2260 |
2270 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 2261 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
2271 // The BeginFrame notification is turned off now but will get enabled | 2262 // The BeginFrame notification is turned off now but will get enabled |
2272 // once we return. End test while it's enabled. | 2263 // once we return. End test while it's enabled. |
2273 ImplThreadTaskRunner()->PostTask( | 2264 ImplThreadTaskRunner()->PostTask( |
2274 FROM_HERE, | 2265 FROM_HERE, |
2275 base::Bind(&LayerTreeHostTestBeginFrameNotification::EndTest, | 2266 base::Bind( |
2276 base::Unretained(this))); | 2267 &LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled:: |
| 2268 EndTest, |
| 2269 base::Unretained(this))); |
2277 } | 2270 } |
2278 | 2271 |
2279 virtual void AfterTest() OVERRIDE {} | 2272 virtual void AfterTest() OVERRIDE {} |
2280 }; | 2273 }; |
2281 | 2274 |
2282 MULTI_THREAD_TEST_F( | 2275 MULTI_THREAD_TEST_F( |
2283 LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled); | 2276 LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled); |
2284 | 2277 |
2285 class LayerTreeHostTestUninvertibleTransformDoesNotBlockActivation | 2278 class LayerTreeHostTestUninvertibleTransformDoesNotBlockActivation |
2286 : public LayerTreeHostTest { | 2279 : public LayerTreeHostTest { |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2513 root->AddChild(child); | 2506 root->AddChild(child); |
2514 | 2507 |
2515 layer_tree_host()->SetRootLayer(root); | 2508 layer_tree_host()->SetRootLayer(root); |
2516 LayerTreeHostTest::SetupTree(); | 2509 LayerTreeHostTest::SetupTree(); |
2517 } | 2510 } |
2518 | 2511 |
2519 virtual void BeginTest() OVERRIDE { | 2512 virtual void BeginTest() OVERRIDE { |
2520 PostSetNeedsCommitToMainThread(); | 2513 PostSetNeedsCommitToMainThread(); |
2521 } | 2514 } |
2522 | 2515 |
2523 virtual void DidCommitAndDrawFrame() OVERRIDE { | 2516 virtual void DidCommit() OVERRIDE { WaitForCallback(); } |
2524 WaitForCallback(); | |
2525 } | |
2526 | 2517 |
2527 void WaitForCallback() { | 2518 void WaitForCallback() { |
2528 base::MessageLoop::current()->PostTask( | 2519 base::MessageLoop::current()->PostTask( |
2529 FROM_HERE, | 2520 FROM_HERE, |
2530 base::Bind( | 2521 base::Bind( |
2531 &LayerTreeHostTestAsyncReadback::NextStep, | 2522 &LayerTreeHostTestAsyncReadback::NextStep, |
2532 base::Unretained(this))); | 2523 base::Unretained(this))); |
2533 } | 2524 } |
2534 | 2525 |
2535 void NextStep() { | 2526 void NextStep() { |
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3197 layer_tree_host()->SetNeedsRedraw(); | 3188 layer_tree_host()->SetNeedsRedraw(); |
3198 break; | 3189 break; |
3199 case 3: | 3190 case 3: |
3200 // CompositeAndReadback in Round 4, first commit. | 3191 // CompositeAndReadback in Round 4, first commit. |
3201 EXPECT_EQ(2, frame_); | 3192 EXPECT_EQ(2, frame_); |
3202 break; | 3193 break; |
3203 case 4: | 3194 case 4: |
3204 // Round 4 done. | 3195 // Round 4 done. |
3205 EXPECT_EQ(2, frame_); | 3196 EXPECT_EQ(2, frame_); |
3206 layer_tree_host()->SetNeedsCommit(); | 3197 layer_tree_host()->SetNeedsCommit(); |
| 3198 // We can't SetNeedsRedraw immediately because it will race the commit. |
| 3199 break; |
| 3200 case 5: |
| 3201 EXPECT_EQ(2, frame_); |
3207 layer_tree_host()->SetNeedsRedraw(); | 3202 layer_tree_host()->SetNeedsRedraw(); |
3208 break; | 3203 break; |
3209 } | 3204 } |
3210 } | 3205 } |
3211 | 3206 |
3212 virtual void DidCompleteSwapBuffers() OVERRIDE { | 3207 virtual void DidCompleteSwapBuffers() OVERRIDE { |
3213 int commit = layer_tree_host()->source_frame_number(); | 3208 int commit = layer_tree_host()->source_frame_number(); |
3214 ++frame_; | 3209 ++frame_; |
3215 char pixels[4] = {0}; | 3210 char pixels[4] = {0}; |
3216 switch (frame_) { | 3211 switch (frame_) { |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3519 child2_->AddChild(leaf_picture_layer_); | 3514 child2_->AddChild(leaf_picture_layer_); |
3520 if (leaf_content_layer_) | 3515 if (leaf_content_layer_) |
3521 child2_->AddChild(leaf_content_layer_); | 3516 child2_->AddChild(leaf_content_layer_); |
3522 | 3517 |
3523 other_root_ = PushPropertiesCountingLayer::Create(); | 3518 other_root_ = PushPropertiesCountingLayer::Create(); |
3524 | 3519 |
3525 // Don't set the root layer here. | 3520 // Don't set the root layer here. |
3526 LayerTreeHostTest::SetupTree(); | 3521 LayerTreeHostTest::SetupTree(); |
3527 } | 3522 } |
3528 | 3523 |
3529 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3524 virtual void DidCommit() OVERRIDE { |
3530 ++num_commits_; | 3525 ++num_commits_; |
3531 | 3526 |
3532 EXPECT_EQ(expected_push_properties_root_, root_->push_properties_count()); | 3527 EXPECT_EQ(expected_push_properties_root_, root_->push_properties_count()); |
3533 EXPECT_EQ(expected_push_properties_child_, child_->push_properties_count()); | 3528 EXPECT_EQ(expected_push_properties_child_, child_->push_properties_count()); |
3534 EXPECT_EQ(expected_push_properties_grandchild_, | 3529 EXPECT_EQ(expected_push_properties_grandchild_, |
3535 grandchild_->push_properties_count()); | 3530 grandchild_->push_properties_count()); |
3536 EXPECT_EQ(expected_push_properties_child2_, | 3531 EXPECT_EQ(expected_push_properties_child2_, |
3537 child2_->push_properties_count()); | 3532 child2_->push_properties_count()); |
3538 EXPECT_EQ(expected_push_properties_other_root_, | 3533 EXPECT_EQ(expected_push_properties_other_root_, |
3539 other_root_->push_properties_count()); | 3534 other_root_->push_properties_count()); |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3713 bool has_thumb = false; | 3708 bool has_thumb = false; |
3714 scrollbar_layer_ = | 3709 scrollbar_layer_ = |
3715 FakeScrollbarLayer::Create(paint_scrollbar, has_thumb, root_->id()); | 3710 FakeScrollbarLayer::Create(paint_scrollbar, has_thumb, root_->id()); |
3716 | 3711 |
3717 root_->AddChild(scrollbar_layer_); | 3712 root_->AddChild(scrollbar_layer_); |
3718 | 3713 |
3719 layer_tree_host()->SetRootLayer(root_); | 3714 layer_tree_host()->SetRootLayer(root_); |
3720 LayerTreeHostTest::SetupTree(); | 3715 LayerTreeHostTest::SetupTree(); |
3721 } | 3716 } |
3722 | 3717 |
3723 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3718 virtual void DidCommit() OVERRIDE { |
3724 switch (layer_tree_host()->source_frame_number()) { | 3719 switch (layer_tree_host()->source_frame_number()) { |
3725 case 0: | 3720 case 0: |
3726 break; | 3721 break; |
3727 case 1: { | 3722 case 1: { |
3728 // During update, the ignore_set_needs_commit_ bit is set to true to | 3723 // During update, the ignore_set_needs_commit_ bit is set to true to |
3729 // avoid causing a second commit to be scheduled. If a property change | 3724 // avoid causing a second commit to be scheduled. If a property change |
3730 // is made during this, however, it needs to be pushed in the upcoming | 3725 // is made during this, however, it needs to be pushed in the upcoming |
3731 // commit. | 3726 // commit. |
3732 scoped_ptr<base::AutoReset<bool> > ignore = | 3727 scoped_ptr<base::AutoReset<bool> > ignore = |
3733 scrollbar_layer_->IgnoreSetNeedsCommit(); | 3728 scrollbar_layer_->IgnoreSetNeedsCommit(); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3796 size_t expected_push_properties_root_; | 3791 size_t expected_push_properties_root_; |
3797 size_t expected_push_properties_child_; | 3792 size_t expected_push_properties_child_; |
3798 size_t expected_push_properties_grandchild1_; | 3793 size_t expected_push_properties_grandchild1_; |
3799 size_t expected_push_properties_grandchild2_; | 3794 size_t expected_push_properties_grandchild2_; |
3800 size_t expected_push_properties_grandchild3_; | 3795 size_t expected_push_properties_grandchild3_; |
3801 }; | 3796 }; |
3802 | 3797 |
3803 class LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush | 3798 class LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush |
3804 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 3799 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
3805 protected: | 3800 protected: |
3806 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3801 virtual void DidCommit() OVERRIDE { |
3807 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 3802 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
3808 switch (last_source_frame_number) { | 3803 switch (last_source_frame_number) { |
3809 case 0: | 3804 case 0: |
3810 EXPECT_FALSE(root_->needs_push_properties()); | 3805 EXPECT_FALSE(root_->needs_push_properties()); |
3811 EXPECT_FALSE(root_->descendant_needs_push_properties()); | 3806 EXPECT_FALSE(root_->descendant_needs_push_properties()); |
3812 EXPECT_FALSE(child_->needs_push_properties()); | 3807 EXPECT_FALSE(child_->needs_push_properties()); |
3813 EXPECT_FALSE(child_->descendant_needs_push_properties()); | 3808 EXPECT_FALSE(child_->descendant_needs_push_properties()); |
3814 EXPECT_FALSE(grandchild1_->needs_push_properties()); | 3809 EXPECT_FALSE(grandchild1_->needs_push_properties()); |
3815 EXPECT_FALSE(grandchild1_->descendant_needs_push_properties()); | 3810 EXPECT_FALSE(grandchild1_->descendant_needs_push_properties()); |
3816 EXPECT_FALSE(grandchild2_->needs_push_properties()); | 3811 EXPECT_FALSE(grandchild2_->needs_push_properties()); |
(...skipping 19 matching lines...) Expand all Loading... |
3836 break; | 3831 break; |
3837 } | 3832 } |
3838 } | 3833 } |
3839 }; | 3834 }; |
3840 | 3835 |
3841 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush); | 3836 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush); |
3842 | 3837 |
3843 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion | 3838 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion |
3844 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 3839 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
3845 protected: | 3840 protected: |
3846 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3841 virtual void DidCommit() OVERRIDE { |
3847 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 3842 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
3848 switch (last_source_frame_number) { | 3843 switch (last_source_frame_number) { |
3849 case 0: | 3844 case 0: |
3850 layer_tree_host()->SetRootLayer(root_); | 3845 layer_tree_host()->SetRootLayer(root_); |
3851 break; | 3846 break; |
3852 case 1: | 3847 case 1: |
3853 EXPECT_FALSE(root_->needs_push_properties()); | 3848 EXPECT_FALSE(root_->needs_push_properties()); |
3854 EXPECT_FALSE(root_->descendant_needs_push_properties()); | 3849 EXPECT_FALSE(root_->descendant_needs_push_properties()); |
3855 EXPECT_FALSE(child_->needs_push_properties()); | 3850 EXPECT_FALSE(child_->needs_push_properties()); |
3856 EXPECT_FALSE(child_->descendant_needs_push_properties()); | 3851 EXPECT_FALSE(child_->descendant_needs_push_properties()); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3919 break; | 3914 break; |
3920 } | 3915 } |
3921 } | 3916 } |
3922 }; | 3917 }; |
3923 | 3918 |
3924 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion); | 3919 MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion); |
3925 | 3920 |
3926 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence | 3921 class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence |
3927 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 3922 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
3928 protected: | 3923 protected: |
3929 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3924 virtual void DidCommit() OVERRIDE { |
3930 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 3925 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
3931 switch (last_source_frame_number) { | 3926 switch (last_source_frame_number) { |
3932 case 0: | 3927 case 0: |
3933 layer_tree_host()->SetRootLayer(root_); | 3928 layer_tree_host()->SetRootLayer(root_); |
3934 grandchild1_->set_persist_needs_push_properties(true); | 3929 grandchild1_->set_persist_needs_push_properties(true); |
3935 grandchild2_->set_persist_needs_push_properties(true); | 3930 grandchild2_->set_persist_needs_push_properties(true); |
3936 break; | 3931 break; |
3937 case 1: | 3932 case 1: |
3938 EXPECT_FALSE(root_->needs_push_properties()); | 3933 EXPECT_FALSE(root_->needs_push_properties()); |
3939 EXPECT_TRUE(root_->descendant_needs_push_properties()); | 3934 EXPECT_TRUE(root_->descendant_needs_push_properties()); |
(...skipping 27 matching lines...) Expand all Loading... |
3967 } | 3962 } |
3968 } | 3963 } |
3969 }; | 3964 }; |
3970 | 3965 |
3971 MULTI_THREAD_TEST_F( | 3966 MULTI_THREAD_TEST_F( |
3972 LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence); | 3967 LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence); |
3973 | 3968 |
3974 class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree | 3969 class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree |
3975 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 3970 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
3976 protected: | 3971 protected: |
3977 virtual void DidCommitAndDrawFrame() OVERRIDE { | 3972 virtual void DidCommit() OVERRIDE { |
3978 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 3973 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
3979 switch (last_source_frame_number) { | 3974 switch (last_source_frame_number) { |
3980 case 0: | 3975 case 0: |
3981 layer_tree_host()->SetRootLayer(root_); | 3976 layer_tree_host()->SetRootLayer(root_); |
3982 break; | 3977 break; |
3983 case 1: | 3978 case 1: |
3984 EXPECT_FALSE(root_->needs_push_properties()); | 3979 EXPECT_FALSE(root_->needs_push_properties()); |
3985 EXPECT_FALSE(root_->descendant_needs_push_properties()); | 3980 EXPECT_FALSE(root_->descendant_needs_push_properties()); |
3986 EXPECT_FALSE(child_->needs_push_properties()); | 3981 EXPECT_FALSE(child_->needs_push_properties()); |
3987 EXPECT_FALSE(child_->descendant_needs_push_properties()); | 3982 EXPECT_FALSE(child_->descendant_needs_push_properties()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4035 } | 4030 } |
4036 } | 4031 } |
4037 }; | 4032 }; |
4038 | 4033 |
4039 MULTI_THREAD_TEST_F( | 4034 MULTI_THREAD_TEST_F( |
4040 LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree); | 4035 LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree); |
4041 | 4036 |
4042 class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild | 4037 class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild |
4043 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 4038 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
4044 protected: | 4039 protected: |
4045 virtual void DidCommitAndDrawFrame() OVERRIDE { | 4040 virtual void DidCommit() OVERRIDE { |
4046 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 4041 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
4047 switch (last_source_frame_number) { | 4042 switch (last_source_frame_number) { |
4048 case 0: | 4043 case 0: |
4049 layer_tree_host()->SetRootLayer(root_); | 4044 layer_tree_host()->SetRootLayer(root_); |
4050 break; | 4045 break; |
4051 case 1: | 4046 case 1: |
4052 EXPECT_FALSE(root_->needs_push_properties()); | 4047 EXPECT_FALSE(root_->needs_push_properties()); |
4053 EXPECT_FALSE(root_->descendant_needs_push_properties()); | 4048 EXPECT_FALSE(root_->descendant_needs_push_properties()); |
4054 EXPECT_FALSE(child_->needs_push_properties()); | 4049 EXPECT_FALSE(child_->needs_push_properties()); |
4055 EXPECT_FALSE(child_->descendant_needs_push_properties()); | 4050 EXPECT_FALSE(child_->descendant_needs_push_properties()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4099 } | 4094 } |
4100 } | 4095 } |
4101 }; | 4096 }; |
4102 | 4097 |
4103 MULTI_THREAD_TEST_F( | 4098 MULTI_THREAD_TEST_F( |
4104 LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild); | 4099 LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild); |
4105 | 4100 |
4106 class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent | 4101 class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent |
4107 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 4102 : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { |
4108 protected: | 4103 protected: |
4109 virtual void DidCommitAndDrawFrame() OVERRIDE { | 4104 virtual void DidCommit() OVERRIDE { |
4110 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; | 4105 int last_source_frame_number = layer_tree_host()->source_frame_number() - 1; |
4111 switch (last_source_frame_number) { | 4106 switch (last_source_frame_number) { |
4112 case 0: | 4107 case 0: |
4113 layer_tree_host()->SetRootLayer(root_); | 4108 layer_tree_host()->SetRootLayer(root_); |
4114 break; | 4109 break; |
4115 case 1: | 4110 case 1: |
4116 EXPECT_FALSE(root_->needs_push_properties()); | 4111 EXPECT_FALSE(root_->needs_push_properties()); |
4117 EXPECT_FALSE(root_->descendant_needs_push_properties()); | 4112 EXPECT_FALSE(root_->descendant_needs_push_properties()); |
4118 EXPECT_FALSE(child_->needs_push_properties()); | 4113 EXPECT_FALSE(child_->needs_push_properties()); |
4119 EXPECT_FALSE(child_->descendant_needs_push_properties()); | 4114 EXPECT_FALSE(child_->descendant_needs_push_properties()); |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4484 int num_will_begin_frames_; | 4479 int num_will_begin_frames_; |
4485 int num_impl_commits_; | 4480 int num_impl_commits_; |
4486 }; | 4481 }; |
4487 | 4482 |
4488 // Commits can only be aborted when using the thread proxy. | 4483 // Commits can only be aborted when using the thread proxy. |
4489 MULTI_THREAD_TEST_F(LayerTreeHostTestAbortEvictedTextures); | 4484 MULTI_THREAD_TEST_F(LayerTreeHostTestAbortEvictedTextures); |
4490 | 4485 |
4491 } // namespace | 4486 } // namespace |
4492 | 4487 |
4493 } // namespace cc | 4488 } // namespace cc |
OLD | NEW |