Index: cc/test/layer_tree_test.cc |
diff --git a/cc/test/layer_tree_test.cc b/cc/test/layer_tree_test.cc |
index 79b34452e18399594efdfa9d99c132c879ce5be6..292f7bb8622204b0cc086476dc209c390131eada 100644 |
--- a/cc/test/layer_tree_test.cc |
+++ b/cc/test/layer_tree_test.cc |
@@ -20,7 +20,9 @@ |
#include "cc/test/occlusion_tracker_test_common.h" |
#include "cc/test/test_context_provider.h" |
#include "cc/test/tiled_layer_test_common.h" |
+#include "cc/trees/layer_tree_host_client.h" |
#include "cc/trees/layer_tree_host_impl.h" |
+#include "cc/trees/layer_tree_host_single_thread_client.h" |
#include "cc/trees/single_thread_proxy.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "ui/gfx/frame_time.h" |
@@ -194,57 +196,9 @@ class LayerTreeHostImplForTesting : public LayerTreeHostImpl { |
bool notify_ready_to_activate_was_blocked_; |
}; |
-// Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. |
-class LayerTreeHostForTesting : public LayerTreeHost { |
- public: |
- static scoped_ptr<LayerTreeHostForTesting> Create( |
- TestHooks* test_hooks, |
- LayerTreeHostClient* host_client, |
- const LayerTreeSettings& settings, |
- scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { |
- scoped_ptr<LayerTreeHostForTesting> layer_tree_host( |
- new LayerTreeHostForTesting(test_hooks, host_client, settings)); |
- bool success = layer_tree_host->Initialize(impl_task_runner); |
- EXPECT_TRUE(success); |
- return layer_tree_host.Pass(); |
- } |
- |
- virtual scoped_ptr<LayerTreeHostImpl> CreateLayerTreeHostImpl( |
- LayerTreeHostImplClient* host_impl_client) OVERRIDE { |
- return LayerTreeHostImplForTesting::Create( |
- test_hooks_, |
- settings(), |
- host_impl_client, |
- proxy(), |
- rendering_stats_instrumentation()).PassAs<LayerTreeHostImpl>(); |
- } |
- |
- virtual void SetNeedsCommit() OVERRIDE { |
- if (!test_started_) |
- return; |
- LayerTreeHost::SetNeedsCommit(); |
- } |
- |
- void set_test_started(bool started) { test_started_ = started; } |
- |
- virtual void DidDeferCommit() OVERRIDE { |
- test_hooks_->DidDeferCommit(); |
- } |
- |
- private: |
- LayerTreeHostForTesting(TestHooks* test_hooks, |
- LayerTreeHostClient* client, |
- const LayerTreeSettings& settings) |
- : LayerTreeHost(client, NULL, settings), |
- test_hooks_(test_hooks), |
- test_started_(false) {} |
- |
- TestHooks* test_hooks_; |
- bool test_started_; |
-}; |
- |
// Implementation of LayerTreeHost callback interface. |
-class LayerTreeHostClientForTesting : public LayerTreeHostClient { |
+class LayerTreeHostClientForTesting : public LayerTreeHostClient, |
+ public LayerTreeHostSingleThreadClient { |
public: |
static scoped_ptr<LayerTreeHostClientForTesting> Create( |
TestHooks* test_hooks) { |
@@ -305,6 +259,9 @@ class LayerTreeHostClientForTesting : public LayerTreeHostClient { |
test_hooks_->ScheduleComposite(); |
} |
+ virtual void DidPostSwapBuffers() OVERRIDE {} |
+ virtual void DidAbortSwapBuffers() OVERRIDE {} |
+ |
virtual scoped_refptr<ContextProvider> OffscreenContextProvider() OVERRIDE { |
return test_hooks_->OffscreenContextProvider(); |
} |
@@ -316,6 +273,59 @@ class LayerTreeHostClientForTesting : public LayerTreeHostClient { |
TestHooks* test_hooks_; |
}; |
+// Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. |
+class LayerTreeHostForTesting : public LayerTreeHost { |
+ public: |
+ static scoped_ptr<LayerTreeHostForTesting> Create( |
+ TestHooks* test_hooks, |
+ LayerTreeHostClientForTesting* client, |
+ const LayerTreeSettings& settings, |
+ scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { |
+ scoped_ptr<LayerTreeHostForTesting> layer_tree_host( |
+ new LayerTreeHostForTesting(test_hooks, client, settings)); |
+ bool success; |
+ if (impl_task_runner.get()) |
+ success = layer_tree_host->InitializeThreaded(impl_task_runner); |
+ else |
+ success = layer_tree_host->InitializeSingleThreaded(client); |
+ EXPECT_TRUE(success); |
+ return layer_tree_host.Pass(); |
+ } |
+ |
+ virtual scoped_ptr<LayerTreeHostImpl> CreateLayerTreeHostImpl( |
+ LayerTreeHostImplClient* host_impl_client) OVERRIDE { |
+ return LayerTreeHostImplForTesting::Create( |
+ test_hooks_, |
+ settings(), |
+ host_impl_client, |
+ proxy(), |
+ rendering_stats_instrumentation()).PassAs<LayerTreeHostImpl>(); |
+ } |
+ |
+ virtual void SetNeedsCommit() OVERRIDE { |
+ if (!test_started_) |
+ return; |
+ LayerTreeHost::SetNeedsCommit(); |
+ } |
+ |
+ void set_test_started(bool started) { test_started_ = started; } |
+ |
+ virtual void DidDeferCommit() OVERRIDE { |
+ test_hooks_->DidDeferCommit(); |
+ } |
+ |
+ private: |
+ LayerTreeHostForTesting(TestHooks* test_hooks, |
+ LayerTreeHostClient* client, |
+ const LayerTreeSettings& settings) |
+ : LayerTreeHost(client, NULL, settings), |
+ test_hooks_(test_hooks), |
+ test_started_(false) {} |
+ |
+ TestHooks* test_hooks_; |
+ bool test_started_; |
+}; |
+ |
LayerTreeTest::LayerTreeTest() |
: beginning_(false), |
end_when_begin_returns_(false), |