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

Side by Side Diff: cc/layers/surface_layer_unittest.cc

Issue 2537943002: Getting rid of CompositorFrameMetadata::satisfies_sequences (Closed)
Patch Set: test Created 4 years 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 class SurfaceLayerSwapPromiseWithDraw : public SurfaceLayerSwapPromise { 196 class SurfaceLayerSwapPromiseWithDraw : public SurfaceLayerSwapPromise {
197 public: 197 public:
198 void ChangeTree() override { 198 void ChangeTree() override {
199 ++commit_count_; 199 ++commit_count_;
200 switch (commit_count_) { 200 switch (commit_count_) {
201 case 1: 201 case 1:
202 // Remove SurfaceLayer from tree to cause SwapPromise to be created. 202 // Remove SurfaceLayer from tree to cause SwapPromise to be created.
203 layer_tree()->SetRootLayer(blank_layer_); 203 layer_tree()->SetRootLayer(blank_layer_);
204 break; 204 break;
205 case 2: 205 case 2:
206 EndTest();
206 break; 207 break;
207 default: 208 default:
208 NOTREACHED(); 209 NOTREACHED();
209 break; 210 break;
210 } 211 }
211 } 212 }
212 213
213 void DisplayReceivedCompositorFrameOnThread(
214 const CompositorFrame& frame) override {
215 const std::vector<uint32_t>& satisfied = frame.metadata.satisfies_sequences;
216 EXPECT_LE(satisfied.size(), 1u);
217 if (satisfied.size() == 1) {
218 // Eventually the one SurfaceSequence should be satisfied, but only
219 // after the layer was removed from the tree, and only once.
220 EXPECT_EQ(1u, satisfied[0]);
221 EXPECT_LE(1, commit_count_);
222 EXPECT_FALSE(sequence_was_satisfied_);
223 sequence_was_satisfied_ = true;
224 EndTest();
225 }
226 }
227
228 void AfterTest() override { 214 void AfterTest() override {
229 EXPECT_TRUE(required_id_ == SurfaceId(kArbitraryFrameSinkId, 215 EXPECT_TRUE(required_id_ == SurfaceId(kArbitraryFrameSinkId,
230 LocalFrameId(1, kArbitraryToken))); 216 LocalFrameId(1, kArbitraryToken)));
231 EXPECT_EQ(1u, required_set_.size()); 217 EXPECT_EQ(1u, required_set_.size());
232 // Sequence should have been satisfied through Swap, not with the 218 EXPECT_TRUE(satisfied_sequence_ ==
233 // callback. 219 SurfaceSequence(kArbitraryFrameSinkId, 1u));
234 EXPECT_FALSE(satisfied_sequence_.is_valid());
235 } 220 }
236 }; 221 };
237 222
238 SINGLE_AND_MULTI_THREAD_TEST_F(SurfaceLayerSwapPromiseWithDraw); 223 SINGLE_AND_MULTI_THREAD_TEST_F(SurfaceLayerSwapPromiseWithDraw);
239 224
240 // Check that SurfaceSequence is sent through swap promise and resolved when 225 // Check that SurfaceSequence is sent through swap promise and resolved when
241 // swap fails. 226 // swap fails.
242 class SurfaceLayerSwapPromiseWithoutDraw : public SurfaceLayerSwapPromise { 227 class SurfaceLayerSwapPromiseWithoutDraw : public SurfaceLayerSwapPromise {
243 public: 228 public:
244 SurfaceLayerSwapPromiseWithoutDraw() : SurfaceLayerSwapPromise() {} 229 SurfaceLayerSwapPromiseWithoutDraw() : SurfaceLayerSwapPromise() {}
(...skipping 17 matching lines...) Expand all
262 default: 247 default:
263 EndTest(); 248 EndTest();
264 break; 249 break;
265 } 250 }
266 } 251 }
267 252
268 void AfterTest() override { 253 void AfterTest() override {
269 EXPECT_TRUE(required_id_ == SurfaceId(kArbitraryFrameSinkId, 254 EXPECT_TRUE(required_id_ == SurfaceId(kArbitraryFrameSinkId,
270 LocalFrameId(1, kArbitraryToken))); 255 LocalFrameId(1, kArbitraryToken)));
271 EXPECT_EQ(1u, required_set_.size()); 256 EXPECT_EQ(1u, required_set_.size());
272 // Sequence should have been satisfied with the callback.
273 EXPECT_TRUE(satisfied_sequence_ == 257 EXPECT_TRUE(satisfied_sequence_ ==
274 SurfaceSequence(kArbitraryFrameSinkId, 1u)); 258 SurfaceSequence(kArbitraryFrameSinkId, 1u));
275 } 259 }
276 }; 260 };
277 261
278 MULTI_THREAD_TEST_F(SurfaceLayerSwapPromiseWithoutDraw); 262 MULTI_THREAD_TEST_F(SurfaceLayerSwapPromiseWithoutDraw);
279 263
280 } // namespace 264 } // namespace
281 } // namespace cc 265 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698