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/scheduler.h" | 5 #include "cc/scheduler/scheduler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 scheduler->SetVisible(true); | 377 scheduler->SetVisible(true); |
378 scheduler->SetCanDraw(true); | 378 scheduler->SetCanDraw(true); |
379 | 379 |
380 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); | 380 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
381 InitializeOutputSurfaceAndFirstCommit(scheduler, &client); | 381 InitializeOutputSurfaceAndFirstCommit(scheduler, &client); |
382 | 382 |
383 client.Reset(); | 383 client.Reset(); |
384 EXPECT_FALSE(client.begin_frame_is_sent_to_children()); | 384 EXPECT_FALSE(client.begin_frame_is_sent_to_children()); |
385 scheduler->SetNeedsCommit(); | 385 scheduler->SetNeedsCommit(); |
386 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client); | 386 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client); |
387 client.Reset(); | 387 EXPECT_TRUE(client.needs_begin_frames()); |
388 | 388 |
389 scheduler->SetChildrenNeedBeginFrames(true); | 389 scheduler->SetChildrenNeedBeginFrames(true); |
390 | 390 |
| 391 client.Reset(); |
391 client.AdvanceFrame(); | 392 client.AdvanceFrame(); |
392 EXPECT_TRUE(client.begin_frame_is_sent_to_children()); | 393 EXPECT_TRUE(client.begin_frame_is_sent_to_children()); |
393 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); | 394 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
394 EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); | 395 EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
395 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); | 396 EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); |
396 EXPECT_TRUE(client.needs_begin_frames()); | 397 EXPECT_TRUE(client.needs_begin_frames()); |
| 398 } |
| 399 |
| 400 TEST(SchedulerTest, SendBeginFramesToChildrenWithoutCommit) { |
| 401 FakeSchedulerClient client; |
| 402 SchedulerSettings scheduler_settings; |
| 403 scheduler_settings.use_external_begin_frame_source = true; |
| 404 scheduler_settings.forward_begin_frames_to_children = true; |
| 405 TestScheduler* scheduler = client.CreateScheduler(scheduler_settings); |
| 406 scheduler->SetCanStart(); |
| 407 scheduler->SetVisible(true); |
| 408 scheduler->SetCanDraw(true); |
| 409 |
| 410 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
| 411 InitializeOutputSurfaceAndFirstCommit(scheduler, &client); |
| 412 |
397 client.Reset(); | 413 client.Reset(); |
| 414 EXPECT_FALSE(client.needs_begin_frames()); |
| 415 |
| 416 scheduler->SetChildrenNeedBeginFrames(true); |
| 417 EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client); |
| 418 EXPECT_TRUE(client.needs_begin_frames()); |
| 419 |
| 420 client.Reset(); |
| 421 client.AdvanceFrame(); |
| 422 EXPECT_TRUE(client.begin_frame_is_sent_to_children()); |
398 } | 423 } |
399 | 424 |
400 TEST(SchedulerTest, RequestCommit) { | 425 TEST(SchedulerTest, RequestCommit) { |
401 FakeSchedulerClient client; | 426 FakeSchedulerClient client; |
402 SchedulerSettings scheduler_settings; | 427 SchedulerSettings scheduler_settings; |
403 scheduler_settings.use_external_begin_frame_source = true; | 428 scheduler_settings.use_external_begin_frame_source = true; |
404 TestScheduler* scheduler = client.CreateScheduler(scheduler_settings); | 429 TestScheduler* scheduler = client.CreateScheduler(scheduler_settings); |
405 scheduler->SetCanStart(); | 430 scheduler->SetCanStart(); |
406 scheduler->SetVisible(true); | 431 scheduler->SetVisible(true); |
407 scheduler->SetCanDraw(true); | 432 scheduler->SetCanDraw(true); |
(...skipping 1871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2279 | 2304 |
2280 // Deadline task is pending | 2305 // Deadline task is pending |
2281 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); | 2306 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
2282 client.task_runner().RunPendingTasks(); | 2307 client.task_runner().RunPendingTasks(); |
2283 // Deadline task runs immediately | 2308 // Deadline task runs immediately |
2284 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); | 2309 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
2285 } | 2310 } |
2286 | 2311 |
2287 } // namespace | 2312 } // namespace |
2288 } // namespace cc | 2313 } // namespace cc |
OLD | NEW |