Index: cc/surfaces/surface_factory_unittest.cc |
diff --git a/cc/surfaces/surface_factory_unittest.cc b/cc/surfaces/surface_factory_unittest.cc |
index b5cfa1cc79798a517d4971f329aa4c4510ef7849..8bcd7e787b7d9e2ac7d03d53e91def7756128760 100644 |
--- a/cc/surfaces/surface_factory_unittest.cc |
+++ b/cc/surfaces/surface_factory_unittest.cc |
@@ -67,7 +67,7 @@ gpu::SyncToken GenTestSyncToken(int id) { |
class SurfaceFactoryTest : public testing::Test, public SurfaceDamageObserver { |
public: |
SurfaceFactoryTest() |
- : factory_(new SurfaceFactory(&manager_, &client_)), |
+ : factory_(new SurfaceFactory(kArbitraryClientId, &manager_, &client_)), |
surface_id_(kArbitraryClientId, 3, 0), |
frame_sync_token_(GenTestSyncToken(4)), |
consumer_sync_token_(GenTestSyncToken(5)) { |
@@ -81,7 +81,7 @@ class SurfaceFactoryTest : public testing::Test, public SurfaceDamageObserver { |
} |
~SurfaceFactoryTest() override { |
- if (!surface_id_.is_null()) |
+ if (factory_ && !surface_id_.is_null()) |
factory_->Destroy(surface_id_); |
manager_.RemoveObserver(this); |
} |
@@ -499,8 +499,6 @@ TEST_F(SurfaceFactoryTest, DestroySequence) { |
SurfaceId id2(kArbitraryClientId, 5, 0); |
factory_->Create(id2); |
- manager_.RegisterSurfaceClientId(0); |
- |
// Check that waiting before the sequence is satisfied works. |
manager_.GetSurfaceForId(id2) |
->AddDestructionDependency(SurfaceSequence(0, 4)); |
@@ -528,19 +526,22 @@ TEST_F(SurfaceFactoryTest, DestroySequence) { |
// Tests that Surface ID namespace invalidation correctly allows |
// Sequences to be ignored. |
TEST_F(SurfaceFactoryTest, InvalidClientId) { |
- uint32_t id_namespace = 9u; |
- SurfaceId id(id_namespace, 5, 0); |
- factory_->Create(id); |
- |
- manager_.RegisterSurfaceClientId(id_namespace); |
- manager_.GetSurfaceForId(id) |
- ->AddDestructionDependency(SurfaceSequence(id_namespace, 4)); |
- factory_->Destroy(id); |
+ const uint32_t client_id = 9u; |
+ TestSurfaceFactoryClient client2; |
+ // Every client must get a new SurfaceFactory. |
+ std::unique_ptr<SurfaceFactory> factory2( |
+ new SurfaceFactory(client_id, &manager_, &client2)); |
+ SurfaceId id(client_id, 5, 0); |
+ factory2->Create(id); |
+ |
+ manager_.GetSurfaceForId(id)->AddDestructionDependency( |
+ SurfaceSequence(client_id, 4)); |
+ factory2->Destroy(id); |
// Verify the dependency has prevented the surface from getting destroyed. |
EXPECT_TRUE(manager_.GetSurfaceForId(id)); |
- manager_.InvalidateSurfaceClientId(id_namespace); |
+ factory2.reset(); |
// Verify that the invalidated namespace caused the unsatisfied sequence |
// to be ignored. |
@@ -551,8 +552,6 @@ TEST_F(SurfaceFactoryTest, DestroyCycle) { |
SurfaceId id2(kArbitraryClientId, 5, 0); |
factory_->Create(id2); |
- manager_.RegisterSurfaceClientId(0); |
- |
manager_.GetSurfaceForId(id2) |
->AddDestructionDependency(SurfaceSequence(0, 4)); |