| Index: cc/scheduler/scheduler_unittest.cc
|
| diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc
|
| index 916386094f794eece1792c150d40113771706acd..106cbd40fd5ad643a89e21cccdb341f948383ae3 100644
|
| --- a/cc/scheduler/scheduler_unittest.cc
|
| +++ b/cc/scheduler/scheduler_unittest.cc
|
| @@ -372,15 +372,13 @@
|
| }
|
| }
|
|
|
| - BeginFrameArgs SendNextBeginFrame() {
|
| + void SendNextBeginFrame() {
|
| DCHECK(scheduler_->settings().use_external_begin_frame_source);
|
| // Creep the time forward so that any BeginFrameArgs is not equal to the
|
| // last one otherwise we violate the BeginFrameSource contract.
|
| now_src_->AdvanceNow(BeginFrameArgs::DefaultInterval());
|
| - BeginFrameArgs args =
|
| - CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now_src());
|
| - fake_external_begin_frame_source_->TestOnBeginFrame(args);
|
| - return args;
|
| + fake_external_begin_frame_source_->TestOnBeginFrame(
|
| + CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now_src()));
|
| }
|
|
|
| FakeExternalBeginFrameSource* fake_external_begin_frame_source() const {
|
| @@ -1548,7 +1546,7 @@
|
| scheduler_->NotifyBeginMainFrameStarted();
|
|
|
| client_->Reset();
|
| - BeginFrameArgs retro_frame_args = SendNextBeginFrame();
|
| + SendNextBeginFrame();
|
| // This BeginFrame is queued up as a retro frame.
|
| EXPECT_NO_ACTION(client_);
|
| // The previous deadline is still pending.
|
| @@ -1572,8 +1570,10 @@
|
| scheduler_->SetNeedsRedraw();
|
| EXPECT_NO_ACTION(client_);
|
|
|
| - // Let's advance to the retro frame's deadline.
|
| - now_src()->AdvanceNow(retro_frame_args.deadline - now_src()->Now());
|
| + // Let's advance sufficiently past the next frame's deadline.
|
| + now_src()->AdvanceNow(BeginFrameArgs::DefaultInterval() -
|
| + BeginFrameArgs::DefaultEstimatedParentDrawTime() +
|
| + base::TimeDelta::FromMicroseconds(1));
|
|
|
| // The retro frame hasn't expired yet.
|
| task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(false));
|
| @@ -1588,7 +1588,7 @@
|
| EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_);
|
| }
|
|
|
| -TEST_F(SchedulerTest, RetroFrameExpiresOnTime) {
|
| +TEST_F(SchedulerTest, RetroFrameDoesNotExpireTooLate) {
|
| scheduler_settings_.use_external_begin_frame_source = true;
|
| SetUpScheduler(true);
|
|
|
| @@ -1606,7 +1606,7 @@
|
| scheduler_->NotifyBeginMainFrameStarted();
|
|
|
| client_->Reset();
|
| - BeginFrameArgs retro_frame_args = SendNextBeginFrame();
|
| + SendNextBeginFrame();
|
| // This BeginFrame is queued up as a retro frame.
|
| EXPECT_NO_ACTION(client_);
|
| // The previous deadline is still pending.
|
| @@ -1630,62 +1630,12 @@
|
| scheduler_->SetNeedsRedraw();
|
| EXPECT_NO_ACTION(client_);
|
|
|
| - // Let's advance sufficiently past the retro frame's deadline.
|
| - now_src()->AdvanceNow(retro_frame_args.deadline - now_src()->Now() +
|
| + // Let's advance sufficiently past the next frame's deadline.
|
| + now_src()->AdvanceNow(BeginFrameArgs::DefaultInterval() +
|
| base::TimeDelta::FromMicroseconds(1));
|
|
|
| // The retro frame should've expired.
|
| EXPECT_NO_ACTION(client_);
|
| -}
|
| -
|
| -TEST_F(SchedulerTest, MissedFrameDoesNotExpireTooEarly) {
|
| - scheduler_settings_.use_external_begin_frame_source = true;
|
| - SetUpScheduler(true);
|
| -
|
| - scheduler_->SetNeedsCommit();
|
| - EXPECT_TRUE(client_->needs_begin_frames());
|
| - EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
|
| -
|
| - BeginFrameArgs missed_frame_args =
|
| - CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now_src());
|
| - missed_frame_args.type = BeginFrameArgs::MISSED;
|
| -
|
| - // Advance to the deadline.
|
| - now_src()->AdvanceNow(missed_frame_args.deadline - now_src()->Now());
|
| -
|
| - // Missed frame is handled because it's on time.
|
| - client_->Reset();
|
| - fake_external_begin_frame_source_->TestOnBeginFrame(missed_frame_args);
|
| - EXPECT_TRUE(
|
| - task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(false)));
|
| - EXPECT_ACTION("WillBeginImplFrame", client_, 0, 2);
|
| - EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client_, 1, 2);
|
| - EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending());
|
| -}
|
| -
|
| -TEST_F(SchedulerTest, MissedFrameExpiresOnTime) {
|
| - scheduler_settings_.use_external_begin_frame_source = true;
|
| - SetUpScheduler(true);
|
| -
|
| - scheduler_->SetNeedsCommit();
|
| - EXPECT_TRUE(client_->needs_begin_frames());
|
| - EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client_);
|
| -
|
| - BeginFrameArgs missed_frame_args =
|
| - CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now_src());
|
| - missed_frame_args.type = BeginFrameArgs::MISSED;
|
| -
|
| - // Advance sufficiently past the deadline.
|
| - now_src()->AdvanceNow(missed_frame_args.deadline - now_src()->Now() +
|
| - base::TimeDelta::FromMicroseconds(1));
|
| -
|
| - // Missed frame is dropped because it's too late.
|
| - client_->Reset();
|
| - fake_external_begin_frame_source_->TestOnBeginFrame(missed_frame_args);
|
| - EXPECT_FALSE(
|
| - task_runner().RunTasksWhile(client_->ImplFrameDeadlinePending(false)));
|
| - EXPECT_NO_ACTION(client_);
|
| - EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending());
|
| }
|
|
|
| void SchedulerTest::BeginFramesNotFromClient(
|
|
|