blob: da0848ba3bb5e4fa1ae9749f83cf5d51bec7a206 [file] [log] [blame]
// Copyright 2015 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 "cc/test/proxy_impl_for_test.h"
namespace cc {
scoped_ptr<ProxyImplForTest> ProxyImplForTest::Create(
TestHooks* test_hooks,
ChannelImpl* channel_impl,
LayerTreeHost* layer_tree_host,
TaskRunnerProvider* task_runner_provider,
scoped_ptr<BeginFrameSource> external_begin_frame_source) {
return make_scoped_ptr(new ProxyImplForTest(
test_hooks, channel_impl, layer_tree_host, task_runner_provider,
std::move(external_begin_frame_source)));
}
bool ProxyImplForTest::HasCommitCompletionEvent() const {
return commit_completion_event_ != nullptr;
}
bool ProxyImplForTest::GetNextCommitWaitsForActivation() const {
return next_commit_waits_for_activation_;
}
ProxyImplForTest::ProxyImplForTest(
TestHooks* test_hooks,
ChannelImpl* channel_impl,
LayerTreeHost* layer_tree_host,
TaskRunnerProvider* task_runner_provider,
scoped_ptr<BeginFrameSource> external_begin_frame_source)
: ProxyImpl(channel_impl,
layer_tree_host,
task_runner_provider,
std::move(external_begin_frame_source)),
test_hooks_(test_hooks) {}
void ProxyImplForTest::ScheduledActionSendBeginMainFrame(
const BeginFrameArgs& args) {
test_hooks_->ScheduledActionWillSendBeginMainFrame();
ProxyImpl::ScheduledActionSendBeginMainFrame(args);
test_hooks_->ScheduledActionSendBeginMainFrame();
}
DrawResult ProxyImplForTest::ScheduledActionDrawAndSwapIfPossible() {
DrawResult result = ProxyImpl::ScheduledActionDrawAndSwapIfPossible();
test_hooks_->ScheduledActionDrawAndSwapIfPossible();
return result;
}
void ProxyImplForTest::ScheduledActionCommit() {
ProxyImpl::ScheduledActionCommit();
test_hooks_->ScheduledActionCommit();
}
void ProxyImplForTest::ScheduledActionBeginOutputSurfaceCreation() {
ProxyImpl::ScheduledActionBeginOutputSurfaceCreation();
test_hooks_->ScheduledActionBeginOutputSurfaceCreation();
}
void ProxyImplForTest::ScheduledActionPrepareTiles() {
ProxyImpl::ScheduledActionPrepareTiles();
test_hooks_->ScheduledActionPrepareTiles();
}
void ProxyImplForTest::ScheduledActionInvalidateOutputSurface() {
ProxyImpl::ScheduledActionInvalidateOutputSurface();
test_hooks_->ScheduledActionInvalidateOutputSurface();
}
void ProxyImplForTest::SendBeginMainFrameNotExpectedSoon() {
ProxyImpl::SendBeginMainFrameNotExpectedSoon();
test_hooks_->SendBeginMainFrameNotExpectedSoon();
}
void ProxyImplForTest::DidActivateSyncTree() {
ProxyImpl::DidActivateSyncTree();
test_hooks_->DidActivateSyncTree();
}
void ProxyImplForTest::InitializeOutputSurfaceOnImpl(
OutputSurface* output_surface) {
test_hooks_->InitializeOutputSurfaceOnImpl(output_surface);
ProxyImpl::InitializeOutputSurfaceOnImpl(output_surface);
}
void ProxyImplForTest::MainThreadHasStoppedFlingingOnImpl() {
test_hooks_->MainThreadHasStoppedFlingingOnImpl();
ProxyImpl::MainThreadHasStoppedFlingingOnImpl();
}
void ProxyImplForTest::SetInputThrottledUntilCommitOnImpl(bool is_throttled) {
test_hooks_->SetInputThrottledUntilCommitOnImpl(is_throttled);
ProxyImpl::SetInputThrottledUntilCommitOnImpl(is_throttled);
}
void ProxyImplForTest::UpdateTopControlsStateOnImpl(
TopControlsState constraints,
TopControlsState current,
bool animate) {
test_hooks_->UpdateTopControlsStateOnImpl(constraints, current, animate);
ProxyImpl::UpdateTopControlsStateOnImpl(constraints, current, animate);
}
void ProxyImplForTest::SetDeferCommitsOnImpl(bool defer_commits) const {
test_hooks_->SetDeferCommitsOnImpl(defer_commits);
ProxyImpl::SetDeferCommitsOnImpl(defer_commits);
}
void ProxyImplForTest::BeginMainFrameAbortedOnImpl(
CommitEarlyOutReason reason,
base::TimeTicks main_thread_start_time) {
test_hooks_->BeginMainFrameAbortedOnImpl(reason);
ProxyImpl::BeginMainFrameAbortedOnImpl(reason, main_thread_start_time);
}
void ProxyImplForTest::SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect) {
test_hooks_->SetNeedsRedrawOnImpl(damage_rect);
ProxyImpl::SetNeedsRedrawOnImpl(damage_rect);
}
void ProxyImplForTest::SetNeedsCommitOnImpl() {
test_hooks_->SetNeedsCommitOnImpl();
ProxyImpl::SetNeedsCommitOnImpl();
}
void ProxyImplForTest::FinishAllRenderingOnImpl(CompletionEvent* completion) {
test_hooks_->FinishAllRenderingOnImpl();
ProxyImpl::FinishAllRenderingOnImpl(completion);
}
void ProxyImplForTest::SetVisibleOnImpl(bool visible) {
test_hooks_->SetVisibleOnImpl(visible);
ProxyImpl::SetVisibleOnImpl(visible);
}
void ProxyImplForTest::ReleaseOutputSurfaceOnImpl(CompletionEvent* completion) {
test_hooks_->ReleaseOutputSurfaceOnImpl();
ProxyImpl::ReleaseOutputSurfaceOnImpl(completion);
}
void ProxyImplForTest::FinishGLOnImpl(CompletionEvent* completion) {
test_hooks_->FinishGLOnImpl();
ProxyImpl::FinishGLOnImpl(completion);
}
void ProxyImplForTest::StartCommitOnImpl(CompletionEvent* completion,
LayerTreeHost* layer_tree_host,
base::TimeTicks main_thread_start_time,
bool hold_commit_for_activation) {
test_hooks_->StartCommitOnImpl();
ProxyImpl::StartCommitOnImpl(completion, layer_tree_host,
main_thread_start_time,
hold_commit_for_activation);
}
} // namespace cc