OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ui/compositor/test/draw_waiter_for_test.h" | 5 #include "ui/compositor/test/draw_waiter_for_test.h" |
6 | 6 |
7 #include "ui/compositor/compositor.h" | 7 #include "ui/compositor/compositor.h" |
8 | 8 |
9 namespace ui { | 9 namespace ui { |
10 | 10 |
11 // static | 11 // static |
12 void DrawWaiterForTest::Wait(Compositor* compositor) { | 12 void DrawWaiterForTest::WaitForCompositingStarted(Compositor* compositor) { |
13 DrawWaiterForTest waiter; | 13 DrawWaiterForTest waiter(WAIT_FOR_COMPOSITING_STARTED); |
14 waiter.wait_for_commit_ = false; | 14 waiter.WaitImpl(compositor); |
| 15 } |
| 16 |
| 17 void DrawWaiterForTest::WaitForCompositingEnded(Compositor* compositor) { |
| 18 DrawWaiterForTest waiter(WAIT_FOR_COMPOSITING_ENDED); |
15 waiter.WaitImpl(compositor); | 19 waiter.WaitImpl(compositor); |
16 } | 20 } |
17 | 21 |
18 // static | 22 // static |
19 void DrawWaiterForTest::WaitForCommit(Compositor* compositor) { | 23 void DrawWaiterForTest::WaitForCommit(Compositor* compositor) { |
20 DrawWaiterForTest waiter; | 24 DrawWaiterForTest waiter(WAIT_FOR_COMMIT); |
21 waiter.wait_for_commit_ = true; | |
22 waiter.WaitImpl(compositor); | 25 waiter.WaitImpl(compositor); |
23 } | 26 } |
24 | 27 |
25 DrawWaiterForTest::DrawWaiterForTest() { | 28 DrawWaiterForTest::DrawWaiterForTest(WaitEvent wait_event) |
| 29 : wait_event_(wait_event) { |
26 } | 30 } |
27 | 31 |
28 DrawWaiterForTest::~DrawWaiterForTest() {} | 32 DrawWaiterForTest::~DrawWaiterForTest() {} |
29 | 33 |
30 void DrawWaiterForTest::WaitImpl(Compositor* compositor) { | 34 void DrawWaiterForTest::WaitImpl(Compositor* compositor) { |
31 compositor->AddObserver(this); | 35 compositor->AddObserver(this); |
32 wait_run_loop_.reset(new base::RunLoop()); | 36 wait_run_loop_.reset(new base::RunLoop()); |
33 wait_run_loop_->Run(); | 37 wait_run_loop_->Run(); |
34 compositor->RemoveObserver(this); | 38 compositor->RemoveObserver(this); |
35 } | 39 } |
36 | 40 |
37 void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { | 41 void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { |
38 if (wait_for_commit_) | 42 if (wait_event_ == WAIT_FOR_COMMIT) |
39 wait_run_loop_->Quit(); | 43 wait_run_loop_->Quit(); |
40 } | 44 } |
41 | 45 |
42 void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, | 46 void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, |
43 base::TimeTicks start_time) { | 47 base::TimeTicks start_time) { |
| 48 if (wait_event_ == WAIT_FOR_COMPOSITING_STARTED) |
| 49 wait_run_loop_->Quit(); |
44 } | 50 } |
45 | 51 |
46 void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { | 52 void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { |
47 if (!wait_for_commit_) | 53 if (wait_event_ == WAIT_FOR_COMPOSITING_ENDED) |
48 wait_run_loop_->Quit(); | 54 wait_run_loop_->Quit(); |
49 } | 55 } |
50 | 56 |
51 void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) { | 57 void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) { |
52 } | 58 } |
53 | 59 |
54 void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {} | 60 void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {} |
55 | 61 |
56 } // namespace ui | 62 } // namespace ui |
OLD | NEW |