draw_waiter_for_test.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 27DrawWaiterForTest::~DrawWaiterForTest() {} 28 29void 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 36void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { 37 if (wait_for_commit_) 38 wait_run_loop_->Quit(); 39} 40 41void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, 42 base::TimeTicks start_time) {} 43 44void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { 45 if (!wait_for_commit_) 46 wait_run_loop_->Quit(); 47} 48 49void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) {} 50 51void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {} 52 53} // namespace ui 54