draw_waiter_for_test.cc revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
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 9namespace ui { 10 11// static 12void DrawWaiterForTest::Wait(Compositor* compositor) { 13 DrawWaiterForTest waiter; 14 waiter.wait_for_commit_ = false; 15 waiter.WaitImpl(compositor); 16} 17 18// static 19void DrawWaiterForTest::WaitForCommit(Compositor* compositor) { 20 DrawWaiterForTest waiter; 21 waiter.wait_for_commit_ = true; 22 waiter.WaitImpl(compositor); 23} 24 25DrawWaiterForTest::DrawWaiterForTest() { 26} 27 28DrawWaiterForTest::~DrawWaiterForTest() {} 29 30void DrawWaiterForTest::WaitImpl(Compositor* compositor) { 31 compositor->AddObserver(this); 32 wait_run_loop_.reset(new base::RunLoop()); 33 wait_run_loop_->Run(); 34 compositor->RemoveObserver(this); 35} 36 37void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { 38 if (wait_for_commit_) 39 wait_run_loop_->Quit(); 40} 41 42void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, 43 base::TimeTicks start_time) { 44} 45 46void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { 47 if (!wait_for_commit_) 48 wait_run_loop_->Quit(); 49} 50 51void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) { 52} 53 54void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {} 55 56} // namespace ui 57