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 |