blob: 0388d34c842247d1e5ac27160b14115244f01657 [file] [log] [blame]
// Copyright 2016 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.
#ifndef CC_TEST_REMOTE_COMPOSITOR_TEST_H_
#define CC_TEST_REMOTE_COMPOSITOR_TEST_H_
#include "base/macros.h"
#include "cc/blimp/compositor_state_deserializer.h"
#include "cc/test/fake_image_serialization_processor.h"
#include "cc/test/fake_layer_tree_host_client.h"
#include "cc/test/stub_layer_tree_host_client.h"
#include "cc/test/test_task_graph_runner.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cc {
class AnimationHost;
class CompositorProtoState;
class FakeLayerTreeHost;
class FakeRemoteCompositorBridge;
class LayerTreeHostRemote;
class RemoteCompositorTest : public testing::Test,
public CompositorStateDeserializerClient,
public FakeLayerTreeHostClient {
public:
RemoteCompositorTest();
~RemoteCompositorTest() override;
void SetUp() override;
void TearDown() override;
// CompositorStateDeserializer implementation.
void DidUpdateLocalState() override;
// FakeLayerTreeHostClient implementation.
void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
const gfx::Vector2dF& outer_delta,
const gfx::Vector2dF& elastic_overscroll_delta,
float page_scale,
float top_controls_delta) override;
bool HasPendingUpdate() const;
void ProcessCompositorStateUpdate(
std::unique_ptr<CompositorProtoState> compositor_proto_state);
protected:
// Engine setup.
std::unique_ptr<LayerTreeHostRemote> layer_tree_host_remote_;
StubLayerTreeHostClient layer_tree_host_client_remote_;
FakeRemoteCompositorBridge* fake_remote_compositor_bridge_ = nullptr;
// Client setup.
std::unique_ptr<AnimationHost> animation_host_;
std::unique_ptr<FakeLayerTreeHost> layer_tree_host_in_process_;
std::unique_ptr<CompositorStateDeserializer> compositor_state_deserializer_;
TestTaskGraphRunner task_graph_runner_;
FakeImageSerializationProcessor image_serialization_processor_;
bool client_state_dirty_ = false;
};
} // namespace cc
#endif // CC_TEST_REMOTE_COMPOSITOR_TEST_H_