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

Side by Side Diff: cc/scheduler_unittest.cc

Issue 11830040: cc: Do not request redraw on commit when impl-side painting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@decouple_draw3
Patch Set: Use CC_EXPORT Created 7 years, 11 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/scheduler_state_machine_unittest.cc ('k') | cc/thread_proxy.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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/scheduler.h" 5 #include "cc/scheduler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "cc/test/scheduler_test_common.h" 8 #include "cc/test/scheduler_test_common.h"
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 bool m_drawWillHappen; 62 bool m_drawWillHappen;
63 bool m_swapWillHappenIfDrawHappens; 63 bool m_swapWillHappenIfDrawHappens;
64 int m_numDraws; 64 int m_numDraws;
65 std::vector<const char*> m_actions; 65 std::vector<const char*> m_actions;
66 }; 66 };
67 67
68 TEST(SchedulerTest, RequestCommit) 68 TEST(SchedulerTest, RequestCommit)
69 { 69 {
70 FakeSchedulerClient client; 70 FakeSchedulerClient client;
71 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 71 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
72 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 72 SchedulerSettings defaultSchedulerSettings;
73 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
73 scheduler->setCanBeginFrame(true); 74 scheduler->setCanBeginFrame(true);
74 scheduler->setVisible(true); 75 scheduler->setVisible(true);
75 scheduler->setCanDraw(true); 76 scheduler->setCanDraw(true);
76 77
77 // SetNeedsCommit should begin the frame. 78 // SetNeedsCommit should begin the frame.
78 scheduler->setNeedsCommit(); 79 scheduler->setNeedsCommit();
79 EXPECT_EQ(1, client.numActions()); 80 EXPECT_EQ(1, client.numActions());
80 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0)); 81 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0));
81 EXPECT_FALSE(timeSource->active()); 82 EXPECT_FALSE(timeSource->active());
82 client.reset(); 83 client.reset();
(...skipping 13 matching lines...) Expand all
96 client.reset(); 97 client.reset();
97 98
98 // Timer should be off. 99 // Timer should be off.
99 EXPECT_FALSE(timeSource->active()); 100 EXPECT_FALSE(timeSource->active());
100 } 101 }
101 102
102 TEST(SchedulerTest, RequestCommitAfterBeginFrame) 103 TEST(SchedulerTest, RequestCommitAfterBeginFrame)
103 { 104 {
104 FakeSchedulerClient client; 105 FakeSchedulerClient client;
105 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 106 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
106 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 107 SchedulerSettings defaultSchedulerSettings;
108 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
107 scheduler->setCanBeginFrame(true); 109 scheduler->setCanBeginFrame(true);
108 scheduler->setVisible(true); 110 scheduler->setVisible(true);
109 scheduler->setCanDraw(true); 111 scheduler->setCanDraw(true);
110 112
111 // SetNedsCommit should begin the frame. 113 // SetNedsCommit should begin the frame.
112 scheduler->setNeedsCommit(); 114 scheduler->setNeedsCommit();
113 EXPECT_EQ(1, client.numActions()); 115 EXPECT_EQ(1, client.numActions());
114 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0)); 116 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0));
115 client.reset(); 117 client.reset();
116 118
(...skipping 13 matching lines...) Expand all
130 EXPECT_EQ(2, client.numActions()); 132 EXPECT_EQ(2, client.numActions());
131 EXPECT_STREQ("scheduledActionDrawAndSwapIfPossible", client.action(0)); 133 EXPECT_STREQ("scheduledActionDrawAndSwapIfPossible", client.action(0));
132 EXPECT_STREQ("scheduledActionBeginFrame", client.action(1)); 134 EXPECT_STREQ("scheduledActionBeginFrame", client.action(1));
133 client.reset(); 135 client.reset();
134 } 136 }
135 137
136 TEST(SchedulerTest, TextureAcquisitionCollision) 138 TEST(SchedulerTest, TextureAcquisitionCollision)
137 { 139 {
138 FakeSchedulerClient client; 140 FakeSchedulerClient client;
139 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 141 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
140 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 142 SchedulerSettings defaultSchedulerSettings;
143 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
141 scheduler->setCanBeginFrame(true); 144 scheduler->setCanBeginFrame(true);
142 scheduler->setVisible(true); 145 scheduler->setVisible(true);
143 scheduler->setCanDraw(true); 146 scheduler->setCanDraw(true);
144 147
145 scheduler->setNeedsCommit(); 148 scheduler->setNeedsCommit();
146 scheduler->setMainThreadNeedsLayerTextures(); 149 scheduler->setMainThreadNeedsLayerTextures();
147 EXPECT_EQ(2, client.numActions()); 150 EXPECT_EQ(2, client.numActions());
148 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0)); 151 EXPECT_STREQ("scheduledActionBeginFrame", client.action(0));
149 EXPECT_STREQ("scheduledActionAcquireLayerTexturesForMainThread", client.acti on(1)); 152 EXPECT_STREQ("scheduledActionAcquireLayerTexturesForMainThread", client.acti on(1));
150 client.reset(); 153 client.reset();
(...skipping 18 matching lines...) Expand all
169 EXPECT_STREQ("scheduledActionDrawAndSwapIfPossible", client.action(0)); 172 EXPECT_STREQ("scheduledActionDrawAndSwapIfPossible", client.action(0));
170 EXPECT_STREQ("scheduledActionAcquireLayerTexturesForMainThread", client.acti on(1)); 173 EXPECT_STREQ("scheduledActionAcquireLayerTexturesForMainThread", client.acti on(1));
171 EXPECT_STREQ("scheduledActionBeginFrame", client.action(2)); 174 EXPECT_STREQ("scheduledActionBeginFrame", client.action(2));
172 client.reset(); 175 client.reset();
173 } 176 }
174 177
175 TEST(SchedulerTest, VisibilitySwitchWithTextureAcquisition) 178 TEST(SchedulerTest, VisibilitySwitchWithTextureAcquisition)
176 { 179 {
177 FakeSchedulerClient client; 180 FakeSchedulerClient client;
178 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 181 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
179 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 182 SchedulerSettings defaultSchedulerSettings;
183 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
180 scheduler->setCanBeginFrame(true); 184 scheduler->setCanBeginFrame(true);
181 scheduler->setVisible(true); 185 scheduler->setVisible(true);
182 scheduler->setCanDraw(true); 186 scheduler->setCanDraw(true);
183 187
184 scheduler->setNeedsCommit(); 188 scheduler->setNeedsCommit();
185 scheduler->beginFrameComplete(); 189 scheduler->beginFrameComplete();
186 scheduler->setMainThreadNeedsLayerTextures(); 190 scheduler->setMainThreadNeedsLayerTextures();
187 client.reset(); 191 client.reset();
188 // Verify that pending texture acquisition fires when visibility 192 // Verify that pending texture acquisition fires when visibility
189 // is lost in order to avoid a deadlock. 193 // is lost in order to avoid a deadlock.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 }; 236 };
233 237
234 // Tests for two different situations: 238 // Tests for two different situations:
235 // 1. the scheduler dropping setNeedsRedraw requests that happen inside 239 // 1. the scheduler dropping setNeedsRedraw requests that happen inside
236 // a scheduledActionDrawAndSwap 240 // a scheduledActionDrawAndSwap
237 // 2. the scheduler drawing twice inside a single tick 241 // 2. the scheduler drawing twice inside a single tick
238 TEST(SchedulerTest, RequestRedrawInsideDraw) 242 TEST(SchedulerTest, RequestRedrawInsideDraw)
239 { 243 {
240 SchedulerClientThatSetNeedsDrawInsideDraw client; 244 SchedulerClientThatSetNeedsDrawInsideDraw client;
241 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 245 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
242 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 246 SchedulerSettings defaultSchedulerSettings;
247 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
243 client.setScheduler(scheduler.get()); 248 client.setScheduler(scheduler.get());
244 scheduler->setCanBeginFrame(true); 249 scheduler->setCanBeginFrame(true);
245 scheduler->setVisible(true); 250 scheduler->setVisible(true);
246 scheduler->setCanDraw(true); 251 scheduler->setCanDraw(true);
247 252
248 scheduler->setNeedsRedraw(); 253 scheduler->setNeedsRedraw();
249 EXPECT_TRUE(scheduler->redrawPending()); 254 EXPECT_TRUE(scheduler->redrawPending());
250 EXPECT_TRUE(timeSource->active()); 255 EXPECT_TRUE(timeSource->active());
251 EXPECT_EQ(0, client.numDraws()); 256 EXPECT_EQ(0, client.numDraws());
252 257
253 timeSource->tick(); 258 timeSource->tick();
254 EXPECT_EQ(1, client.numDraws()); 259 EXPECT_EQ(1, client.numDraws());
255 EXPECT_TRUE(scheduler->redrawPending()); 260 EXPECT_TRUE(scheduler->redrawPending());
256 EXPECT_TRUE(timeSource->active()); 261 EXPECT_TRUE(timeSource->active());
257 262
258 timeSource->tick(); 263 timeSource->tick();
259 EXPECT_EQ(2, client.numDraws()); 264 EXPECT_EQ(2, client.numDraws());
260 EXPECT_FALSE(scheduler->redrawPending()); 265 EXPECT_FALSE(scheduler->redrawPending());
261 EXPECT_FALSE(timeSource->active()); 266 EXPECT_FALSE(timeSource->active());
262 } 267 }
263 268
264 // Test that requesting redraw inside a failed draw doesn't lose the request. 269 // Test that requesting redraw inside a failed draw doesn't lose the request.
265 TEST(SchedulerTest, RequestRedrawInsideFailedDraw) 270 TEST(SchedulerTest, RequestRedrawInsideFailedDraw)
266 { 271 {
267 SchedulerClientThatSetNeedsDrawInsideDraw client; 272 SchedulerClientThatSetNeedsDrawInsideDraw client;
268 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 273 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
269 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 274 SchedulerSettings defaultSchedulerSettings;
275 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
270 client.setScheduler(scheduler.get()); 276 client.setScheduler(scheduler.get());
271 scheduler->setCanBeginFrame(true); 277 scheduler->setCanBeginFrame(true);
272 scheduler->setVisible(true); 278 scheduler->setVisible(true);
273 scheduler->setCanDraw(true); 279 scheduler->setCanDraw(true);
274 client.setDrawWillHappen(false); 280 client.setDrawWillHappen(false);
275 281
276 scheduler->setNeedsRedraw(); 282 scheduler->setNeedsRedraw();
277 EXPECT_TRUE(scheduler->redrawPending()); 283 EXPECT_TRUE(scheduler->redrawPending());
278 EXPECT_TRUE(timeSource->active()); 284 EXPECT_TRUE(timeSource->active());
279 EXPECT_EQ(0, client.numDraws()); 285 EXPECT_EQ(0, client.numDraws());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 protected: 338 protected:
333 Scheduler* m_scheduler; 339 Scheduler* m_scheduler;
334 }; 340 };
335 341
336 // Tests for the scheduler infinite-looping on setNeedsCommit requests that 342 // Tests for the scheduler infinite-looping on setNeedsCommit requests that
337 // happen inside a scheduledActionDrawAndSwap 343 // happen inside a scheduledActionDrawAndSwap
338 TEST(SchedulerTest, RequestCommitInsideDraw) 344 TEST(SchedulerTest, RequestCommitInsideDraw)
339 { 345 {
340 SchedulerClientThatSetNeedsCommitInsideDraw client; 346 SchedulerClientThatSetNeedsCommitInsideDraw client;
341 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 347 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
342 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 348 SchedulerSettings defaultSchedulerSettings;
349 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
343 client.setScheduler(scheduler.get()); 350 client.setScheduler(scheduler.get());
344 scheduler->setCanBeginFrame(true); 351 scheduler->setCanBeginFrame(true);
345 scheduler->setVisible(true); 352 scheduler->setVisible(true);
346 scheduler->setCanDraw(true); 353 scheduler->setCanDraw(true);
347 354
348 scheduler->setNeedsRedraw(); 355 scheduler->setNeedsRedraw();
349 EXPECT_TRUE(scheduler->redrawPending()); 356 EXPECT_TRUE(scheduler->redrawPending());
350 EXPECT_EQ(0, client.numDraws()); 357 EXPECT_EQ(0, client.numDraws());
351 EXPECT_TRUE(timeSource->active()); 358 EXPECT_TRUE(timeSource->active());
352 359
353 timeSource->tick(); 360 timeSource->tick();
354 EXPECT_FALSE(timeSource->active()); 361 EXPECT_FALSE(timeSource->active());
355 EXPECT_EQ(1, client.numDraws()); 362 EXPECT_EQ(1, client.numDraws());
356 EXPECT_TRUE(scheduler->commitPending()); 363 EXPECT_TRUE(scheduler->commitPending());
357 scheduler->beginFrameComplete(); 364 scheduler->beginFrameComplete();
358 365
359 timeSource->tick(); 366 timeSource->tick();
360 EXPECT_EQ(2, client.numDraws()); 367 EXPECT_EQ(2, client.numDraws());
361 EXPECT_FALSE(timeSource->active()); 368 EXPECT_FALSE(timeSource->active());
362 EXPECT_FALSE(scheduler->redrawPending()); 369 EXPECT_FALSE(scheduler->redrawPending());
363 } 370 }
364 371
365 // Tests that when a draw fails then the pending commit should not be dropped. 372 // Tests that when a draw fails then the pending commit should not be dropped.
366 TEST(SchedulerTest, RequestCommitInsideFailedDraw) 373 TEST(SchedulerTest, RequestCommitInsideFailedDraw)
367 { 374 {
368 SchedulerClientThatSetNeedsDrawInsideDraw client; 375 SchedulerClientThatSetNeedsDrawInsideDraw client;
369 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 376 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
370 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource))); 377 SchedulerSettings defaultSchedulerSettings;
378 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, make_scoped_ptr (new FrameRateController(timeSource)), defaultSchedulerSettings);
371 client.setScheduler(scheduler.get()); 379 client.setScheduler(scheduler.get());
372 scheduler->setCanBeginFrame(true); 380 scheduler->setCanBeginFrame(true);
373 scheduler->setVisible(true); 381 scheduler->setVisible(true);
374 scheduler->setCanDraw(true); 382 scheduler->setCanDraw(true);
375 client.setDrawWillHappen(false); 383 client.setDrawWillHappen(false);
376 384
377 scheduler->setNeedsRedraw(); 385 scheduler->setNeedsRedraw();
378 EXPECT_TRUE(scheduler->redrawPending()); 386 EXPECT_TRUE(scheduler->redrawPending());
379 EXPECT_TRUE(timeSource->active()); 387 EXPECT_TRUE(timeSource->active());
380 EXPECT_EQ(0, client.numDraws()); 388 EXPECT_EQ(0, client.numDraws());
(...skipping 22 matching lines...) Expand all
403 EXPECT_FALSE(scheduler->redrawPending()); 411 EXPECT_FALSE(scheduler->redrawPending());
404 EXPECT_FALSE(timeSource->active()); 412 EXPECT_FALSE(timeSource->active());
405 } 413 }
406 414
407 TEST(SchedulerTest, NoBeginFrameWhenDrawFails) 415 TEST(SchedulerTest, NoBeginFrameWhenDrawFails)
408 { 416 {
409 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 417 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
410 SchedulerClientThatSetNeedsCommitInsideDraw client; 418 SchedulerClientThatSetNeedsCommitInsideDraw client;
411 scoped_ptr<FakeFrameRateController> controller(new FakeFrameRateController(t imeSource)); 419 scoped_ptr<FakeFrameRateController> controller(new FakeFrameRateController(t imeSource));
412 FakeFrameRateController* controllerPtr = controller.get(); 420 FakeFrameRateController* controllerPtr = controller.get();
413 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, controller.Pass As<FrameRateController>()); 421 SchedulerSettings defaultSchedulerSettings;
422 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, controller.Pass As<FrameRateController>(), defaultSchedulerSettings);
414 client.setScheduler(scheduler.get()); 423 client.setScheduler(scheduler.get());
415 scheduler->setCanBeginFrame(true); 424 scheduler->setCanBeginFrame(true);
416 scheduler->setVisible(true); 425 scheduler->setVisible(true);
417 scheduler->setCanDraw(true); 426 scheduler->setCanDraw(true);
418 427
419 EXPECT_EQ(0, controllerPtr->numFramesPending()); 428 EXPECT_EQ(0, controllerPtr->numFramesPending());
420 429
421 scheduler->setNeedsRedraw(); 430 scheduler->setNeedsRedraw();
422 EXPECT_TRUE(scheduler->redrawPending()); 431 EXPECT_TRUE(scheduler->redrawPending());
423 EXPECT_TRUE(timeSource->active()); 432 EXPECT_TRUE(timeSource->active());
(...skipping 16 matching lines...) Expand all
440 EXPECT_EQ(2, client.numDraws()); 449 EXPECT_EQ(2, client.numDraws());
441 EXPECT_EQ(0, controllerPtr->numFramesPending()); 450 EXPECT_EQ(0, controllerPtr->numFramesPending());
442 } 451 }
443 452
444 TEST(SchedulerTest, NoBeginFrameWhenSwapFailsDuringForcedCommit) 453 TEST(SchedulerTest, NoBeginFrameWhenSwapFailsDuringForcedCommit)
445 { 454 {
446 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource()); 455 scoped_refptr<FakeTimeSource> timeSource(new FakeTimeSource());
447 FakeSchedulerClient client; 456 FakeSchedulerClient client;
448 scoped_ptr<FakeFrameRateController> controller(new FakeFrameRateController(t imeSource)); 457 scoped_ptr<FakeFrameRateController> controller(new FakeFrameRateController(t imeSource));
449 FakeFrameRateController* controllerPtr = controller.get(); 458 FakeFrameRateController* controllerPtr = controller.get();
450 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, controller.Pass As<FrameRateController>()); 459 SchedulerSettings defaultSchedulerSettings;
460 scoped_ptr<Scheduler> scheduler = Scheduler::create(&client, controller.Pass As<FrameRateController>(), defaultSchedulerSettings);
451 461
452 EXPECT_EQ(0, controllerPtr->numFramesPending()); 462 EXPECT_EQ(0, controllerPtr->numFramesPending());
453 463
454 // Tell the client that it will fail to swap. 464 // Tell the client that it will fail to swap.
455 client.setDrawWillHappen(true); 465 client.setDrawWillHappen(true);
456 client.setSwapWillHappenIfDrawHappens(false); 466 client.setSwapWillHappenIfDrawHappens(false);
457 467
458 // Get the compositor to do a scheduledActionDrawAndSwapForced. 468 // Get the compositor to do a scheduledActionDrawAndSwapForced.
459 scheduler->setNeedsRedraw(); 469 scheduler->setNeedsRedraw();
460 scheduler->setNeedsForcedRedraw(); 470 scheduler->setNeedsForcedRedraw();
461 EXPECT_TRUE(client.hasAction("scheduledActionDrawAndSwapForced")); 471 EXPECT_TRUE(client.hasAction("scheduledActionDrawAndSwapForced"));
462 472
463 // We should not have told the frame rate controller that we began a frame. 473 // We should not have told the frame rate controller that we began a frame.
464 EXPECT_EQ(0, controllerPtr->numFramesPending()); 474 EXPECT_EQ(0, controllerPtr->numFramesPending());
465 } 475 }
466 476
467 } // namespace 477 } // namespace
468 } // namespace cc 478 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler_state_machine_unittest.cc ('k') | cc/thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698