OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |