Index: content/renderer/gpu/render_widget_compositor_unittest.cc |
diff --git a/content/renderer/gpu/render_widget_compositor_unittest.cc b/content/renderer/gpu/render_widget_compositor_unittest.cc |
index d09dd86b0a085d308276bcd0629ba571da89aa52..0523e772f11e36a1e0023c78cdf34c5d909ad90f 100644 |
--- a/content/renderer/gpu/render_widget_compositor_unittest.cc |
+++ b/content/renderer/gpu/render_widget_compositor_unittest.cc |
@@ -14,9 +14,10 @@ |
#include "base/threading/thread_task_runner_handle.h" |
#include "cc/output/begin_frame_args.h" |
#include "cc/output/copy_output_request.h" |
+#include "cc/test/fake_compositor_frame_sink.h" |
#include "cc/test/fake_external_begin_frame_source.h" |
-#include "cc/test/fake_output_surface.h" |
#include "cc/test/test_context_provider.h" |
+#include "cc/test/test_web_graphics_context_3d.h" |
#include "cc/trees/layer_tree_host.h" |
#include "content/public/test/mock_render_thread.h" |
#include "content/renderer/render_widget.h" |
@@ -41,7 +42,7 @@ class StubRenderWidgetCompositorDelegate |
float page_scale, |
float top_controls_delta) override {} |
void BeginMainFrame(double frame_time_sec) override {} |
- std::unique_ptr<cc::OutputSurface> CreateOutputSurface( |
+ std::unique_ptr<cc::CompositorFrameSink> CreateCompositorFrameSink( |
bool fallback) override { |
return nullptr; |
} |
@@ -68,16 +69,16 @@ class FakeRenderWidgetCompositorDelegate |
public: |
FakeRenderWidgetCompositorDelegate() = default; |
- std::unique_ptr<cc::OutputSurface> CreateOutputSurface( |
+ std::unique_ptr<cc::CompositorFrameSink> CreateCompositorFrameSink( |
bool fallback) override { |
- EXPECT_EQ( |
- num_requests_since_last_success_ > |
- RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, |
- fallback); |
+ EXPECT_EQ(num_requests_since_last_success_ > |
+ RenderWidgetCompositor:: |
+ COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK, |
+ fallback); |
last_create_was_fallback_ = fallback; |
bool success = num_failures_ >= num_failures_before_success_; |
- if (!success && use_null_output_surface_) |
+ if (!success && use_null_compositor_frame_sink_) |
return nullptr; |
auto context_provider = cc::TestContextProvider::Create(); |
@@ -86,9 +87,9 @@ class FakeRenderWidgetCompositorDelegate |
GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB); |
} |
- // Create delegating surface so that max_pending_frames = 1. |
- return cc::FakeOutputSurface::CreateDelegating3d( |
- std::move(context_provider)); |
+ auto s = cc::FakeCompositorFrameSink::Create3d(std::move(context_provider)); |
+ EXPECT_EQ(1, s->capabilities().max_frames_pending); |
+ return std::move(s); |
} |
void add_success() { |
@@ -117,8 +118,12 @@ class FakeRenderWidgetCompositorDelegate |
return num_failures_before_success_; |
} |
- void set_use_null_output_surface(bool u) { use_null_output_surface_ = u; } |
- bool use_null_output_surface() const { return use_null_output_surface_; } |
+ void set_use_null_compositor_frame_sink(bool u) { |
+ use_null_compositor_frame_sink_ = u; |
+ } |
+ bool use_null_compositor_frame_sink() const { |
+ return use_null_compositor_frame_sink_; |
+ } |
private: |
int num_requests_ = 0; |
@@ -128,7 +133,7 @@ class FakeRenderWidgetCompositorDelegate |
int num_fallback_successes_ = 0; |
int num_successes_ = 0; |
bool last_create_was_fallback_ = false; |
- bool use_null_output_surface_ = true; |
+ bool use_null_compositor_frame_sink_ = true; |
DISALLOW_COPY_AND_ASSIGN(FakeRenderWidgetCompositorDelegate); |
}; |
@@ -139,11 +144,10 @@ class FakeRenderWidgetCompositorDelegate |
// The use null output surface parameter allows testing whether failures |
// from RenderWidget (couldn't create an output surface) vs failures from |
// the compositor (couldn't bind the output surface) are handled identically. |
-class RenderWidgetCompositorOutputSurface : public RenderWidgetCompositor { |
+class RenderWidgetCompositorFrameSink : public RenderWidgetCompositor { |
public: |
- RenderWidgetCompositorOutputSurface( |
- FakeRenderWidgetCompositorDelegate* delegate, |
- CompositorDependencies* compositor_deps) |
+ RenderWidgetCompositorFrameSink(FakeRenderWidgetCompositorDelegate* delegate, |
+ CompositorDependencies* compositor_deps) |
: RenderWidgetCompositor(delegate, compositor_deps), |
delegate_(delegate) {} |
@@ -152,41 +156,41 @@ class RenderWidgetCompositorOutputSurface : public RenderWidgetCompositor { |
// Force a new output surface to be created. |
void SynchronousComposite() { |
layer_tree_host()->SetVisible(false); |
- layer_tree_host()->ReleaseOutputSurface(); |
+ layer_tree_host()->ReleaseCompositorFrameSink(); |
layer_tree_host()->SetVisible(true); |
base::TimeTicks some_time; |
layer_tree_host()->Composite(some_time); |
} |
- void RequestNewOutputSurface() override { |
+ void RequestNewCompositorFrameSink() override { |
delegate_->add_request(); |
- RenderWidgetCompositor::RequestNewOutputSurface(); |
+ RenderWidgetCompositor::RequestNewCompositorFrameSink(); |
} |
- void DidInitializeOutputSurface() override { |
+ void DidInitializeCompositorFrameSink() override { |
delegate_->add_success(); |
if (delegate_->num_requests() == expected_requests_) { |
EndTest(); |
} else { |
- RenderWidgetCompositor::DidInitializeOutputSurface(); |
+ RenderWidgetCompositor::DidInitializeCompositorFrameSink(); |
// Post the synchronous composite task so that it is not called |
- // reentrantly as a part of RequestNewOutputSurface. |
+ // reentrantly as a part of RequestNewCompositorFrameSink. |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
- base::Bind(&RenderWidgetCompositorOutputSurface::SynchronousComposite, |
+ base::Bind(&RenderWidgetCompositorFrameSink::SynchronousComposite, |
base::Unretained(this))); |
} |
} |
- void DidFailToInitializeOutputSurface() override { |
+ void DidFailToInitializeCompositorFrameSink() override { |
delegate_->add_failure(); |
if (delegate_->num_requests() == expected_requests_) { |
EndTest(); |
return; |
} |
- RenderWidgetCompositor::DidFailToInitializeOutputSurface(); |
+ RenderWidgetCompositor::DidFailToInitializeCompositorFrameSink(); |
} |
void SetUp(int expected_successes, int expected_fallback_succeses) { |
@@ -213,21 +217,22 @@ class RenderWidgetCompositorOutputSurface : public RenderWidgetCompositor { |
int expected_fallback_successes_ = 0; |
int expected_requests_ = 0; |
- DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorOutputSurface); |
+ DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorFrameSink); |
}; |
-class RenderWidgetCompositorOutputSurfaceTest : public testing::Test { |
+class RenderWidgetCompositorFrameSinkTest : public testing::Test { |
public: |
- RenderWidgetCompositorOutputSurfaceTest() |
+ RenderWidgetCompositorFrameSinkTest() |
: render_widget_compositor_(&compositor_delegate_, &compositor_deps_) { |
render_widget_compositor_.Initialize(1.f /* initial_device_scale_factor */); |
} |
- void RunTest(bool use_null_output_surface, |
+ void RunTest(bool use_null_compositor_frame_sink, |
int num_failures_before_success, |
int expected_successes, |
int expected_fallback_succeses) { |
- compositor_delegate_.set_use_null_output_surface(use_null_output_surface); |
+ compositor_delegate_.set_use_null_compositor_frame_sink( |
+ use_null_compositor_frame_sink); |
compositor_delegate_.set_num_failures_before_success( |
num_failures_before_success); |
render_widget_compositor_.SetUp(expected_successes, |
@@ -235,7 +240,7 @@ class RenderWidgetCompositorOutputSurfaceTest : public testing::Test { |
render_widget_compositor_.setVisible(true); |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
- base::Bind(&RenderWidgetCompositorOutputSurface::SynchronousComposite, |
+ base::Bind(&RenderWidgetCompositorFrameSink::SynchronousComposite, |
base::Unretained(&render_widget_compositor_))); |
base::RunLoop().Run(); |
render_widget_compositor_.AfterTest(); |
@@ -246,47 +251,52 @@ class RenderWidgetCompositorOutputSurfaceTest : public testing::Test { |
MockRenderThread render_thread_; |
FakeCompositorDependencies compositor_deps_; |
FakeRenderWidgetCompositorDelegate compositor_delegate_; |
- RenderWidgetCompositorOutputSurface render_widget_compositor_; |
+ RenderWidgetCompositorFrameSink render_widget_compositor_; |
private: |
- DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorOutputSurfaceTest); |
+ DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorFrameSinkTest); |
}; |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, SucceedOnce) { |
+TEST_F(RenderWidgetCompositorFrameSinkTest, SucceedOnce) { |
RunTest(false, 0, 1, 0); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, SucceedTwice) { |
+TEST_F(RenderWidgetCompositorFrameSinkTest, SucceedTwice) { |
RunTest(false, 0, 2, 0); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, FailOnceNull) { |
+TEST_F(RenderWidgetCompositorFrameSinkTest, FailOnceNull) { |
static_assert( |
- RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK >= 2, |
+ RenderWidgetCompositor::COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK >= |
+ 2, |
"Adjust the values of this test if this fails"); |
RunTest(true, 1, 1, 0); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, FailOnceBind) { |
+TEST_F(RenderWidgetCompositorFrameSinkTest, FailOnceBind) { |
static_assert( |
- RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK >= 2, |
+ RenderWidgetCompositor::COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK >= |
+ 2, |
"Adjust the values of this test if this fails"); |
RunTest(false, 1, 1, 0); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, FallbackSuccessNull) { |
- RunTest(true, RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, |
+TEST_F(RenderWidgetCompositorFrameSinkTest, FallbackSuccessNull) { |
+ RunTest(true, |
+ RenderWidgetCompositor::COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK, |
0, 1); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, FallbackSuccessBind) { |
- RunTest(false, RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, |
+TEST_F(RenderWidgetCompositorFrameSinkTest, FallbackSuccessBind) { |
+ RunTest(false, |
+ RenderWidgetCompositor::COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK, |
0, 1); |
} |
-TEST_F(RenderWidgetCompositorOutputSurfaceTest, FallbackSuccessNormalSuccess) { |
+TEST_F(RenderWidgetCompositorFrameSinkTest, FallbackSuccessNormalSuccess) { |
// The first success is a fallback, but the next should not be a fallback. |
- RunTest(false, RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, |
+ RunTest(false, |
+ RenderWidgetCompositor::COMPOSITOR_FRAME_SINK_RETRIES_BEFORE_FALLBACK, |
1, 1); |
} |