| Index: cc/trees/layer_tree_host_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
|
| index 93a0f3f600fa113025066b46f270ab0799265b97..b5241f0afe0de87809384ed2c9cbe84b724a7e9a 100644
|
| --- a/cc/trees/layer_tree_host_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_unittest.cc
|
| @@ -71,7 +71,27 @@ using testing::Mock;
|
| namespace cc {
|
| namespace {
|
|
|
| -class LayerTreeHostTest : public LayerTreeTest {};
|
| +class LayerTreeHostTest : public LayerTreeTest {
|
| + protected:
|
| + // These tests are not pixel tests, and they use a fake output surface,
|
| + // while storing pointers to the test-types for tests to poke at.
|
| + std::unique_ptr<OutputSurface> CreateOutputSurface() override {
|
| + auto context = TestContextProvider::Create();
|
| + context_provider_ = context.get();
|
| + auto ret = delegating_renderer()
|
| + ? FakeOutputSurface::CreateDelegating3d(std::move(context))
|
| + : FakeOutputSurface::Create3d(std::move(context));
|
| + output_surface_ = ret.get();
|
| + return std::move(ret);
|
| + }
|
| +
|
| + FakeOutputSurface* fake_output_surface() { return output_surface_; }
|
| + TestContextProvider* test_context_provider() { return context_provider_; }
|
| +
|
| + private:
|
| + FakeOutputSurface* output_surface_ = nullptr;
|
| + TestContextProvider* context_provider_ = nullptr;
|
| +};
|
|
|
| class LayerTreeHostTestHasImplThreadTest : public LayerTreeHostTest {
|
| public:
|
| @@ -425,7 +445,7 @@ SINGLE_THREAD_TEST_F(LayerTreeHostTestReadyToDrawVisibility);
|
|
|
| class LayerTreeHostFreeWorkerContextResourcesTest : public LayerTreeHostTest {
|
| public:
|
| - std::unique_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
|
| + std::unique_ptr<OutputSurface> CreateOutputSurface() override {
|
| auto output_surface = base::WrapUnique(
|
| new testing::StrictMock<
|
| MockSetWorkerContextShouldAggressivelyFreeResourcesOutputSurface>(
|
| @@ -2623,8 +2643,8 @@ class LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor
|
| gfx::Transform identity;
|
| gfx::Rect empty_rect;
|
| bool resourceless_software_draw = false;
|
| - output_surface()->client()->OnDraw(identity, empty_rect, empty_rect,
|
| - resourceless_software_draw);
|
| + fake_output_surface()->client()->OnDraw(identity, empty_rect, empty_rect,
|
| + resourceless_software_draw);
|
| }
|
| };
|
|
|
| @@ -2744,14 +2764,14 @@ class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest {
|
| client_.set_bounds(root_layer_->bounds());
|
| }
|
|
|
| - std::unique_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
|
| - if (delegating_renderer()) {
|
| - return FakeOutputSurface::CreateDelegatingSoftware(
|
| - base::WrapUnique(new SoftwareOutputDevice));
|
| - } else {
|
| - return FakeOutputSurface::CreateSoftware(
|
| - base::WrapUnique(new SoftwareOutputDevice));
|
| - }
|
| + std::unique_ptr<OutputSurface> CreateOutputSurface() override {
|
| + auto output_surface = delegating_renderer()
|
| + ? FakeOutputSurface::CreateDelegatingSoftware(
|
| + base::WrapUnique(new SoftwareOutputDevice))
|
| + : FakeOutputSurface::CreateSoftware(
|
| + base::WrapUnique(new SoftwareOutputDevice));
|
| + software_output_surface_ = output_surface.get();
|
| + return std::move(output_surface);
|
| }
|
|
|
| void BeginTest() override {
|
| @@ -2773,8 +2793,8 @@ class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest {
|
| gfx::Transform identity;
|
| gfx::Rect empty_rect;
|
| bool resourceless_software_draw = true;
|
| - output_surface()->client()->OnDraw(identity, empty_rect, empty_rect,
|
| - resourceless_software_draw);
|
| + software_output_surface_->client()->OnDraw(identity, empty_rect, empty_rect,
|
| + resourceless_software_draw);
|
| }
|
|
|
| DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
|
| @@ -2813,6 +2833,7 @@ class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest {
|
| void AfterTest() override {}
|
|
|
| private:
|
| + FakeOutputSurface* software_output_surface_ = nullptr;
|
| FakeContentLayerClient client_;
|
| scoped_refptr<Layer> root_layer_;
|
| scoped_refptr<Layer> parent_layer_;
|
| @@ -2867,7 +2888,7 @@ class LayerTreeHostTestUIResource : public LayerTreeHostTest {
|
| }
|
|
|
| void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
|
| - TestWebGraphicsContext3D* context = TestContext();
|
| + auto* context = test_context_provider()->TestContext3d();
|
|
|
| int frame = impl->active_tree()->source_frame_number();
|
| switch (frame) {
|
| @@ -3954,7 +3975,7 @@ class LayerTreeHostTestTreeActivationCallback : public LayerTreeHostTest {
|
| void AfterTest() override { EXPECT_EQ(3, num_commits_); }
|
|
|
| void SetCallback(bool enable) {
|
| - output_surface()->SetTreeActivationCallback(
|
| + fake_output_surface()->SetTreeActivationCallback(
|
| enable
|
| ? base::Bind(
|
| &LayerTreeHostTestTreeActivationCallback::ActivationCallback,
|
| @@ -4234,7 +4255,7 @@ class LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface
|
| : first_output_surface_memory_limit_(4321234),
|
| second_output_surface_memory_limit_(1234321) {}
|
|
|
| - std::unique_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
|
| + std::unique_ptr<OutputSurface> CreateOutputSurface() override {
|
| if (!first_context_provider_.get()) {
|
| first_context_provider_ = TestContextProvider::Create();
|
| } else {
|
| @@ -4256,7 +4277,7 @@ class LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface
|
| : first_output_surface_memory_limit_,
|
| gpu::MemoryAllocation::CUTOFF_ALLOW_NICE_TO_HAVE,
|
| ManagedMemoryPolicy::kDefaultNumResourcesLimit)));
|
| - return output_surface;
|
| + return std::move(output_surface);
|
| }
|
|
|
| void SetupTree() override {
|
| @@ -4507,7 +4528,7 @@ class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest {
|
|
|
| MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise);
|
|
|
| -class LayerTreeHostTestKeepSwapPromise : public LayerTreeTest {
|
| +class LayerTreeHostTestKeepSwapPromise : public LayerTreeHostTest {
|
| public:
|
| LayerTreeHostTestKeepSwapPromise() {}
|
|
|
| @@ -4570,7 +4591,7 @@ class LayerTreeHostTestKeepSwapPromise : public LayerTreeTest {
|
| }
|
|
|
| void SetCallback(bool enable) {
|
| - output_surface()->SetTreeActivationCallback(
|
| + fake_output_surface()->SetTreeActivationCallback(
|
| enable
|
| ? base::Bind(&LayerTreeHostTestKeepSwapPromise::ActivationCallback,
|
| base::Unretained(this))
|
| @@ -5638,7 +5659,7 @@ MULTI_THREAD_TEST_F(LayerTreeHostTestCrispUpAfterPinchEnds);
|
| class LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy
|
| : public LayerTreeHostTestCrispUpAfterPinchEnds {
|
| protected:
|
| - std::unique_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
|
| + std::unique_ptr<OutputSurface> CreateOutputSurface() override {
|
| std::unique_ptr<TestWebGraphicsContext3D> context3d =
|
| TestWebGraphicsContext3D::Create();
|
| context3d->set_support_image(true);
|
| @@ -6769,7 +6790,7 @@ class LayerTreeHostTestPaintedDeviceScaleFactor : public LayerTreeHostTest {
|
| void SwapBuffersCompleteOnThread() override {
|
| EXPECT_EQ(
|
| 2.0f,
|
| - output_surface()->last_sent_frame()->metadata.device_scale_factor);
|
| + fake_output_surface()->last_sent_frame()->metadata.device_scale_factor);
|
| EndTest();
|
| }
|
|
|
|
|