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

Side by Side Diff: cc/surfaces/referenced_surface_tracker_unittest.cc

Issue 2661543002: Rename LocalFrameId to LocalSurfaceId (Closed)
Patch Set: c Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « cc/surfaces/referenced_surface_tracker.cc ('k') | cc/surfaces/surface_aggregator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "cc/surfaces/referenced_surface_tracker.h" 5 #include "cc/surfaces/referenced_surface_tracker.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 16 matching lines...) Expand all
27 constexpr FrameSinkId kChildFrameSink1(65563, 1); 27 constexpr FrameSinkId kChildFrameSink1(65563, 1);
28 constexpr FrameSinkId kChildFrameSink2(65564, 1); 28 constexpr FrameSinkId kChildFrameSink2(65564, 1);
29 29
30 std::vector<SurfaceId> empty_surface_ids() { 30 std::vector<SurfaceId> empty_surface_ids() {
31 return std::vector<SurfaceId>(); 31 return std::vector<SurfaceId>();
32 } 32 }
33 33
34 SurfaceId MakeSurfaceId(const FrameSinkId& frame_sink_id, uint32_t local_id) { 34 SurfaceId MakeSurfaceId(const FrameSinkId& frame_sink_id, uint32_t local_id) {
35 return SurfaceId( 35 return SurfaceId(
36 frame_sink_id, 36 frame_sink_id,
37 LocalFrameId(local_id, base::UnguessableToken::Deserialize(0, 1u))); 37 LocalSurfaceId(local_id, base::UnguessableToken::Deserialize(0, 1u)));
38 } 38 }
39 39
40 } // namespace 40 } // namespace
41 41
42 class ReferencedSurfaceTrackerTest : public testing::Test { 42 class ReferencedSurfaceTrackerTest : public testing::Test {
43 public: 43 public:
44 ReferencedSurfaceTrackerTest() {} 44 ReferencedSurfaceTrackerTest() {}
45 ~ReferencedSurfaceTrackerTest() override {} 45 ~ReferencedSurfaceTrackerTest() override {}
46 46
47 ReferencedSurfaceTracker& tracker() { return *tracker_; } 47 ReferencedSurfaceTracker& tracker() { return *tracker_; }
(...skipping 12 matching lines...) Expand all
60 DISALLOW_COPY_AND_ASSIGN(ReferencedSurfaceTrackerTest); 60 DISALLOW_COPY_AND_ASSIGN(ReferencedSurfaceTrackerTest);
61 }; 61 };
62 62
63 TEST_F(ReferencedSurfaceTrackerTest, SetCurrentSurfaceId) { 63 TEST_F(ReferencedSurfaceTrackerTest, SetCurrentSurfaceId) {
64 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 64 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
65 65
66 // Initially current_surface_id() should be invalid. 66 // Initially current_surface_id() should be invalid.
67 EXPECT_FALSE(tracker().current_surface_id().is_valid()); 67 EXPECT_FALSE(tracker().current_surface_id().is_valid());
68 68
69 // After setting current SurfaceId then current_surface_id() should be valid. 69 // After setting current SurfaceId then current_surface_id() should be valid.
70 tracker().UpdateReferences(parent_id.local_frame_id(), empty_surface_ids()); 70 tracker().UpdateReferences(parent_id.local_surface_id(), empty_surface_ids());
71 EXPECT_EQ(parent_id, tracker().current_surface_id()); 71 EXPECT_EQ(parent_id, tracker().current_surface_id());
72 } 72 }
73 73
74 TEST_F(ReferencedSurfaceTrackerTest, RefSurface) { 74 TEST_F(ReferencedSurfaceTrackerTest, RefSurface) {
75 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 75 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
76 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1); 76 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
77 const SurfaceReference reference(parent_id, child_id1); 77 const SurfaceReference reference(parent_id, child_id1);
78 78
79 // First frame has a reference to |child_id1|, check that reference is added. 79 // First frame has a reference to |child_id1|, check that reference is added.
80 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1}); 80 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1});
81 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference)); 81 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference));
82 EXPECT_THAT(tracker().references_to_remove(), IsEmpty()); 82 EXPECT_THAT(tracker().references_to_remove(), IsEmpty());
83 } 83 }
84 84
85 TEST_F(ReferencedSurfaceTrackerTest, NoChangeToReferences) { 85 TEST_F(ReferencedSurfaceTrackerTest, NoChangeToReferences) {
86 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 86 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
87 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1); 87 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
88 const SurfaceReference reference(parent_id, child_id1); 88 const SurfaceReference reference(parent_id, child_id1);
89 89
90 // First frame has a reference to |child_id1|, check that reference is added. 90 // First frame has a reference to |child_id1|, check that reference is added.
91 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1}); 91 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1});
92 EXPECT_THAT(tracker().references_to_remove(), IsEmpty()); 92 EXPECT_THAT(tracker().references_to_remove(), IsEmpty());
93 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference)); 93 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference));
94 94
95 // Second frame has same reference, check that no references are added or 95 // Second frame has same reference, check that no references are added or
96 // removed. 96 // removed.
97 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1}); 97 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1});
98 EXPECT_THAT(tracker().references_to_remove(), IsEmpty()); 98 EXPECT_THAT(tracker().references_to_remove(), IsEmpty());
99 EXPECT_THAT(tracker().references_to_add(), IsEmpty()); 99 EXPECT_THAT(tracker().references_to_add(), IsEmpty());
100 } 100 }
101 101
102 TEST_F(ReferencedSurfaceTrackerTest, UnrefSurface) { 102 TEST_F(ReferencedSurfaceTrackerTest, UnrefSurface) {
103 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 103 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
104 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1); 104 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
105 const SurfaceReference reference(parent_id, child_id1); 105 const SurfaceReference reference(parent_id, child_id1);
106 106
107 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1}); 107 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1});
108 108
109 // Second frame no longer references |child_id1|, check that reference to is 109 // Second frame no longer references |child_id1|, check that reference to is
110 // removed. 110 // removed.
111 tracker().UpdateReferences(parent_id.local_frame_id(), empty_surface_ids()); 111 tracker().UpdateReferences(parent_id.local_surface_id(), empty_surface_ids());
112 EXPECT_THAT(tracker().references_to_add(), IsEmpty()); 112 EXPECT_THAT(tracker().references_to_add(), IsEmpty());
113 EXPECT_THAT(tracker().references_to_remove(), 113 EXPECT_THAT(tracker().references_to_remove(),
114 UnorderedElementsAre(reference)); 114 UnorderedElementsAre(reference));
115 } 115 }
116 116
117 TEST_F(ReferencedSurfaceTrackerTest, RefNewSurfaceForFrameSink) { 117 TEST_F(ReferencedSurfaceTrackerTest, RefNewSurfaceForFrameSink) {
118 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 118 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
119 const SurfaceId child_id1_first = MakeSurfaceId(kChildFrameSink1, 1); 119 const SurfaceId child_id1_first = MakeSurfaceId(kChildFrameSink1, 1);
120 const SurfaceId child_id1_second = MakeSurfaceId(kChildFrameSink1, 2); 120 const SurfaceId child_id1_second = MakeSurfaceId(kChildFrameSink1, 2);
121 const SurfaceReference reference_first(parent_id, child_id1_first); 121 const SurfaceReference reference_first(parent_id, child_id1_first);
122 const SurfaceReference reference_second(parent_id, child_id1_second); 122 const SurfaceReference reference_second(parent_id, child_id1_second);
123 123
124 // First frame has reference to |child_id1_first|. 124 // First frame has reference to |child_id1_first|.
125 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1_first}); 125 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1_first});
126 EXPECT_THAT(tracker().references_to_add(), 126 EXPECT_THAT(tracker().references_to_add(),
127 UnorderedElementsAre(reference_first)); 127 UnorderedElementsAre(reference_first));
128 128
129 // Second frame has reference to |child_id1_second| which has the same 129 // Second frame has reference to |child_id1_second| which has the same
130 // FrameSinkId but different LocalFrameId. Check that first reference is 130 // FrameSinkId but different LocalSurfaceId. Check that first reference is
131 // removed and second reference is added. 131 // removed and second reference is added.
132 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id1_second}); 132 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id1_second});
133 EXPECT_THAT(tracker().references_to_remove(), 133 EXPECT_THAT(tracker().references_to_remove(),
134 UnorderedElementsAre(reference_first)); 134 UnorderedElementsAre(reference_first));
135 EXPECT_THAT(tracker().references_to_add(), 135 EXPECT_THAT(tracker().references_to_add(),
136 UnorderedElementsAre(reference_second)); 136 UnorderedElementsAre(reference_second));
137 } 137 }
138 138
139 TEST_F(ReferencedSurfaceTrackerTest, UpdateParentSurfaceId) { 139 TEST_F(ReferencedSurfaceTrackerTest, UpdateParentSurfaceId) {
140 const SurfaceId parent_id_first = MakeSurfaceId(kParentFrameSink, 1); 140 const SurfaceId parent_id_first = MakeSurfaceId(kParentFrameSink, 1);
141 const SurfaceId parent_id_second = MakeSurfaceId(kParentFrameSink, 2); 141 const SurfaceId parent_id_second = MakeSurfaceId(kParentFrameSink, 2);
142 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1); 142 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
143 const SurfaceReference reference(parent_id_second, child_id1); 143 const SurfaceReference reference(parent_id_second, child_id1);
144 144
145 // First frame references |child_id1|. 145 // First frame references |child_id1|.
146 tracker().UpdateReferences(parent_id_first.local_frame_id(), {child_id1}); 146 tracker().UpdateReferences(parent_id_first.local_surface_id(), {child_id1});
147 EXPECT_THAT(tracker().references_to_add(), SizeIs(1)); 147 EXPECT_THAT(tracker().references_to_add(), SizeIs(1));
148 148
149 // Second frame still reference |child_id1| but the parent SurfaceId has 149 // Second frame still reference |child_id1| but the parent SurfaceId has
150 // changed. The new parent SurfaceId should have a reference added to 150 // changed. The new parent SurfaceId should have a reference added to
151 // |child_id1|. 151 // |child_id1|.
152 tracker().UpdateReferences(parent_id_second.local_frame_id(), {child_id1}); 152 tracker().UpdateReferences(parent_id_second.local_surface_id(), {child_id1});
153 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference)); 153 EXPECT_THAT(tracker().references_to_add(), UnorderedElementsAre(reference));
154 EXPECT_THAT(tracker().references_to_remove(), IsEmpty()); 154 EXPECT_THAT(tracker().references_to_remove(), IsEmpty());
155 } 155 }
156 156
157 TEST_F(ReferencedSurfaceTrackerTest, RefTwoThenUnrefOneSurface) { 157 TEST_F(ReferencedSurfaceTrackerTest, RefTwoThenUnrefOneSurface) {
158 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1); 158 const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
159 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1); 159 const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
160 const SurfaceId child_id2 = MakeSurfaceId(kChildFrameSink2, 2); 160 const SurfaceId child_id2 = MakeSurfaceId(kChildFrameSink2, 2);
161 const SurfaceReference reference1(parent_id, child_id1); 161 const SurfaceReference reference1(parent_id, child_id1);
162 const SurfaceReference reference2(parent_id, child_id2); 162 const SurfaceReference reference2(parent_id, child_id2);
163 163
164 // First frame references both surfaces. 164 // First frame references both surfaces.
165 tracker().UpdateReferences(parent_id.local_frame_id(), 165 tracker().UpdateReferences(parent_id.local_surface_id(),
166 {child_id1, child_id2}); 166 {child_id1, child_id2});
167 EXPECT_THAT(tracker().references_to_add(), 167 EXPECT_THAT(tracker().references_to_add(),
168 UnorderedElementsAre(reference1, reference2)); 168 UnorderedElementsAre(reference1, reference2));
169 169
170 // Second frame references only |child_id2|, check that reference to 170 // Second frame references only |child_id2|, check that reference to
171 // |child_id1| is removed. 171 // |child_id1| is removed.
172 tracker().UpdateReferences(parent_id.local_frame_id(), {child_id2}); 172 tracker().UpdateReferences(parent_id.local_surface_id(), {child_id2});
173 EXPECT_THAT(tracker().references_to_remove(), 173 EXPECT_THAT(tracker().references_to_remove(),
174 UnorderedElementsAre(reference1)); 174 UnorderedElementsAre(reference1));
175 EXPECT_THAT(tracker().references_to_add(), IsEmpty()); 175 EXPECT_THAT(tracker().references_to_add(), IsEmpty());
176 } 176 }
177 177
178 } // namespace test 178 } // namespace test
179 } // namespace cc 179 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/referenced_surface_tracker.cc ('k') | cc/surfaces/surface_aggregator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698