Chromium Code Reviews| Index: cc/scheduler/scheduler_unittest.cc |
| diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc |
| index ea2b87445177f941061634eef5f6d3e85afc8858..b660d523d75b5035d11d0064e1374d51eb000ff9 100644 |
| --- a/cc/scheduler/scheduler_unittest.cc |
| +++ b/cc/scheduler/scheduler_unittest.cc |
| @@ -2200,5 +2200,34 @@ TEST(SchedulerTest, |
| EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
| } |
| +TEST(SchedulerTest, BeginMainFrameAbortedTriggersImmediateDeadline) { |
|
brianderson
2015/01/09 23:54:22
Does this test fail before this patch?
sunnyps
2015/01/13 19:36:01
Yes, it does.
|
| + FakeSchedulerClient client; |
| + SchedulerSettings settings; |
| + settings.use_external_begin_frame_source = true; |
| + |
| + CREATE_SCHEDULER_AND_INIT_SURFACE(settings); |
| + |
| + scheduler->SetNeedsCommit(); |
| + EXPECT_SINGLE_ACTION("SetNeedsBeginFrames(true)", client); |
| + client.Reset(); |
| + |
| + client.AdvanceFrame(); |
| + EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
| + EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); |
| + EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
| + client.Reset(); |
| + |
| + client.task_runner().RunUntilTime(client.now_src()->Now()); |
| + EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
| + |
| + scheduler->BeginMainFrameAborted(CommitEarlyOutReason::ABORTED_NOT_VISIBLE); |
| + |
| + EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
| + client.task_runner().RunUntilTime(client.now_src()->Now()); |
| + EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
| + |
| + EXPECT_NO_ACTION(client); |
| +} |
| + |
| } // namespace |
| } // namespace cc |