| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <unordered_map> | 7 #include <unordered_map> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 // Surface for |id3| isn't delete yet because it has a valid destruction | 240 // Surface for |id3| isn't delete yet because it has a valid destruction |
| 241 // dependency from |kFrameSink2|. | 241 // dependency from |kFrameSink2|. |
| 242 DestroySurface(id3); | 242 DestroySurface(id3); |
| 243 EXPECT_NE(manager().GetSurfaceForId(id3), nullptr); | 243 EXPECT_NE(manager().GetSurfaceForId(id3), nullptr); |
| 244 | 244 |
| 245 // Surface for |id2| isn't deleted because it has a reference. | 245 // Surface for |id2| isn't deleted because it has a reference. |
| 246 DestroySurface(id2); | 246 DestroySurface(id2); |
| 247 EXPECT_NE(manager().GetSurfaceForId(id2), nullptr); | 247 EXPECT_NE(manager().GetSurfaceForId(id2), nullptr); |
| 248 | 248 |
| 249 // Satisfy destruction dependency on |id3| and delete during GC. | 249 // Satisfy destruction dependency on |id3| and delete during GC. |
| 250 std::vector<uint32_t> satisfied({sequence.sequence}); | 250 manager().SatisfySequence(sequence); |
| 251 manager().DidSatisfySequences(kFrameSink2, &satisfied); | |
| 252 EXPECT_EQ(manager().GetSurfaceForId(id3), nullptr); | 251 EXPECT_EQ(manager().GetSurfaceForId(id3), nullptr); |
| 253 | 252 |
| 254 // Remove ref on |id2| and delete during GC. | 253 // Remove ref on |id2| and delete during GC. |
| 255 manager().RemoveSurfaceReference(id1, id2); | 254 manager().RemoveSurfaceReference(id1, id2); |
| 256 EXPECT_EQ(manager().GetSurfaceForId(id2), nullptr); | 255 EXPECT_EQ(manager().GetSurfaceForId(id2), nullptr); |
| 257 } | 256 } |
| 258 | 257 |
| 259 TEST_F(SurfaceManagerRefTest, TryAddReferenceToBadSurface) { | 258 TEST_F(SurfaceManagerRefTest, TryAddReferenceToBadSurface) { |
| 260 // Not creating an accompanying Surface and SurfaceFactory. | 259 // Not creating an accompanying Surface and SurfaceFactory. |
| 261 SurfaceId id(FrameSinkId(100u, 200u), | 260 SurfaceId id(FrameSinkId(100u, 200u), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 SurfaceId id2 = CreateSurface(kFrameSink2, kLocalFrame1); | 295 SurfaceId id2 = CreateSurface(kFrameSink2, kLocalFrame1); |
| 297 | 296 |
| 298 // Removing non-existent reference should be ignored. | 297 // Removing non-existent reference should be ignored. |
| 299 manager().AddSurfaceReference(id1, id2); | 298 manager().AddSurfaceReference(id1, id2); |
| 300 manager().RemoveSurfaceReference(id2, id1); | 299 manager().RemoveSurfaceReference(id2, id1); |
| 301 EXPECT_EQ(manager().GetReferencedSurfaceCount(id1), 1u); | 300 EXPECT_EQ(manager().GetReferencedSurfaceCount(id1), 1u); |
| 302 EXPECT_EQ(manager().GetSurfaceReferenceCount(id2), 1u); | 301 EXPECT_EQ(manager().GetSurfaceReferenceCount(id2), 1u); |
| 303 } | 302 } |
| 304 | 303 |
| 305 } // namespace cc | 304 } // namespace cc |
| OLD | NEW |