Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Unified Diff: cc/output/renderer_unittest.cc

Issue 1985973002: Defer compositor context creation to the thread. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: contextfactory: . Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/output/renderer_unittest.cc
diff --git a/cc/output/renderer_unittest.cc b/cc/output/renderer_unittest.cc
index 67d13caf40a7f6af65e2308488ea2268fc4c30d1..45955ecca3131ffc0233b6365ab01deeaee91f30 100644
--- a/cc/output/renderer_unittest.cc
+++ b/cc/output/renderer_unittest.cc
@@ -18,34 +18,40 @@ namespace {
class TestOutputSurface : public OutputSurface {
public:
- explicit TestOutputSurface(scoped_refptr<ContextProvider> context_provider);
- ~TestOutputSurface() override;
-
- // OutputSurface implementation
- void SwapBuffers(CompositorFrame* frame) override;
+ explicit TestOutputSurface(
+ std::unique_ptr<ContextProvider::Factory> compositor_context_factory)
+ : OutputSurface(std::move(compositor_context_factory)) {}
+ ~TestOutputSurface() override = default;
+
+ // OutputSurface implementation.
+ void SwapBuffers(CompositorFrame* frame) override {
+ client_->DidSwapBuffers();
+ client_->DidSwapBuffersComplete();
+ }
};
-TestOutputSurface::TestOutputSurface(
- scoped_refptr<ContextProvider> context_provider)
- : OutputSurface(std::move(context_provider)) {}
+class MockContextProvider : public TestContextProvider {
+ public:
+ MockContextProvider()
+ : TestContextProvider(TestWebGraphicsContext3D::Create()) {}
-TestOutputSurface::~TestOutputSurface() {
-}
+ class Factory : public ContextProvider::Factory {
+ public:
+ explicit Factory(scoped_refptr<MockContextProvider> provider)
+ : provider_(provider) {}
-void TestOutputSurface::SwapBuffers(CompositorFrame* frame) {
- client_->DidSwapBuffers();
- client_->DidSwapBuffersComplete();
-}
+ scoped_refptr<ContextProvider> CreateContext() override {
+ return std::move(provider_);
+ }
+
+ private:
+ scoped_refptr<MockContextProvider> provider_;
+ };
-class MockContextProvider : public TestContextProvider {
- public:
- explicit MockContextProvider(
- std::unique_ptr<TestWebGraphicsContext3D> context)
- : TestContextProvider(std::move(context)) {}
MOCK_METHOD0(DeleteCachedResources, void());
protected:
- ~MockContextProvider() {}
+ ~MockContextProvider() = default;
};
template <class T>
@@ -78,9 +84,9 @@ template <typename T>
class RendererTest : public ::testing::Test {
protected:
virtual void SetUp() {
- context_provider_ =
- new MockContextProvider(TestWebGraphicsContext3D::Create());
- output_surface_.reset(new TestOutputSurface(context_provider_));
+ context_provider_ = new MockContextProvider;
+ output_surface_.reset(new TestOutputSurface(
+ base::MakeUnique<MockContextProvider::Factory>(context_provider_)));
output_surface_->BindToClient(&output_surface_client_);
resource_provider_ =
FakeResourceProvider::Create(output_surface_.get(), nullptr);
@@ -103,8 +109,7 @@ typedef ::testing::Types<DelegatingRenderer, GLRenderer> RendererTypes;
TYPED_TEST_CASE(RendererTest, RendererTypes);
TYPED_TEST(RendererTest, ContextPurgedWhenRendererBecomesInvisible) {
- EXPECT_CALL(*(this->context_provider_.get()), DeleteCachedResources())
- .Times(1);
+ EXPECT_CALL(*this->context_provider_, DeleteCachedResources()).Times(1);
EXPECT_TRUE(this->renderer_->visible());
this->renderer_->SetVisible(false);

Powered by Google App Engine
This is Rietveld 408576698