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

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

Issue 2388753003: Introduce cc::LocalFrameId and use in SurfaceFactory (Closed)
Patch Set: Fix exo_unittests Created 4 years, 2 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/display_scheduler.h" 5 #include "cc/surfaces/display_scheduler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/test/null_task_runner.h" 8 #include "base/test/null_task_runner.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 99
100 FakeExternalBeginFrameSource fake_begin_frame_source_; 100 FakeExternalBeginFrameSource fake_begin_frame_source_;
101 101
102 base::SimpleTestTickClock now_src_; 102 base::SimpleTestTickClock now_src_;
103 scoped_refptr<base::NullTaskRunner> task_runner_; 103 scoped_refptr<base::NullTaskRunner> task_runner_;
104 FakeDisplaySchedulerClient client_; 104 FakeDisplaySchedulerClient client_;
105 TestDisplayScheduler scheduler_; 105 TestDisplayScheduler scheduler_;
106 }; 106 };
107 107
108 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) { 108 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) {
109 SurfaceId root_surface_id1(kArbitraryFrameSinkId, 1, 0); 109 SurfaceId root_surface_id1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
110 SurfaceId root_surface_id2(kArbitraryFrameSinkId, 2, 0); 110 SurfaceId root_surface_id2(kArbitraryFrameSinkId, LocalFrameId(2, 0));
111 SurfaceId sid1(kArbitraryFrameSinkId, 3, 0); 111 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(3, 0));
112 base::TimeTicks late_deadline; 112 base::TimeTicks late_deadline;
113 113
114 scheduler_.SetVisible(true); 114 scheduler_.SetVisible(true);
115 115
116 // Go trough an initial BeginFrame cycle with the root surface. 116 // Go trough an initial BeginFrame cycle with the root surface.
117 BeginFrameForTest(); 117 BeginFrameForTest();
118 scheduler_.SetNewRootSurface(root_surface_id1); 118 scheduler_.SetNewRootSurface(root_surface_id1);
119 scheduler_.BeginFrameDeadlineForTest(); 119 scheduler_.BeginFrameDeadlineForTest();
120 120
121 // Resize on the next begin frame cycle should cause the deadline to wait 121 // Resize on the next begin frame cycle should cause the deadline to wait
(...skipping 14 matching lines...) Expand all
136 BeginFrameForTest(); 136 BeginFrameForTest();
137 scheduler_.SurfaceDamaged(sid1); 137 scheduler_.SurfaceDamaged(sid1);
138 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 138 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest());
139 scheduler_.SurfaceDamaged(root_surface_id2); 139 scheduler_.SurfaceDamaged(root_surface_id2);
140 EXPECT_GE(now_src().NowTicks(), 140 EXPECT_GE(now_src().NowTicks(),
141 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 141 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
142 scheduler_.BeginFrameDeadlineForTest(); 142 scheduler_.BeginFrameDeadlineForTest();
143 } 143 }
144 144
145 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilDamagedSurface) { 145 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilDamagedSurface) {
146 SurfaceId root_surface_id(kArbitraryFrameSinkId, 1, 0); 146 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(1, 0));
147 SurfaceId sid1(kArbitraryFrameSinkId, 2, 0); 147 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(2, 0));
148 base::TimeTicks late_deadline; 148 base::TimeTicks late_deadline;
149 149
150 scheduler_.SetVisible(true); 150 scheduler_.SetVisible(true);
151 151
152 // Go trough an initial BeginFrame cycle with the root surface. 152 // Go trough an initial BeginFrame cycle with the root surface.
153 BeginFrameForTest(); 153 BeginFrameForTest();
154 scheduler_.SetNewRootSurface(root_surface_id); 154 scheduler_.SetNewRootSurface(root_surface_id);
155 scheduler_.BeginFrameDeadlineForTest(); 155 scheduler_.BeginFrameDeadlineForTest();
156 156
157 // Resize on the next begin frame cycle should cause the deadline to wait 157 // Resize on the next begin frame cycle should cause the deadline to wait
(...skipping 14 matching lines...) Expand all
172 BeginFrameForTest(); 172 BeginFrameForTest();
173 scheduler_.SurfaceDamaged(sid1); 173 scheduler_.SurfaceDamaged(sid1);
174 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 174 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest());
175 scheduler_.SurfaceDamaged(root_surface_id); 175 scheduler_.SurfaceDamaged(root_surface_id);
176 EXPECT_GE(now_src().NowTicks(), 176 EXPECT_GE(now_src().NowTicks(),
177 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 177 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
178 scheduler_.BeginFrameDeadlineForTest(); 178 scheduler_.BeginFrameDeadlineForTest();
179 } 179 }
180 180
181 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { 181 TEST_F(DisplaySchedulerTest, SurfaceDamaged) {
182 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 182 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
183 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 183 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
184 SurfaceId sid2(kArbitraryFrameSinkId, 2, 0); 184 SurfaceId sid2(kArbitraryFrameSinkId, LocalFrameId(2, 0));
185 185
186 scheduler_.SetVisible(true); 186 scheduler_.SetVisible(true);
187 187
188 // Set the root surface 188 // Set the root surface
189 scheduler_.SetNewRootSurface(root_surface_id); 189 scheduler_.SetNewRootSurface(root_surface_id);
190 190
191 // Get scheduler to detect surface 1 as active by drawing 191 // Get scheduler to detect surface 1 as active by drawing
192 // two frames in a row with damage from surface 1. 192 // two frames in a row with damage from surface 1.
193 BeginFrameForTest(); 193 BeginFrameForTest();
194 scheduler_.SurfaceDamaged(sid1); 194 scheduler_.SurfaceDamaged(sid1);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 BeginFrameForTest(); 238 BeginFrameForTest();
239 EXPECT_LT(now_src().NowTicks(), 239 EXPECT_LT(now_src().NowTicks(),
240 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 240 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
241 scheduler_.SurfaceDamaged(root_surface_id); 241 scheduler_.SurfaceDamaged(root_surface_id);
242 EXPECT_GE(now_src().NowTicks(), 242 EXPECT_GE(now_src().NowTicks(),
243 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 243 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
244 scheduler_.BeginFrameDeadlineForTest(); 244 scheduler_.BeginFrameDeadlineForTest();
245 } 245 }
246 246
247 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { 247 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) {
248 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 248 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
249 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 249 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
250 250
251 scheduler_.SetVisible(true); 251 scheduler_.SetVisible(true);
252 252
253 // Set the root surface 253 // Set the root surface
254 scheduler_.SetNewRootSurface(root_surface_id); 254 scheduler_.SetNewRootSurface(root_surface_id);
255 255
256 // DrawAndSwap normally. 256 // DrawAndSwap normally.
257 BeginFrameForTest(); 257 BeginFrameForTest();
258 EXPECT_LT(now_src().NowTicks(), 258 EXPECT_LT(now_src().NowTicks(),
259 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 259 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
(...skipping 11 matching lines...) Expand all
271 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 271 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
272 272
273 // Deadline does not DrawAndSwap after OutputSurfaceLost. 273 // Deadline does not DrawAndSwap after OutputSurfaceLost.
274 EXPECT_EQ(1, client_.draw_and_swap_count()); 274 EXPECT_EQ(1, client_.draw_and_swap_count());
275 scheduler_.SurfaceDamaged(sid1); 275 scheduler_.SurfaceDamaged(sid1);
276 scheduler_.BeginFrameDeadlineForTest(); 276 scheduler_.BeginFrameDeadlineForTest();
277 EXPECT_EQ(1, client_.draw_and_swap_count()); 277 EXPECT_EQ(1, client_.draw_and_swap_count());
278 } 278 }
279 279
280 TEST_F(DisplaySchedulerTest, VisibleWithoutDamageNoTicks) { 280 TEST_F(DisplaySchedulerTest, VisibleWithoutDamageNoTicks) {
281 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 281 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
282 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 282 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
283 283
284 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); 284 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers());
285 scheduler_.SetVisible(true); 285 scheduler_.SetVisible(true);
286 286
287 // When becoming visible, don't start listening for begin frames until there 287 // When becoming visible, don't start listening for begin frames until there
288 // is some damage. 288 // is some damage.
289 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); 289 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers());
290 scheduler_.SetNewRootSurface(root_surface_id); 290 scheduler_.SetNewRootSurface(root_surface_id);
291 291
292 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); 292 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers());
293 } 293 }
294 294
295 TEST_F(DisplaySchedulerTest, VisibleWithDamageTicks) { 295 TEST_F(DisplaySchedulerTest, VisibleWithDamageTicks) {
296 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 296 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
297 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 297 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
298 298
299 scheduler_.SetNewRootSurface(root_surface_id); 299 scheduler_.SetNewRootSurface(root_surface_id);
300 300
301 // When there is damage, start listening for begin frames once becoming 301 // When there is damage, start listening for begin frames once becoming
302 // visible. 302 // visible.
303 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); 303 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers());
304 scheduler_.SetVisible(true); 304 scheduler_.SetVisible(true);
305 305
306 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); 306 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers());
307 } 307 }
308 308
309 TEST_F(DisplaySchedulerTest, Visibility) { 309 TEST_F(DisplaySchedulerTest, Visibility) {
310 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 310 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
311 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 311 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
312 312
313 scheduler_.SetNewRootSurface(root_surface_id); 313 scheduler_.SetNewRootSurface(root_surface_id);
314 scheduler_.SetVisible(true); 314 scheduler_.SetVisible(true);
315 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); 315 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers());
316 316
317 // DrawAndSwap normally. 317 // DrawAndSwap normally.
318 BeginFrameForTest(); 318 BeginFrameForTest();
319 EXPECT_LT(now_src().NowTicks(), 319 EXPECT_LT(now_src().NowTicks(),
320 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 320 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
321 EXPECT_EQ(0, client_.draw_and_swap_count()); 321 EXPECT_EQ(0, client_.draw_and_swap_count());
(...skipping 27 matching lines...) Expand all
349 // Does not start listening for begin frames when damage arrives. 349 // Does not start listening for begin frames when damage arrives.
350 scheduler_.SurfaceDamaged(sid1); 350 scheduler_.SurfaceDamaged(sid1);
351 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); 351 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers());
352 352
353 // But does when becoming visible with damage again. 353 // But does when becoming visible with damage again.
354 scheduler_.SetVisible(true); 354 scheduler_.SetVisible(true);
355 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); 355 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers());
356 } 356 }
357 357
358 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) { 358 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) {
359 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 359 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
360 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 360 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
361 361
362 scheduler_.SetVisible(true); 362 scheduler_.SetVisible(true);
363 363
364 // Set the root surface 364 // Set the root surface
365 scheduler_.SetNewRootSurface(root_surface_id); 365 scheduler_.SetNewRootSurface(root_surface_id);
366 366
367 // DrawAndSwap normally. 367 // DrawAndSwap normally.
368 BeginFrameForTest(); 368 BeginFrameForTest();
369 EXPECT_LT(now_src().NowTicks(), 369 EXPECT_LT(now_src().NowTicks(),
370 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 370 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
371 EXPECT_EQ(0, client_.draw_and_swap_count()); 371 EXPECT_EQ(0, client_.draw_and_swap_count());
372 scheduler_.SurfaceDamaged(sid1); 372 scheduler_.SurfaceDamaged(sid1);
373 scheduler_.BeginFrameDeadlineForTest(); 373 scheduler_.BeginFrameDeadlineForTest();
374 EXPECT_EQ(1, client_.draw_and_swap_count()); 374 EXPECT_EQ(1, client_.draw_and_swap_count());
375 375
376 scheduler_.DisplayResized(); 376 scheduler_.DisplayResized();
377 BeginFrameForTest(); 377 BeginFrameForTest();
378 // DisplayResized should trigger a swap to happen. 378 // DisplayResized should trigger a swap to happen.
379 scheduler_.BeginFrameDeadlineForTest(); 379 scheduler_.BeginFrameDeadlineForTest();
380 EXPECT_EQ(2, client_.draw_and_swap_count()); 380 EXPECT_EQ(2, client_.draw_and_swap_count());
381 } 381 }
382 382
383 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { 383 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) {
384 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 384 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
385 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 385 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
386 base::TimeTicks late_deadline; 386 base::TimeTicks late_deadline;
387 387
388 scheduler_.SetVisible(true); 388 scheduler_.SetVisible(true);
389 389
390 // Set the root surface 390 // Set the root surface
391 scheduler_.SetNewRootSurface(root_surface_id); 391 scheduler_.SetNewRootSurface(root_surface_id);
392 392
393 // DrawAndSwap normally. 393 // DrawAndSwap normally.
394 BeginFrameForTest(); 394 BeginFrameForTest();
395 EXPECT_LT(now_src().NowTicks(), 395 EXPECT_LT(now_src().NowTicks(),
(...skipping 26 matching lines...) Expand all
422 scheduler_.SurfaceDamaged(root_surface_id); 422 scheduler_.SurfaceDamaged(root_surface_id);
423 EXPECT_EQ(base::TimeTicks(), 423 EXPECT_EQ(base::TimeTicks(),
424 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); 424 scheduler_.DesiredBeginFrameDeadlineTimeForTest());
425 425
426 EXPECT_EQ(1, client_.draw_and_swap_count()); 426 EXPECT_EQ(1, client_.draw_and_swap_count());
427 scheduler_.BeginFrameDeadlineForTest(); 427 scheduler_.BeginFrameDeadlineForTest();
428 EXPECT_EQ(2, client_.draw_and_swap_count()); 428 EXPECT_EQ(2, client_.draw_and_swap_count());
429 } 429 }
430 430
431 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { 431 TEST_F(DisplaySchedulerTest, DidSwapBuffers) {
432 SurfaceId root_surface_id(kArbitraryFrameSinkId, 0, 0); 432 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(0, 0));
433 SurfaceId sid1(kArbitraryFrameSinkId, 1, 0); 433 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(1, 0));
434 SurfaceId sid2(kArbitraryFrameSinkId, 2, 0); 434 SurfaceId sid2(kArbitraryFrameSinkId, LocalFrameId(2, 0));
435 435
436 scheduler_.SetVisible(true); 436 scheduler_.SetVisible(true);
437 437
438 // Set the root surface 438 // Set the root surface
439 scheduler_.SetNewRootSurface(root_surface_id); 439 scheduler_.SetNewRootSurface(root_surface_id);
440 440
441 // Get scheduler to detect surface 1 and 2 as active. 441 // Get scheduler to detect surface 1 and 2 as active.
442 BeginFrameForTest(); 442 BeginFrameForTest();
443 scheduler_.SurfaceDamaged(sid1); 443 scheduler_.SurfaceDamaged(sid1);
444 scheduler_.SurfaceDamaged(sid2); 444 scheduler_.SurfaceDamaged(sid2);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 base::TimeTicks()); 489 base::TimeTicks());
490 // Draw and swap now that we aren't throttled. 490 // Draw and swap now that we aren't throttled.
491 EXPECT_EQ(3, client_.draw_and_swap_count()); 491 EXPECT_EQ(3, client_.draw_and_swap_count());
492 scheduler_.BeginFrameDeadlineForTest(); 492 scheduler_.BeginFrameDeadlineForTest();
493 EXPECT_EQ(4, client_.draw_and_swap_count()); 493 EXPECT_EQ(4, client_.draw_and_swap_count());
494 } 494 }
495 495
496 // This test verfies that we try to reschedule the deadline 496 // This test verfies that we try to reschedule the deadline
497 // after any event that may change what deadline we want. 497 // after any event that may change what deadline we want.
498 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) { 498 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) {
499 SurfaceId root_surface_id(kArbitraryFrameSinkId, 1, 0); 499 SurfaceId root_surface_id(kArbitraryFrameSinkId, LocalFrameId(1, 0));
500 SurfaceId sid1(kArbitraryFrameSinkId, 2, 0); 500 SurfaceId sid1(kArbitraryFrameSinkId, LocalFrameId(2, 0));
501 int count = 1; 501 int count = 1;
502 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); 502 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count());
503 503
504 scheduler_.SetVisible(true); 504 scheduler_.SetVisible(true);
505 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); 505 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count());
506 506
507 scheduler_.SetVisible(true); 507 scheduler_.SetVisible(true);
508 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); 508 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count());
509 509
510 scheduler_.SetVisible(false); 510 scheduler_.SetVisible(false);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 543
544 scheduler_.SetRootSurfaceResourcesLocked(true); 544 scheduler_.SetRootSurfaceResourcesLocked(true);
545 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); 545 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count());
546 546
547 scheduler_.OutputSurfaceLost(); 547 scheduler_.OutputSurfaceLost();
548 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); 548 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count());
549 } 549 }
550 550
551 } // namespace 551 } // namespace
552 } // namespace cc 552 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698