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/location.h" | 10 #include "base/location.h" |
(...skipping 4806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4817 }; | 4817 }; |
4818 | 4818 |
4819 SINGLE_AND_MULTI_THREAD_TEST_F( | 4819 SINGLE_AND_MULTI_THREAD_TEST_F( |
4820 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface); | 4820 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface); |
4821 | 4821 |
4822 struct TestSwapPromiseResult { | 4822 struct TestSwapPromiseResult { |
4823 TestSwapPromiseResult() | 4823 TestSwapPromiseResult() |
4824 : did_swap_called(false), | 4824 : did_swap_called(false), |
4825 did_not_swap_called(false), | 4825 did_not_swap_called(false), |
4826 dtor_called(false), | 4826 dtor_called(false), |
4827 reason(SwapPromise::DID_NOT_SWAP_UNKNOWN) {} | 4827 reason(Promise::DidNotSwap::UNKNOWN) {} |
4828 | 4828 |
4829 bool did_swap_called; | 4829 bool did_swap_called; |
4830 bool did_not_swap_called; | 4830 bool did_not_swap_called; |
4831 bool dtor_called; | 4831 bool dtor_called; |
4832 SwapPromise::DidNotSwapReason reason; | 4832 Promise::DidNotSwap::Reason reason; |
4833 base::Lock lock; | 4833 base::Lock lock; |
4834 }; | 4834 }; |
4835 | 4835 |
4836 class TestSwapPromise : public SwapPromise { | 4836 class TestSwapPromise : public SwapPromise { |
4837 public: | 4837 public: |
4838 explicit TestSwapPromise(TestSwapPromiseResult* result) : result_(result) {} | 4838 explicit TestSwapPromise(TestSwapPromiseResult* result) : result_(result) {} |
4839 | 4839 |
4840 ~TestSwapPromise() override { | 4840 ~TestSwapPromise() override { |
4841 base::AutoLock lock(result_->lock); | 4841 base::AutoLock lock(result_->lock); |
4842 result_->dtor_called = true; | 4842 result_->dtor_called = true; |
4843 } | 4843 } |
4844 | 4844 |
4845 void DidSwap(CompositorFrameMetadata* metadata) override { | 4845 void DidSwap(CompositorFrameMetadata* metadata) override { |
4846 base::AutoLock lock(result_->lock); | 4846 base::AutoLock lock(result_->lock); |
4847 EXPECT_FALSE(result_->did_swap_called); | 4847 EXPECT_FALSE(result_->did_swap_called); |
4848 EXPECT_FALSE(result_->did_not_swap_called); | 4848 EXPECT_FALSE(result_->did_not_swap_called); |
4849 result_->did_swap_called = true; | 4849 result_->did_swap_called = true; |
4850 } | 4850 } |
4851 | 4851 |
4852 void DidNotSwap(DidNotSwapReason reason) override { | 4852 void DidNotSwap(DidNotSwap::Reason reason) override { |
4853 base::AutoLock lock(result_->lock); | 4853 base::AutoLock lock(result_->lock); |
4854 EXPECT_FALSE(result_->did_swap_called); | 4854 EXPECT_FALSE(result_->did_swap_called); |
4855 EXPECT_FALSE(result_->did_not_swap_called); | 4855 EXPECT_FALSE(result_->did_not_swap_called); |
4856 result_->did_not_swap_called = true; | 4856 result_->did_not_swap_called = true; |
4857 result_->reason = reason; | 4857 result_->reason = reason; |
4858 } | 4858 } |
4859 | 4859 |
4860 int64 TraceId() const override { return 0; } | 4860 int64 TraceId() const override { return 0; } |
4861 | 4861 |
4862 private: | 4862 private: |
4863 // Not owned. | 4863 // Not owned. |
4864 TestSwapPromiseResult* result_; | 4864 TestSwapPromiseResult* result_; |
4865 }; | 4865 }; |
4866 | 4866 |
4867 class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest { | 4867 class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest { |
4868 protected: | 4868 protected: |
4869 LayerTreeHostTestBreakSwapPromise() | 4869 LayerTreeHostTestBreakSwapPromise() |
4870 : commit_count_(0), commit_complete_count_(0) {} | 4870 : commit_count_(0), commit_complete_count_(0) {} |
4871 | 4871 |
4872 void WillBeginMainFrame() override { | 4872 void WillBeginMainFrame() override { |
4873 ASSERT_LE(commit_count_, 2); | 4873 ASSERT_LE(commit_count_, 2); |
4874 scoped_ptr<SwapPromise> swap_promise( | 4874 scoped_ptr<Promise> swap_promise( |
4875 new TestSwapPromise(&swap_promise_result_[commit_count_])); | 4875 new TestSwapPromise(&swap_promise_result_[commit_count_])); |
4876 layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); | 4876 layer_tree_host()->QueuePromise(swap_promise.Pass()); |
4877 } | 4877 } |
4878 | 4878 |
4879 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 4879 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
4880 | 4880 |
4881 void DidCommit() override { | 4881 void DidCommit() override { |
4882 commit_count_++; | 4882 commit_count_++; |
4883 if (commit_count_ == 2) { | 4883 if (commit_count_ == 2) { |
4884 // This commit will finish. | 4884 // This commit will finish. |
4885 layer_tree_host()->SetNeedsCommit(); | 4885 layer_tree_host()->SetNeedsCommit(); |
4886 } | 4886 } |
(...skipping 21 matching lines...) Expand all Loading... |
4908 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); | 4908 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); |
4909 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); | 4909 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); |
4910 EXPECT_TRUE(swap_promise_result_[0].dtor_called); | 4910 EXPECT_TRUE(swap_promise_result_[0].dtor_called); |
4911 } | 4911 } |
4912 | 4912 |
4913 { | 4913 { |
4914 // The second commit is aborted since it contains no updates. | 4914 // The second commit is aborted since it contains no updates. |
4915 base::AutoLock lock(swap_promise_result_[1].lock); | 4915 base::AutoLock lock(swap_promise_result_[1].lock); |
4916 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); | 4916 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); |
4917 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); | 4917 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); |
4918 EXPECT_EQ(SwapPromise::COMMIT_NO_UPDATE, swap_promise_result_[1].reason); | 4918 EXPECT_EQ(Promise::DidNotSwap::COMMIT_NO_UPDATE, swap_promise_result_[1].r
eason); |
4919 EXPECT_TRUE(swap_promise_result_[1].dtor_called); | 4919 EXPECT_TRUE(swap_promise_result_[1].dtor_called); |
4920 } | 4920 } |
4921 | 4921 |
4922 { | 4922 { |
4923 // The last commit completes but it does not cause swap buffer because | 4923 // The last commit completes but it does not cause swap buffer because |
4924 // there is no damage in the frame data. | 4924 // there is no damage in the frame data. |
4925 base::AutoLock lock(swap_promise_result_[2].lock); | 4925 base::AutoLock lock(swap_promise_result_[2].lock); |
4926 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); | 4926 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); |
4927 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); | 4927 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); |
4928 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); | 4928 EXPECT_EQ(Promise::DidNotSwap::SWAP_FAILS, swap_promise_result_[2].reason)
; |
4929 EXPECT_TRUE(swap_promise_result_[2].dtor_called); | 4929 EXPECT_TRUE(swap_promise_result_[2].dtor_called); |
4930 } | 4930 } |
4931 } | 4931 } |
4932 | 4932 |
4933 int commit_count_; | 4933 int commit_count_; |
4934 int commit_complete_count_; | 4934 int commit_complete_count_; |
4935 TestSwapPromiseResult swap_promise_result_[3]; | 4935 TestSwapPromiseResult swap_promise_result_[3]; |
4936 }; | 4936 }; |
4937 | 4937 |
4938 MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise); | 4938 MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise); |
(...skipping 15 matching lines...) Expand all Loading... |
4954 void DidCommit() override { | 4954 void DidCommit() override { |
4955 MainThreadTaskRunner()->PostTask( | 4955 MainThreadTaskRunner()->PostTask( |
4956 FROM_HERE, base::Bind(&LayerTreeHostTestKeepSwapPromise::ChangeFrame, | 4956 FROM_HERE, base::Bind(&LayerTreeHostTestKeepSwapPromise::ChangeFrame, |
4957 base::Unretained(this))); | 4957 base::Unretained(this))); |
4958 } | 4958 } |
4959 | 4959 |
4960 void ChangeFrame() { | 4960 void ChangeFrame() { |
4961 switch (layer_tree_host()->source_frame_number()) { | 4961 switch (layer_tree_host()->source_frame_number()) { |
4962 case 1: | 4962 case 1: |
4963 layer_->SetBounds(gfx::Size(10, 11)); | 4963 layer_->SetBounds(gfx::Size(10, 11)); |
4964 layer_tree_host()->QueueSwapPromise( | 4964 layer_tree_host()->QueuePromise( |
4965 make_scoped_ptr(new TestSwapPromise(&swap_promise_result_))); | 4965 make_scoped_ptr(new TestSwapPromise(&swap_promise_result_))); |
4966 break; | 4966 break; |
4967 case 2: | 4967 case 2: |
4968 break; | 4968 break; |
4969 default: | 4969 default: |
4970 NOTREACHED(); | 4970 NOTREACHED(); |
4971 break; | 4971 break; |
4972 } | 4972 } |
4973 } | 4973 } |
4974 | 4974 |
(...skipping 18 matching lines...) Expand all Loading... |
4993 | 4993 |
4994 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromise); | 4994 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromise); |
4995 | 4995 |
4996 class LayerTreeHostTestBreakSwapPromiseForVisibility | 4996 class LayerTreeHostTestBreakSwapPromiseForVisibility |
4997 : public LayerTreeHostTest { | 4997 : public LayerTreeHostTest { |
4998 protected: | 4998 protected: |
4999 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 4999 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
5000 | 5000 |
5001 void SetVisibleFalseAndQueueSwapPromise() { | 5001 void SetVisibleFalseAndQueueSwapPromise() { |
5002 layer_tree_host()->SetVisible(false); | 5002 layer_tree_host()->SetVisible(false); |
5003 scoped_ptr<SwapPromise> swap_promise( | 5003 scoped_ptr<Promise> swap_promise( |
5004 new TestSwapPromise(&swap_promise_result_)); | 5004 new TestSwapPromise(&swap_promise_result_)); |
5005 layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); | 5005 layer_tree_host()->QueuePromise(swap_promise.Pass()); |
5006 } | 5006 } |
5007 | 5007 |
5008 void ScheduledActionWillSendBeginMainFrame() override { | 5008 void ScheduledActionWillSendBeginMainFrame() override { |
5009 MainThreadTaskRunner()->PostTask( | 5009 MainThreadTaskRunner()->PostTask( |
5010 FROM_HERE, | 5010 FROM_HERE, |
5011 base::Bind(&LayerTreeHostTestBreakSwapPromiseForVisibility | 5011 base::Bind(&LayerTreeHostTestBreakSwapPromiseForVisibility |
5012 ::SetVisibleFalseAndQueueSwapPromise, | 5012 ::SetVisibleFalseAndQueueSwapPromise, |
5013 base::Unretained(this))); | 5013 base::Unretained(this))); |
5014 } | 5014 } |
5015 | 5015 |
5016 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, | 5016 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
5017 CommitEarlyOutReason reason) override { | 5017 CommitEarlyOutReason reason) override { |
5018 EndTest(); | 5018 EndTest(); |
5019 } | 5019 } |
5020 | 5020 |
5021 void AfterTest() override { | 5021 void AfterTest() override { |
5022 { | 5022 { |
5023 base::AutoLock lock(swap_promise_result_.lock); | 5023 base::AutoLock lock(swap_promise_result_.lock); |
5024 EXPECT_FALSE(swap_promise_result_.did_swap_called); | 5024 EXPECT_FALSE(swap_promise_result_.did_swap_called); |
5025 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); | 5025 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
5026 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); | 5026 EXPECT_EQ(Promise::DidNotSwap::COMMIT_FAILS, swap_promise_result_.reason); |
5027 EXPECT_TRUE(swap_promise_result_.dtor_called); | 5027 EXPECT_TRUE(swap_promise_result_.dtor_called); |
5028 } | 5028 } |
5029 } | 5029 } |
5030 | 5030 |
5031 TestSwapPromiseResult swap_promise_result_; | 5031 TestSwapPromiseResult swap_promise_result_; |
5032 }; | 5032 }; |
5033 | 5033 |
5034 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromiseForVisibility); | 5034 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromiseForVisibility); |
5035 | 5035 |
5036 class LayerTreeHostTestBreakSwapPromiseForContext : public LayerTreeHostTest { | 5036 class LayerTreeHostTestBreakSwapPromiseForContext : public LayerTreeHostTest { |
5037 protected: | 5037 protected: |
5038 LayerTreeHostTestBreakSwapPromiseForContext() | 5038 LayerTreeHostTestBreakSwapPromiseForContext() |
5039 : output_surface_lost_triggered_(false) { | 5039 : output_surface_lost_triggered_(false) { |
5040 } | 5040 } |
5041 | 5041 |
5042 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 5042 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
5043 | 5043 |
5044 void LoseOutputSurfaceAndQueueSwapPromise() { | 5044 void LoseOutputSurfaceAndQueueSwapPromise() { |
5045 layer_tree_host()->DidLoseOutputSurface(); | 5045 layer_tree_host()->DidLoseOutputSurface(); |
5046 scoped_ptr<SwapPromise> swap_promise( | 5046 scoped_ptr<Promise> swap_promise( |
5047 new TestSwapPromise(&swap_promise_result_)); | 5047 new TestSwapPromise(&swap_promise_result_)); |
5048 layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); | 5048 layer_tree_host()->QueuePromise(swap_promise.Pass()); |
5049 } | 5049 } |
5050 | 5050 |
5051 void ScheduledActionWillSendBeginMainFrame() override { | 5051 void ScheduledActionWillSendBeginMainFrame() override { |
5052 if (output_surface_lost_triggered_) | 5052 if (output_surface_lost_triggered_) |
5053 return; | 5053 return; |
5054 output_surface_lost_triggered_ = true; | 5054 output_surface_lost_triggered_ = true; |
5055 | 5055 |
5056 MainThreadTaskRunner()->PostTask( | 5056 MainThreadTaskRunner()->PostTask( |
5057 FROM_HERE, | 5057 FROM_HERE, |
5058 base::Bind(&LayerTreeHostTestBreakSwapPromiseForContext | 5058 base::Bind(&LayerTreeHostTestBreakSwapPromiseForContext |
5059 ::LoseOutputSurfaceAndQueueSwapPromise, | 5059 ::LoseOutputSurfaceAndQueueSwapPromise, |
5060 base::Unretained(this))); | 5060 base::Unretained(this))); |
5061 } | 5061 } |
5062 | 5062 |
5063 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, | 5063 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
5064 CommitEarlyOutReason reason) override { | 5064 CommitEarlyOutReason reason) override { |
5065 // This is needed so that the impl-thread state matches main-thread state. | 5065 // This is needed so that the impl-thread state matches main-thread state. |
5066 host_impl->DidLoseOutputSurface(); | 5066 host_impl->DidLoseOutputSurface(); |
5067 EndTest(); | 5067 EndTest(); |
5068 } | 5068 } |
5069 | 5069 |
5070 void AfterTest() override { | 5070 void AfterTest() override { |
5071 { | 5071 { |
5072 base::AutoLock lock(swap_promise_result_.lock); | 5072 base::AutoLock lock(swap_promise_result_.lock); |
5073 EXPECT_FALSE(swap_promise_result_.did_swap_called); | 5073 EXPECT_FALSE(swap_promise_result_.did_swap_called); |
5074 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); | 5074 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
5075 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); | 5075 EXPECT_EQ(Promise::DidNotSwap::COMMIT_FAILS, swap_promise_result_.reason); |
5076 EXPECT_TRUE(swap_promise_result_.dtor_called); | 5076 EXPECT_TRUE(swap_promise_result_.dtor_called); |
5077 } | 5077 } |
5078 } | 5078 } |
5079 | 5079 |
5080 bool output_surface_lost_triggered_; | 5080 bool output_surface_lost_triggered_; |
5081 TestSwapPromiseResult swap_promise_result_; | 5081 TestSwapPromiseResult swap_promise_result_; |
5082 }; | 5082 }; |
5083 | 5083 |
5084 SINGLE_AND_MULTI_THREAD_TEST_F( | 5084 SINGLE_AND_MULTI_THREAD_TEST_F( |
5085 LayerTreeHostTestBreakSwapPromiseForContext); | 5085 LayerTreeHostTestBreakSwapPromiseForContext); |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5619 : public LayerTreeHostTest { | 5619 : public LayerTreeHostTest { |
5620 public: | 5620 public: |
5621 LayerTreeHostTestSynchronousCompositeSwapPromise() : commit_count_(0) {} | 5621 LayerTreeHostTestSynchronousCompositeSwapPromise() : commit_count_(0) {} |
5622 | 5622 |
5623 void InitializeSettings(LayerTreeSettings* settings) override { | 5623 void InitializeSettings(LayerTreeSettings* settings) override { |
5624 settings->single_thread_proxy_scheduler = false; | 5624 settings->single_thread_proxy_scheduler = false; |
5625 } | 5625 } |
5626 | 5626 |
5627 void BeginTest() override { | 5627 void BeginTest() override { |
5628 // Successful composite. | 5628 // Successful composite. |
5629 scoped_ptr<SwapPromise> swap_promise0( | 5629 scoped_ptr<Promise> swap_promise0( |
5630 new TestSwapPromise(&swap_promise_result_[0])); | 5630 new TestSwapPromise(&swap_promise_result_[0])); |
5631 layer_tree_host()->QueueSwapPromise(swap_promise0.Pass()); | 5631 layer_tree_host()->QueuePromise(swap_promise0.Pass()); |
5632 layer_tree_host()->Composite(gfx::FrameTime::Now()); | 5632 layer_tree_host()->Composite(gfx::FrameTime::Now()); |
5633 | 5633 |
5634 // Fail to swap (no damage). | 5634 // Fail to swap (no damage). |
5635 scoped_ptr<SwapPromise> swap_promise1( | 5635 scoped_ptr<Promise> swap_promise1( |
5636 new TestSwapPromise(&swap_promise_result_[1])); | 5636 new TestSwapPromise(&swap_promise_result_[1])); |
5637 layer_tree_host()->QueueSwapPromise(swap_promise1.Pass()); | 5637 layer_tree_host()->QueuePromise(swap_promise1.Pass()); |
5638 layer_tree_host()->SetNeedsCommit(); | 5638 layer_tree_host()->SetNeedsCommit(); |
5639 layer_tree_host()->Composite(gfx::FrameTime::Now()); | 5639 layer_tree_host()->Composite(gfx::FrameTime::Now()); |
5640 | 5640 |
5641 // Fail to draw (not visible). | 5641 // Fail to draw (not visible). |
5642 scoped_ptr<SwapPromise> swap_promise2( | 5642 scoped_ptr<Promise> swap_promise2( |
5643 new TestSwapPromise(&swap_promise_result_[2])); | 5643 new TestSwapPromise(&swap_promise_result_[2])); |
5644 layer_tree_host()->QueueSwapPromise(swap_promise2.Pass()); | 5644 layer_tree_host()->QueuePromise(swap_promise2.Pass()); |
5645 layer_tree_host()->SetNeedsDisplayOnAllLayers(); | 5645 layer_tree_host()->SetNeedsDisplayOnAllLayers(); |
5646 layer_tree_host()->SetVisible(false); | 5646 layer_tree_host()->SetVisible(false); |
5647 layer_tree_host()->Composite(gfx::FrameTime::Now()); | 5647 layer_tree_host()->Composite(gfx::FrameTime::Now()); |
5648 | 5648 |
5649 EndTest(); | 5649 EndTest(); |
5650 } | 5650 } |
5651 | 5651 |
5652 void DidCommit() override { | 5652 void DidCommit() override { |
5653 commit_count_++; | 5653 commit_count_++; |
5654 ASSERT_LE(commit_count_, 3); | 5654 ASSERT_LE(commit_count_, 3); |
5655 } | 5655 } |
5656 | 5656 |
5657 void AfterTest() override { | 5657 void AfterTest() override { |
5658 EXPECT_EQ(3, commit_count_); | 5658 EXPECT_EQ(3, commit_count_); |
5659 | 5659 |
5660 // Initial swap promise should have succeded. | 5660 // Initial swap promise should have succeded. |
5661 { | 5661 { |
5662 base::AutoLock lock(swap_promise_result_[0].lock); | 5662 base::AutoLock lock(swap_promise_result_[0].lock); |
5663 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); | 5663 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); |
5664 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); | 5664 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); |
5665 EXPECT_TRUE(swap_promise_result_[0].dtor_called); | 5665 EXPECT_TRUE(swap_promise_result_[0].dtor_called); |
5666 } | 5666 } |
5667 | 5667 |
5668 // Second swap promise fails to swap. | 5668 // Second swap promise fails to swap. |
5669 { | 5669 { |
5670 base::AutoLock lock(swap_promise_result_[1].lock); | 5670 base::AutoLock lock(swap_promise_result_[1].lock); |
5671 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); | 5671 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); |
5672 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); | 5672 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); |
5673 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[1].reason); | 5673 EXPECT_EQ(Promise::DidNotSwap::SWAP_FAILS, swap_promise_result_[1].reason)
; |
5674 EXPECT_TRUE(swap_promise_result_[1].dtor_called); | 5674 EXPECT_TRUE(swap_promise_result_[1].dtor_called); |
5675 } | 5675 } |
5676 | 5676 |
5677 // Third swap promises also fails to swap (and draw). | 5677 // Third swap promises also fails to swap (and draw). |
5678 { | 5678 { |
5679 base::AutoLock lock(swap_promise_result_[2].lock); | 5679 base::AutoLock lock(swap_promise_result_[2].lock); |
5680 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); | 5680 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); |
5681 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); | 5681 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); |
5682 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); | 5682 EXPECT_EQ(Promise::DidNotSwap::SWAP_FAILS, swap_promise_result_[2].reason)
; |
5683 EXPECT_TRUE(swap_promise_result_[2].dtor_called); | 5683 EXPECT_TRUE(swap_promise_result_[2].dtor_called); |
5684 } | 5684 } |
5685 } | 5685 } |
5686 | 5686 |
5687 int commit_count_; | 5687 int commit_count_; |
5688 TestSwapPromiseResult swap_promise_result_[3]; | 5688 TestSwapPromiseResult swap_promise_result_[3]; |
5689 }; | 5689 }; |
5690 | 5690 |
5691 // Impl-side painting is not supported for synchronous compositing. | 5691 // Impl-side painting is not supported for synchronous compositing. |
5692 SINGLE_THREAD_NOIMPL_TEST_F(LayerTreeHostTestSynchronousCompositeSwapPromise); | 5692 SINGLE_THREAD_NOIMPL_TEST_F(LayerTreeHostTestSynchronousCompositeSwapPromise); |
(...skipping 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6986 void AfterTest() override {} | 6986 void AfterTest() override {} |
6987 | 6987 |
6988 scoped_refptr<FakePictureLayer> content_child_layer_; | 6988 scoped_refptr<FakePictureLayer> content_child_layer_; |
6989 FakeContentLayerClient client_; | 6989 FakeContentLayerClient client_; |
6990 }; | 6990 }; |
6991 | 6991 |
6992 SINGLE_AND_MULTI_THREAD_TEST_F( | 6992 SINGLE_AND_MULTI_THREAD_TEST_F( |
6993 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild); | 6993 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild); |
6994 | 6994 |
6995 } // namespace cc | 6995 } // namespace cc |
OLD | NEW |