Index: cc/trees/layer_tree_host_unittest_proxy.cc |
diff --git a/cc/trees/layer_tree_host_unittest_proxy.cc b/cc/trees/layer_tree_host_unittest_proxy.cc |
index e00b0854adc3f399479447674052e2c131258d13..293c86409055e2e8989b7d245b1f5450ec96865d 100644 |
--- a/cc/trees/layer_tree_host_unittest_proxy.cc |
+++ b/cc/trees/layer_tree_host_unittest_proxy.cc |
@@ -7,16 +7,15 @@ |
#include "cc/test/fake_content_layer_client.h" |
#include "cc/test/fake_picture_layer.h" |
#include "cc/test/layer_tree_test.h" |
-#include "cc/trees/proxy_impl.h" |
-#include "cc/trees/proxy_main.h" |
- |
-#define PROXY_MAIN_THREADED_TEST_F(TEST_FIXTURE_NAME) \ |
+#include "cc/trees/thread_proxy.h" |
+ |
+#define THREAD_PROXY_TEST_F(TEST_FIXTURE_NAME) \ |
TEST_F(TEST_FIXTURE_NAME, MultiThread) { Run(true); } |
-// Do common tests for single thread proxy and proxy main in threaded mode. |
+// Do common tests for single thread proxy and thread proxy. |
// TODO(simonhong): Add SINGLE_THREAD_PROXY_TEST_F |
#define PROXY_TEST_SCHEDULED_ACTION(TEST_FIXTURE_NAME) \ |
- PROXY_MAIN_THREADED_TEST_F(TEST_FIXTURE_NAME); |
+ THREAD_PROXY_TEST_F(TEST_FIXTURE_NAME); |
namespace cc { |
@@ -74,12 +73,12 @@ |
PROXY_TEST_SCHEDULED_ACTION(ProxyTestScheduledActionsBasic); |
-class ProxyMainThreaded : public ProxyTest { |
- protected: |
- ProxyMainThreaded() |
+class ThreadProxyTest : public ProxyTest { |
+ protected: |
+ ThreadProxyTest() |
: update_check_layer_( |
FakePictureLayer::Create(layer_settings(), &client_)) {} |
- ~ProxyMainThreaded() override {} |
+ ~ThreadProxyTest() override {} |
void SetupTree() override { |
layer_tree_host()->SetRootLayer(update_check_layer_); |
@@ -87,69 +86,83 @@ |
client_.set_bounds(update_check_layer_->bounds()); |
} |
+ const ThreadProxy::MainThreadOnly& ThreadProxyMainOnly() const { |
+ DCHECK(task_runner_provider()); |
+ DCHECK(task_runner_provider()->HasImplThread()); |
+ DCHECK(proxy()); |
+ return static_cast<const ThreadProxy*>(proxy())->main(); |
+ } |
+ |
+ const ThreadProxy::CompositorThreadOnly& ThreadProxyImplOnly() const { |
+ DCHECK(task_runner_provider()); |
+ DCHECK(task_runner_provider()->HasImplThread()); |
+ DCHECK(proxy()); |
+ return static_cast<const ThreadProxy*>(proxy())->impl(); |
+ } |
+ |
protected: |
FakeContentLayerClient client_; |
scoped_refptr<FakePictureLayer> update_check_layer_; |
private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreaded); |
-}; |
- |
-class ProxyMainThreadedSetNeedsCommit : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedSetNeedsCommit() {} |
- ~ProxyMainThreadedSetNeedsCommit() override {} |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTest); |
+}; |
+ |
+class ThreadProxyTestSetNeedsCommit : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestSetNeedsCommit() {} |
+ ~ThreadProxyTestSetNeedsCommit() override {} |
void BeginTest() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
proxy()->SetNeedsCommit(); |
- EXPECT_EQ(ProxyMain::COMMIT_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- } |
- |
- void DidBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::COMMIT_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ } |
+ |
+ void DidBeginMainFrame() override { |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
} |
void DidCommit() override { |
EXPECT_EQ(1, update_check_layer_->update_count()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
- EndTest(); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedSetNeedsCommit); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedSetNeedsCommit); |
- |
-class ProxyMainThreadedSetNeedsAnimate : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedSetNeedsAnimate() {} |
- ~ProxyMainThreadedSetNeedsAnimate() override {} |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
+ EndTest(); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestSetNeedsCommit); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestSetNeedsCommit); |
+ |
+class ThreadProxyTestSetNeedsAnimate : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestSetNeedsAnimate() {} |
+ ~ThreadProxyTestSetNeedsAnimate() override {} |
void BeginTest() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
proxy()->SetNeedsAnimate(); |
- EXPECT_EQ(ProxyMain::ANIMATE_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- } |
- |
- void DidBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::ANIMATE_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ } |
+ |
+ void DidBeginMainFrame() override { |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
} |
void DidCommit() override { |
@@ -158,31 +171,31 @@ |
} |
private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedSetNeedsAnimate); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedSetNeedsAnimate); |
- |
-class ProxyMainThreadedSetNeedsUpdateLayers : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedSetNeedsUpdateLayers() {} |
- ~ProxyMainThreadedSetNeedsUpdateLayers() override {} |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestSetNeedsAnimate); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestSetNeedsAnimate); |
+ |
+class ThreadProxyTestSetNeedsUpdateLayers : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestSetNeedsUpdateLayers() {} |
+ ~ThreadProxyTestSetNeedsUpdateLayers() override {} |
void BeginTest() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
proxy()->SetNeedsUpdateLayers(); |
- EXPECT_EQ(ProxyMain::UPDATE_LAYERS_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- } |
- |
- void DidBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::UPDATE_LAYERS_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ } |
+ |
+ void DidBeginMainFrame() override { |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
} |
void DidCommit() override { |
@@ -191,40 +204,40 @@ |
} |
private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedSetNeedsUpdateLayers); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedSetNeedsUpdateLayers); |
- |
-class ProxyMainThreadedSetNeedsUpdateLayersWhileAnimating |
- : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedSetNeedsUpdateLayersWhileAnimating() {} |
- ~ProxyMainThreadedSetNeedsUpdateLayersWhileAnimating() override {} |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestSetNeedsUpdateLayers); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestSetNeedsUpdateLayers); |
+ |
+class ThreadProxyTestSetNeedsUpdateLayersWhileAnimating |
+ : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestSetNeedsUpdateLayersWhileAnimating() {} |
+ ~ThreadProxyTestSetNeedsUpdateLayersWhileAnimating() override {} |
void BeginTest() override { proxy()->SetNeedsAnimate(); } |
void WillBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::ANIMATE_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::ANIMATE_PIPELINE_STAGE, |
- GetProxyMainForTest()->final_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::ANIMATE_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::ANIMATE_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().final_pipeline_stage); |
proxy()->SetNeedsUpdateLayers(); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::UPDATE_LAYERS_PIPELINE_STAGE, |
- GetProxyMainForTest()->final_pipeline_stage()); |
- } |
- |
- void DidBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::UPDATE_LAYERS_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().final_pipeline_stage); |
+ } |
+ |
+ void DidBeginMainFrame() override { |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
} |
void DidCommit() override { |
@@ -233,39 +246,39 @@ |
} |
private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedSetNeedsUpdateLayersWhileAnimating); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedSetNeedsUpdateLayersWhileAnimating); |
- |
-class ProxyMainThreadedSetNeedsCommitWhileAnimating : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedSetNeedsCommitWhileAnimating() {} |
- ~ProxyMainThreadedSetNeedsCommitWhileAnimating() override {} |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestSetNeedsUpdateLayersWhileAnimating); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestSetNeedsUpdateLayersWhileAnimating); |
+ |
+class ThreadProxyTestSetNeedsCommitWhileAnimating : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestSetNeedsCommitWhileAnimating() {} |
+ ~ThreadProxyTestSetNeedsCommitWhileAnimating() override {} |
void BeginTest() override { proxy()->SetNeedsAnimate(); } |
void WillBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::ANIMATE_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::ANIMATE_PIPELINE_STAGE, |
- GetProxyMainForTest()->final_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::ANIMATE_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::ANIMATE_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().final_pipeline_stage); |
proxy()->SetNeedsCommit(); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::COMMIT_PIPELINE_STAGE, |
- GetProxyMainForTest()->final_pipeline_stage()); |
- } |
- |
- void DidBeginMainFrame() override { |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->max_requested_pipeline_stage()); |
- EXPECT_EQ(ProxyMain::NO_PIPELINE_STAGE, |
- GetProxyMainForTest()->current_pipeline_stage()); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::COMMIT_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().final_pipeline_stage); |
+ } |
+ |
+ void DidBeginMainFrame() override { |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().max_requested_pipeline_stage); |
+ EXPECT_EQ(ThreadProxy::NO_PIPELINE_STAGE, |
+ ThreadProxyMainOnly().current_pipeline_stage); |
} |
void DidCommit() override { |
@@ -274,15 +287,15 @@ |
} |
private: |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedSetNeedsCommitWhileAnimating); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedSetNeedsCommitWhileAnimating); |
- |
-class ProxyMainThreadedCommitWaitsForActivation : public ProxyMainThreaded { |
- protected: |
- ProxyMainThreadedCommitWaitsForActivation() : commits_completed_(0) {} |
- ~ProxyMainThreadedCommitWaitsForActivation() override {} |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestSetNeedsCommitWhileAnimating); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestSetNeedsCommitWhileAnimating); |
+ |
+class ThreadProxyTestCommitWaitsForActivation : public ThreadProxyTest { |
+ protected: |
+ ThreadProxyTestCommitWaitsForActivation() : commits_completed_(0) {} |
+ ~ThreadProxyTestCommitWaitsForActivation() override {} |
void BeginTest() override { proxy()->SetNeedsCommit(); } |
@@ -291,25 +304,25 @@ |
case 0: |
// The first commit does not wait for activation. Verify that the |
// completion event is cleared. |
- EXPECT_FALSE(GetProxyImplForTest()->HasCommitCompletionEvent()); |
- EXPECT_FALSE(GetProxyImplForTest()->GetNextCommitWaitsForActivation()); |
+ EXPECT_FALSE(ThreadProxyImplOnly().commit_completion_event); |
+ EXPECT_FALSE(ThreadProxyImplOnly().next_commit_waits_for_activation); |
break; |
case 1: |
// The second commit should be held until activation. |
- EXPECT_TRUE(GetProxyImplForTest()->HasCommitCompletionEvent()); |
- EXPECT_TRUE(GetProxyImplForTest()->GetNextCommitWaitsForActivation()); |
+ EXPECT_TRUE(ThreadProxyImplOnly().commit_completion_event); |
+ EXPECT_TRUE(ThreadProxyImplOnly().next_commit_waits_for_activation); |
break; |
case 2: |
// The third commit should not wait for activation. |
- EXPECT_FALSE(GetProxyImplForTest()->HasCommitCompletionEvent()); |
- EXPECT_FALSE(GetProxyImplForTest()->GetNextCommitWaitsForActivation()); |
+ EXPECT_FALSE(ThreadProxyImplOnly().commit_completion_event); |
+ EXPECT_FALSE(ThreadProxyImplOnly().next_commit_waits_for_activation); |
} |
} |
void DidActivateSyncTree() override { |
// The next_commit_waits_for_activation should have been cleared after the |
// sync tree is activated. |
- EXPECT_FALSE(GetProxyImplForTest()->GetNextCommitWaitsForActivation()); |
+ EXPECT_FALSE(ThreadProxyImplOnly().next_commit_waits_for_activation); |
} |
void DidCommit() override { |
@@ -336,9 +349,9 @@ |
private: |
int commits_completed_; |
- DISALLOW_COPY_AND_ASSIGN(ProxyMainThreadedCommitWaitsForActivation); |
-}; |
- |
-PROXY_MAIN_THREADED_TEST_F(ProxyMainThreadedCommitWaitsForActivation); |
+ DISALLOW_COPY_AND_ASSIGN(ThreadProxyTestCommitWaitsForActivation); |
+}; |
+ |
+THREAD_PROXY_TEST_F(ThreadProxyTestCommitWaitsForActivation); |
} // namespace cc |