Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ui / compositor / test / draw_waiter_for_test.cc
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
3 // found in the LICENSE file.
4
5 #include "ui/compositor/test/draw_waiter_for_test.h"
6
7 #include "ui/compositor/compositor.h"
8
9 namespace ui {
10
11 // static
12 void DrawWaiterForTest::Wait(Compositor* compositor) {
13   DrawWaiterForTest waiter;
14   waiter.wait_for_commit_ = false;
15   waiter.WaitImpl(compositor);
16 }
17
18 // static
19 void DrawWaiterForTest::WaitForCommit(Compositor* compositor) {
20   DrawWaiterForTest waiter;
21   waiter.wait_for_commit_ = true;
22   waiter.WaitImpl(compositor);
23 }
24
25 DrawWaiterForTest::DrawWaiterForTest() {}
26
27 DrawWaiterForTest::~DrawWaiterForTest() {}
28
29 void DrawWaiterForTest::WaitImpl(Compositor* compositor) {
30   compositor->AddObserver(this);
31   wait_run_loop_.reset(new base::RunLoop());
32   wait_run_loop_->Run();
33   compositor->RemoveObserver(this);
34 }
35
36 void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) {
37   if (wait_for_commit_)
38     wait_run_loop_->Quit();
39 }
40
41 void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor,
42                                              base::TimeTicks start_time) {}
43
44 void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) {
45   if (!wait_for_commit_)
46     wait_run_loop_->Quit();
47 }
48
49 void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) {}
50
51 void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {}
52
53 }  // namespace ui