Chromium Code Reviews| Index: cc/trees/layer_tree_host_unittest.cc |
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc |
| index 50ace9b7d78c4b707cbab9db9c9611365e4dd967..0966bc5635e2cc7d1610e724546f794e717bda74 100644 |
| --- a/cc/trees/layer_tree_host_unittest.cc |
| +++ b/cc/trees/layer_tree_host_unittest.cc |
| @@ -2033,12 +2033,19 @@ SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate); |
| class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { |
| public: |
| LayerTreeHostTestDeferCommits() |
| - : num_commits_deferred_(0), num_complete_commits_(0) {} |
| + : num_complete_commits_(0), |
| + num_will_begin_main_frame_(0) {} |
| void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| - void DidDeferCommit() override { |
| - num_commits_deferred_++; |
| + void WillBeginMainFrame() override { |
| + num_will_begin_main_frame_++; |
| + } |
| + |
| + void TestWillBeginMainFrameCallCount( |
| + int expected_will_begin_main_frame_call_count) { |
| + EXPECT_EQ(expected_will_begin_main_frame_call_count, |
| + num_will_begin_main_frame_); |
| layer_tree_host()->SetDeferCommits(false); |
| } |
| @@ -2046,9 +2053,16 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { |
| num_complete_commits_++; |
| switch (num_complete_commits_) { |
| case 1: |
| - EXPECT_EQ(0, num_commits_deferred_); |
| + EXPECT_EQ(1, num_will_begin_main_frame_); |
| layer_tree_host()->SetDeferCommits(true); |
| PostSetNeedsCommitToMainThread(); |
| + // PostDelayedTask to check whether WillBeginMainFrame is called. |
|
enne (OOO)
2015/01/23 01:35:21
This time delay is a little weird. Could you just
simonhong
2015/01/28 19:44:24
Done.
|
| + MainThreadTaskRunner()->PostDelayedTask( |
| + FROM_HERE, |
| + base::Bind( |
| + &LayerTreeHostTestDeferCommits::TestWillBeginMainFrameCallCount, |
| + base::Unretained(this), 1), |
| + base::TimeDelta::FromMilliseconds(100)); |
| break; |
| case 2: |
| EndTest(); |
| @@ -2060,13 +2074,13 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { |
| } |
| void AfterTest() override { |
| - EXPECT_EQ(1, num_commits_deferred_); |
| EXPECT_EQ(2, num_complete_commits_); |
| + EXPECT_EQ(2, num_will_begin_main_frame_); |
| } |
| private: |
| - int num_commits_deferred_; |
| int num_complete_commits_; |
| + int num_will_begin_main_frame_; |
| }; |
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); |
| @@ -4802,88 +4816,6 @@ class LayerTreeHostTestKeepSwapPromise : public LayerTreeTest { |
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromise); |
| -class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit |
| - : public LayerTreeHostTest { |
| - protected: |
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| - |
| - void DidCommit() override { |
| - layer_tree_host()->SetDeferCommits(true); |
| - layer_tree_host()->SetNeedsCommit(); |
| - } |
| - |
| - void DidDeferCommit() override { |
| - layer_tree_host()->SetVisible(false); |
| - scoped_ptr<SwapPromise> swap_promise( |
| - new TestSwapPromise(&swap_promise_result_)); |
| - layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); |
| - layer_tree_host()->SetDeferCommits(false); |
| - } |
| - |
| - void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
| - CommitEarlyOutReason reason) override { |
| - EndTest(); |
| - } |
| - |
| - void AfterTest() override { |
| - { |
| - base::AutoLock lock(swap_promise_result_.lock); |
| - EXPECT_FALSE(swap_promise_result_.did_swap_called); |
| - EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
| - EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); |
| - EXPECT_TRUE(swap_promise_result_.dtor_called); |
| - } |
| - } |
| - |
| - TestSwapPromiseResult swap_promise_result_; |
| -}; |
| - |
| -SINGLE_AND_MULTI_THREAD_TEST_F( |
| - LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit); |
| - |
| -class LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit |
| - : public LayerTreeHostTest { |
| - protected: |
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| - |
| - void DidCommit() override { |
| - if (TestEnded()) |
| - return; |
| - layer_tree_host()->SetDeferCommits(true); |
| - layer_tree_host()->SetNeedsCommit(); |
| - } |
| - |
| - void DidDeferCommit() override { |
| - layer_tree_host()->DidLoseOutputSurface(); |
| - scoped_ptr<SwapPromise> swap_promise( |
| - new TestSwapPromise(&swap_promise_result_)); |
| - layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); |
| - layer_tree_host()->SetDeferCommits(false); |
| - } |
| - |
| - void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
| - CommitEarlyOutReason reason) override { |
| - // This is needed so that the impl-thread state matches main-thread state. |
| - host_impl->DidLoseOutputSurface(); |
| - EndTest(); |
| - } |
| - |
| - void AfterTest() override { |
| - { |
| - base::AutoLock lock(swap_promise_result_.lock); |
| - EXPECT_FALSE(swap_promise_result_.did_swap_called); |
| - EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
| - EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); |
| - EXPECT_TRUE(swap_promise_result_.dtor_called); |
| - } |
| - } |
| - |
| - TestSwapPromiseResult swap_promise_result_; |
| -}; |
| - |
| -SINGLE_AND_MULTI_THREAD_TEST_F( |
| - LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit); |
| - |
| class SimpleSwapPromiseMonitor : public SwapPromiseMonitor { |
| public: |
| SimpleSwapPromiseMonitor(LayerTreeHost* layer_tree_host, |