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

Unified Diff: cc/output/output_surface_unittest.cc

Issue 1985973002: Defer compositor context creation to the thread. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/output_surface_unittest.cc
diff --git a/cc/output/output_surface_unittest.cc b/cc/output/output_surface_unittest.cc
index bebd2457275116d0fa4ae27025d84486118c9ea4..c15cfa5a44d779847ac9d34286cd2711eed3b588 100644
--- a/cc/output/output_surface_unittest.cc
+++ b/cc/output/output_surface_unittest.cc
@@ -22,20 +22,25 @@ namespace {
class TestOutputSurface : public OutputSurface {
public:
- explicit TestOutputSurface(scoped_refptr<ContextProvider> context_provider)
- : OutputSurface(context_provider) {}
+ explicit TestOutputSurface(
+ std::unique_ptr<ContextProvider::DeferredCreate> context_provider_create)
+ : OutputSurface(std::move(context_provider_create)) {}
- TestOutputSurface(scoped_refptr<ContextProvider> context_provider,
- scoped_refptr<ContextProvider> worker_context_provider)
- : OutputSurface(worker_context_provider) {}
+ TestOutputSurface(
+ std::unique_ptr<ContextProvider::DeferredCreate> context_provider_create,
+ scoped_refptr<ContextProvider> worker_context_provider)
+ : OutputSurface(std::move(context_provider_create),
+ std::move(worker_context_provider)) {}
explicit TestOutputSurface(
std::unique_ptr<SoftwareOutputDevice> software_device)
: OutputSurface(std::move(software_device)) {}
- TestOutputSurface(scoped_refptr<ContextProvider> context_provider,
- std::unique_ptr<SoftwareOutputDevice> software_device)
- : OutputSurface(context_provider, std::move(software_device)) {}
+ TestOutputSurface(
+ std::unique_ptr<ContextProvider::DeferredCreate> context_provider_create,
+ std::unique_ptr<SoftwareOutputDevice> software_device)
+ : OutputSurface(std::move(context_provider_create),
+ std::move(software_device)) {}
void SwapBuffers(CompositorFrame* frame) override {
client_->DidSwapBuffers();
@@ -82,8 +87,8 @@ void TestSoftwareOutputDevice::EnsureBackbuffer() {
}
TEST(OutputSurfaceTest, ClientPointerIndicatesBindToClientSuccess) {
- scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
- TestOutputSurface output_surface(provider);
+ TestOutputSurface output_surface(
+ base::MakeUnique<TestContextProvider::DeferredCreate>());
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;
@@ -99,10 +104,9 @@ TEST(OutputSurfaceTest, ClientPointerIndicatesBindToClientSuccess) {
}
TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientSuccess) {
- scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
- scoped_refptr<TestContextProvider> worker_provider =
- TestContextProvider::Create();
- TestOutputSurface output_surface(provider, worker_provider);
+ TestOutputSurface output_surface(
+ base::MakeUnique<TestContextProvider::DeferredCreate>(),
+ TestContextProvider::Create());
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;
@@ -118,13 +122,11 @@ TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientSuccess) {
}
TEST(OutputSurfaceTest, ClientPointerIndicatesBindToClientFailure) {
- scoped_refptr<TestContextProvider> context_provider =
- TestContextProvider::Create();
+ std::unique_ptr<TestContextProvider::DeferredCreate> compositor_create(
+ new TestContextProvider::DeferredCreate);
+ compositor_create->fail_create = true;
- // Lose the context so BindToClient fails.
- context_provider->UnboundTestContext3d()->set_context_lost(true);
-
- TestOutputSurface output_surface(context_provider);
+ TestOutputSurface output_surface(std::move(compositor_create));
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;
@@ -133,15 +135,16 @@ TEST(OutputSurfaceTest, ClientPointerIndicatesBindToClientFailure) {
}
TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientFailure) {
- scoped_refptr<TestContextProvider> context_provider =
- TestContextProvider::Create();
+ std::unique_ptr<TestContextProvider::DeferredCreate> compositor_create(
+ new TestContextProvider::DeferredCreate);
scoped_refptr<TestContextProvider> worker_context_provider =
TestContextProvider::Create();
// Lose the context so BindToClient fails.
- worker_context_provider->UnboundTestContext3d()->set_context_lost(true);
+ worker_context_provider->TestContext3d()->set_context_lost(true);
- TestOutputSurface output_surface(context_provider, worker_context_provider);
+ TestOutputSurface output_surface(std::move(compositor_create),
+ worker_context_provider);
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;

Powered by Google App Engine
This is Rietveld 408576698