15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file. 45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ui/compositor/test/draw_waiter_for_test.h" 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ui/compositor/compositor.h" 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace ui { 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::Wait(Compositor* compositor) { 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DrawWaiterForTest waiter; 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) waiter.wait_for_commit_ = false; 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) waiter.WaitImpl(compositor); 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static 195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::WaitForCommit(Compositor* compositor) { 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DrawWaiterForTest waiter; 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) waiter.wait_for_commit_ = true; 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) waiter.WaitImpl(compositor); 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)DrawWaiterForTest::DrawWaiterForTest() { 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)DrawWaiterForTest::~DrawWaiterForTest() {} 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::WaitImpl(Compositor* compositor) { 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) compositor->AddObserver(this); 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) wait_run_loop_.reset(new base::RunLoop()); 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) wait_run_loop_->Run(); 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) compositor->RemoveObserver(this); 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (wait_for_commit_) 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) wait_run_loop_->Quit(); 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, 436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) base::TimeTicks start_time) { 446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (!wait_for_commit_) 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) wait_run_loop_->Quit(); 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) { 526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {} 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // namespace ui 57