blob: 7687d660830145c96f2a2d6a75af65448c4b3418 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/compositor/test/draw_waiter_for_test.h"
#include "ui/compositor/compositor.h"
namespace ui {
// static
void DrawWaiterForTest::Wait(Compositor* compositor) {
DrawWaiterForTest waiter;
waiter.wait_for_commit_ = false;
waiter.WaitImpl(compositor);
}
// static
void DrawWaiterForTest::WaitForCommit(Compositor* compositor) {
DrawWaiterForTest waiter;
waiter.wait_for_commit_ = true;
waiter.WaitImpl(compositor);
}
DrawWaiterForTest::DrawWaiterForTest() {
}
DrawWaiterForTest::~DrawWaiterForTest() {}
void DrawWaiterForTest::WaitImpl(Compositor* compositor) {
compositor->AddObserver(this);
wait_run_loop_.reset(new base::RunLoop());
wait_run_loop_->Run();
compositor->RemoveObserver(this);
}
void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) {
if (wait_for_commit_)
wait_run_loop_->Quit();
}
void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor,
base::TimeTicks start_time) {
}
void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) {
if (!wait_for_commit_)
wait_run_loop_->Quit();
}
void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) {
}
void DrawWaiterForTest::OnCompositingLockStateChanged(Compositor* compositor) {}
} // namespace ui