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

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: 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/output_surface_unittest.cc
diff --git a/cc/output/output_surface_unittest.cc b/cc/output/output_surface_unittest.cc
index bebd2457275116d0fa4ae27025d84486118c9ea4..2025f307e10016dc65985d8ea287dc222c730b5b 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::Factory> compositor_context_factory)
+ : OutputSurface(std::move(compositor_context_factory)) {}
- TestOutputSurface(scoped_refptr<ContextProvider> context_provider,
- scoped_refptr<ContextProvider> worker_context_provider)
- : OutputSurface(worker_context_provider) {}
+ TestOutputSurface(
+ std::unique_ptr<ContextProvider::Factory> compositor_context_factory,
+ scoped_refptr<ContextProvider> worker_context_provider)
+ : OutputSurface(std::move(compositor_context_factory),
+ 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::Factory> compositor_context_factory,
+ std::unique_ptr<SoftwareOutputDevice> software_device)
+ : OutputSurface(std::move(compositor_context_factory),
+ 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::Factory>());
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::Factory>(),
+ TestContextProvider::Create());
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;
@@ -117,31 +121,12 @@ TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientSuccess) {
EXPECT_TRUE(client.did_lose_output_surface_called());
}
+// TODO(danakj): Add a test for the worker context failing when we defer its
+// creation too.
TEST(OutputSurfaceTest, ClientPointerIndicatesBindToClientFailure) {
- scoped_refptr<TestContextProvider> context_provider =
- TestContextProvider::Create();
-
- // Lose the context so BindToClient fails.
- context_provider->UnboundTestContext3d()->set_context_lost(true);
-
- TestOutputSurface output_surface(context_provider);
- EXPECT_FALSE(output_surface.HasClient());
-
- FakeOutputSurfaceClient client;
- EXPECT_FALSE(output_surface.BindToClient(&client));
- EXPECT_FALSE(output_surface.HasClient());
-}
-
-TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientFailure) {
- scoped_refptr<TestContextProvider> context_provider =
- TestContextProvider::Create();
- scoped_refptr<TestContextProvider> worker_context_provider =
- TestContextProvider::Create();
-
- // Lose the context so BindToClient fails.
- worker_context_provider->UnboundTestContext3d()->set_context_lost(true);
-
- TestOutputSurface output_surface(context_provider, worker_context_provider);
+ TestOutputSurface output_surface(
+ base::MakeUnique<TestContextProvider::Factory>(
+ TestContextProvider::Factory::kFailCreate));
EXPECT_FALSE(output_surface.HasClient());
FakeOutputSurfaceClient client;

Powered by Google App Engine
This is Rietveld 408576698