| Index: cc/scheduler/scheduler_unittest.cc
|
| diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc
|
| index 921b94af19f0d2e605434276663c7a8aab70d998..39a782144021da709e226984db55cc9076bc4275 100644
|
| --- a/cc/scheduler/scheduler_unittest.cc
|
| +++ b/cc/scheduler/scheduler_unittest.cc
|
| @@ -34,12 +34,31 @@ namespace {
|
|
|
| class FakeSchedulerClient;
|
|
|
| -void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler,
|
| - FakeSchedulerClient* client);
|
| +class FakeFrameSource : public BaseFrameSource {
|
| + public:
|
| + FakeSchedulerClient* fake_client_;
|
| +
|
| + explicit FakeFrameSource(FakeSchedulerClient* fake_client)
|
| + : BaseFrameSource(0), fake_client_(fake_client) {}
|
| +
|
| + virtual void SetNeedsBeginFrame(bool needs_begin_frame) OVERRIDE;
|
| + virtual void SetTimeBaseAndInterval(base::TimeTicks timebase,
|
| + base::TimeDelta interval) OVERRIDE {}
|
| + virtual inline std::string FrameSourceType() const OVERRIDE {
|
| + return "FakeFrameSource";
|
| + }
|
| +
|
| + void TestBeginFrame(BeginFrameArgs args) {
|
| + BaseFrameSource::SendBeginFrame(args);
|
| + }
|
| +};
|
|
|
| class FakeSchedulerClient : public SchedulerClient {
|
| public:
|
| - FakeSchedulerClient() : needs_begin_frame_(false), automatic_swap_ack_(true) {
|
| + FakeSchedulerClient()
|
| + : needs_begin_frame_(false),
|
| + automatic_swap_ack_(true),
|
| + frame_source_(this) {
|
| Reset();
|
| }
|
|
|
| @@ -54,7 +73,12 @@ class FakeSchedulerClient : public SchedulerClient {
|
|
|
| Scheduler* CreateScheduler(const SchedulerSettings& settings) {
|
| task_runner_ = new base::TestSimpleTaskRunner;
|
| - scheduler_ = Scheduler::Create(this, settings, 0, task_runner_);
|
| +
|
| + scheduler_ = Scheduler::Create(this,
|
| + settings,
|
| + 0,
|
| + static_cast<FrameSource*>(&frame_source_),
|
| + task_runner_);
|
| return scheduler_.get();
|
| }
|
|
|
| @@ -96,11 +120,6 @@ class FakeSchedulerClient : public SchedulerClient {
|
| }
|
|
|
| // SchedulerClient implementation.
|
| - virtual void SetNeedsBeginFrame(bool enable) OVERRIDE {
|
| - actions_.push_back("SetNeedsBeginFrame");
|
| - states_.push_back(scheduler_->StateAsValue().release());
|
| - needs_begin_frame_ = enable;
|
| - }
|
| virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE {
|
| actions_.push_back("WillBeginImplFrame");
|
| states_.push_back(scheduler_->StateAsValue().release());
|
| @@ -187,6 +206,8 @@ class FakeSchedulerClient : public SchedulerClient {
|
|
|
| virtual void DidBeginImplFrameDeadline() OVERRIDE {}
|
|
|
| + FakeFrameSource& frame_source() { return frame_source_; }
|
| +
|
| protected:
|
| bool needs_begin_frame_;
|
| bool draw_will_happen_;
|
| @@ -199,8 +220,18 @@ class FakeSchedulerClient : public SchedulerClient {
|
| ScopedVector<base::Value> states_;
|
| scoped_ptr<Scheduler> scheduler_;
|
| scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
|
| +
|
| + friend FakeFrameSource;
|
| + FakeFrameSource frame_source_;
|
| };
|
|
|
| +void FakeFrameSource::SetNeedsBeginFrame(bool needs_begin_frame) {
|
| + fake_client_->actions_.push_back("SetNeedsBeginFrame");
|
| + fake_client_->states_.push_back(
|
| + fake_client_->scheduler_->StateAsValue().release());
|
| + fake_client_->needs_begin_frame_ = needs_begin_frame;
|
| +}
|
| +
|
| void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler,
|
| FakeSchedulerClient* client) {
|
| bool client_initiates_begin_frame =
|
| @@ -213,7 +244,7 @@ void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler,
|
| scheduler->NotifyReadyToCommit();
|
| // Go through the motions to draw the commit.
|
| if (client_initiates_begin_frame)
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client->frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| else
|
| client->task_runner().RunPendingTasks(); // Run posted BeginFrame.
|
|
|
| @@ -225,7 +256,7 @@ void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler,
|
| // We need another BeginImplFrame so Scheduler calls
|
| // SetNeedsBeginFrame(false).
|
| if (client_initiates_begin_frame)
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client->frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| else
|
| client->task_runner().RunPendingTasks(); // Run posted BeginFrame.
|
|
|
| @@ -267,7 +298,7 @@ TEST(SchedulerTest, RequestCommit) {
|
| EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client);
|
| client.Reset();
|
|
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -289,7 +320,7 @@ TEST(SchedulerTest, RequestCommit) {
|
| client.Reset();
|
|
|
| // BeginImplFrame should prepare the draw.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -305,7 +336,7 @@ TEST(SchedulerTest, RequestCommit) {
|
|
|
| // The following BeginImplFrame deadline should SetNeedsBeginFrame(false)
|
| // to avoid excessive toggles.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_SINGLE_ACTION("WillBeginImplFrame", client);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| client.Reset();
|
| @@ -333,7 +364,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) {
|
| EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client);
|
|
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -363,7 +394,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) {
|
| client.Reset();
|
| // Since another commit is needed, the next BeginImplFrame should initiate
|
| // the second commit.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -385,7 +416,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) {
|
|
|
| // On the next BeginImplFrame, verify we go back to a quiescent state and
|
| // no longer request BeginImplFrames.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_FALSE(client.needs_begin_frame());
|
| client.Reset();
|
| @@ -434,13 +465,13 @@ TEST(SchedulerTest, RequestRedrawInsideDraw) {
|
| EXPECT_TRUE(client.needs_begin_frame());
|
| EXPECT_EQ(0, client.num_draws());
|
|
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(1, client.num_draws());
|
| EXPECT_TRUE(scheduler->RedrawPending());
|
| EXPECT_TRUE(client.needs_begin_frame());
|
|
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| EXPECT_FALSE(scheduler->RedrawPending());
|
| @@ -448,7 +479,7 @@ TEST(SchedulerTest, RequestRedrawInsideDraw) {
|
|
|
| // We stop requesting BeginImplFrames after a BeginImplFrame where we don't
|
| // swap.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| EXPECT_FALSE(scheduler->RedrawPending());
|
| @@ -474,7 +505,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) {
|
| EXPECT_EQ(0, client.num_draws());
|
|
|
| // Fail the draw.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(1, client.num_draws());
|
|
|
| @@ -485,7 +516,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) {
|
| EXPECT_TRUE(client.needs_begin_frame());
|
|
|
| // Fail the draw again.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| EXPECT_TRUE(scheduler->CommitPending());
|
| @@ -494,7 +525,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) {
|
|
|
| // Draw successfully.
|
| client.SetDrawWillHappen(true);
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(3, client.num_draws());
|
| EXPECT_TRUE(scheduler->CommitPending());
|
| @@ -555,7 +586,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) {
|
| EXPECT_TRUE(client.needs_begin_frame());
|
|
|
| client.SetNeedsCommitOnNextDraw();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.SetNeedsCommitOnNextDraw();
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(1, client.num_draws());
|
| @@ -564,7 +595,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) {
|
| scheduler->NotifyBeginMainFrameStarted();
|
| scheduler->NotifyReadyToCommit();
|
|
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
|
|
| @@ -574,7 +605,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) {
|
|
|
| // We stop requesting BeginImplFrames after a BeginImplFrame where we don't
|
| // swap.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| EXPECT_FALSE(scheduler->RedrawPending());
|
| @@ -601,7 +632,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) {
|
| EXPECT_EQ(0, client.num_draws());
|
|
|
| // Fail the draw.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(1, client.num_draws());
|
|
|
| @@ -612,7 +643,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) {
|
| EXPECT_TRUE(client.needs_begin_frame());
|
|
|
| // Fail the draw again.
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
|
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| @@ -622,7 +653,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) {
|
|
|
| // Draw successfully.
|
| client.SetDrawWillHappen(true);
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(3, client.num_draws());
|
| EXPECT_TRUE(scheduler->CommitPending());
|
| @@ -647,7 +678,7 @@ TEST(SchedulerTest, NoSwapWhenDrawFails) {
|
|
|
| // Draw successfully, this starts a new frame.
|
| client.SetNeedsCommitOnNextDraw();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(1, client.num_draws());
|
|
|
| @@ -658,7 +689,7 @@ TEST(SchedulerTest, NoSwapWhenDrawFails) {
|
| // Fail to draw, this should not start a frame.
|
| client.SetDrawWillHappen(false);
|
| client.SetNeedsCommitOnNextDraw();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(2, client.num_draws());
|
| }
|
| @@ -744,7 +775,7 @@ TEST(SchedulerTest, ManageTiles) {
|
| // We have no immediate actions to perform, so the BeginImplFrame should post
|
| // the deadline task.
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -772,7 +803,7 @@ TEST(SchedulerTest, ManageTiles) {
|
| // We have no immediate actions to perform, so the BeginImplFrame should post
|
| // the deadline task.
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -793,7 +824,7 @@ TEST(SchedulerTest, ManageTiles) {
|
|
|
| // We need a BeginImplFrame where we don't swap to go idle.
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_SINGLE_ACTION("WillBeginImplFrame", client);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| client.Reset();
|
| @@ -814,7 +845,7 @@ TEST(SchedulerTest, ManageTiles) {
|
|
|
| // BeginImplFrame. There will be no draw, only ManageTiles.
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_SINGLE_ACTION("WillBeginImplFrame", client);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| client.Reset();
|
| @@ -840,7 +871,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) {
|
| scheduler->SetNeedsManageTiles();
|
| scheduler->SetNeedsRedraw();
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -862,7 +893,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) {
|
| scheduler->SetNeedsManageTiles();
|
| scheduler->SetNeedsRedraw();
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -885,7 +916,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) {
|
| scheduler->SetNeedsManageTiles();
|
| scheduler->SetNeedsRedraw();
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -908,7 +939,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) {
|
| scheduler->SetNeedsManageTiles();
|
| scheduler->SetNeedsRedraw();
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -927,7 +958,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) {
|
| scheduler->SetNeedsManageTiles();
|
| scheduler->SetNeedsRedraw();
|
| client.Reset();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -956,7 +987,7 @@ TEST(SchedulerTest, TriggerBeginFrameDeadlineEarly) {
|
|
|
| client.Reset();
|
| scheduler->SetNeedsRedraw();
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
|
|
| // The deadline should be zero since there is no work other than drawing
|
| // pending.
|
| @@ -1012,7 +1043,7 @@ void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms,
|
| client.Reset();
|
| scheduler->SetNeedsCommit();
|
| EXPECT_FALSE(scheduler->MainThreadIsInHighLatencyMode());
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_FALSE(scheduler->MainThreadIsInHighLatencyMode());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode());
|
| @@ -1024,7 +1055,7 @@ void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms,
|
| client.Reset();
|
| scheduler->SetNeedsCommit();
|
| EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode());
|
| - scheduler->BeginFrame(BeginFrameArgs::CreateForTesting());
|
| + client.frame_source().TestBeginFrame(BeginFrameArgs::CreateForTesting());
|
| EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| EXPECT_EQ(scheduler->MainThreadIsInHighLatencyMode(),
|
| @@ -1083,7 +1114,7 @@ TEST(SchedulerTest, PollForCommitCompletion) {
|
|
|
| BeginFrameArgs frame_args = BeginFrameArgs::CreateForTesting();
|
| frame_args.interval = base::TimeDelta::FromMilliseconds(1000);
|
| - scheduler->BeginFrame(frame_args);
|
| + client.frame_source().TestBeginFrame(frame_args);
|
|
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| @@ -1096,7 +1127,7 @@ TEST(SchedulerTest, PollForCommitCompletion) {
|
| // the NotifyReadyToCommit for now.
|
| EXPECT_FALSE(scheduler->CommitPending());
|
| scheduler->SetNeedsCommit();
|
| - scheduler->BeginFrame(frame_args);
|
| + client.frame_source().TestBeginFrame(frame_args);
|
| EXPECT_TRUE(scheduler->CommitPending());
|
|
|
| // Draw and swap the frame, but don't ack the swap to simulate the Browser
|
| @@ -1156,7 +1187,7 @@ TEST(SchedulerTest, BeginRetroFrame) {
|
| // This is the first BeginFrame, which will be handled immediately.
|
| BeginFrameArgs args = BeginFrameArgs::CreateForTesting();
|
| args.deadline += base::TimeDelta::FromHours(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -1165,9 +1196,9 @@ TEST(SchedulerTest, BeginRetroFrame) {
|
|
|
| // Queue BeginFrames while we are still handling the previous BeginFrame.
|
| args.frame_time += base::TimeDelta::FromSeconds(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
| args.frame_time += base::TimeDelta::FromSeconds(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
|
|
| // If we don't swap on the deadline, we wait for the next BeginImplFrame.
|
| client.task_runner().RunPendingTasks(); // Run posted deadline.
|
| @@ -1235,7 +1266,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) {
|
| // This is the first BeginFrame, which will be handled immediately.
|
| BeginFrameArgs args = BeginFrameArgs::CreateForTesting();
|
| args.deadline += base::TimeDelta::FromHours(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
| EXPECT_ACTION("WillBeginImplFrame", client, 0, 2);
|
| EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2);
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| @@ -1245,7 +1276,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) {
|
| // Queue BeginFrame while we are still handling the previous BeginFrame.
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| args.frame_time += base::TimeDelta::FromSeconds(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
| EXPECT_EQ(0, client.num_actions_());
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| client.Reset();
|
| @@ -1276,7 +1307,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) {
|
|
|
| // Queue BeginFrame while we are still handling the previous BeginFrame.
|
| args.frame_time += base::TimeDelta::FromSeconds(1);
|
| - scheduler->BeginFrame(args);
|
| + client.frame_source().TestBeginFrame(args);
|
| EXPECT_EQ(0, client.num_actions_());
|
| EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending());
|
| EXPECT_TRUE(client.needs_begin_frame());
|
|
|