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 |