Index: cc/scheduler/scheduler_unittest.cc |
diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc |
index aa61af73e884bde064647b08281406ca41df2511..0d6d9fa5f277c1ee3641e7e727612e975d5c1d06 100644 |
--- a/cc/scheduler/scheduler_unittest.cc |
+++ b/cc/scheduler/scheduler_unittest.cc |
@@ -42,40 +42,6 @@ class FakeSchedulerClient; |
void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler, |
FakeSchedulerClient* client); |
-class TestScheduler : public Scheduler { |
- public: |
- static scoped_ptr<TestScheduler> Create( |
- SchedulerClient* client, |
- const SchedulerSettings& scheduler_settings, |
- int layer_tree_host_id, |
- const scoped_refptr<base::SingleThreadTaskRunner>& impl_task_runner) { |
- return make_scoped_ptr(new TestScheduler( |
- client, scheduler_settings, layer_tree_host_id, impl_task_runner)); |
- } |
- |
- virtual ~TestScheduler() {} |
- |
- bool IsBeginRetroFrameArgsEmpty() const { |
- return begin_retro_frame_args_.empty(); |
- } |
- |
- bool IsSyntheticBeginFrameSourceActive() const { |
- return synthetic_begin_frame_source_->IsActive(); |
- } |
- |
- private: |
- TestScheduler( |
- SchedulerClient* client, |
- const SchedulerSettings& scheduler_settings, |
- int layer_tree_host_id, |
- const scoped_refptr<base::SingleThreadTaskRunner> & impl_task_runner) |
- : Scheduler(client, |
- scheduler_settings, |
- layer_tree_host_id, |
- impl_task_runner) { |
- } |
-}; |
- |
class FakeSchedulerClient : public SchedulerClient { |
public: |
FakeSchedulerClient() |
@@ -96,8 +62,7 @@ class FakeSchedulerClient : public SchedulerClient { |
} |
TestScheduler* CreateScheduler(const SchedulerSettings& settings) { |
- task_runner_ = new OrderedSimpleTaskRunner; |
- scheduler_ = TestScheduler::Create(this, settings, 0, task_runner_); |
+ scheduler_ = TestScheduler::Create(this, settings, 0); |
return scheduler_.get(); |
} |
@@ -115,8 +80,6 @@ class FakeSchedulerClient : public SchedulerClient { |
return posted_begin_impl_frame_deadline_; |
} |
- OrderedSimpleTaskRunner& task_runner() { return *task_runner_; } |
- |
int ActionIndex(const char* action) const { |
for (size_t i = 0; i < actions_.size(); i++) |
if (!strcmp(actions_[i], action)) |
@@ -227,6 +190,14 @@ class FakeSchedulerClient : public SchedulerClient { |
virtual void DidBeginImplFrameDeadline() OVERRIDE {} |
+ virtual void RunPendingTasks(bool advance_now) { |
+ scheduler_->RunPendingTasks(advance_now); |
+ } |
+ |
+ virtual base::TimeDelta NextPendingTaskDelay() { |
+ return scheduler_->NextPendingTaskDelay(); |
+ } |
+ |
protected: |
bool needs_begin_frame_; |
bool draw_will_happen_; |
@@ -240,7 +211,6 @@ class FakeSchedulerClient : public SchedulerClient { |
std::vector<const char*> actions_; |
ScopedVector<base::Value> states_; |
scoped_ptr<TestScheduler> scheduler_; |
- scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
}; |
void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler, |
@@ -259,11 +229,11 @@ void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler, |
if (client_initiates_begin_frame) |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
else |
- client->task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client->RunPendingTasks(true); // Run posted BeginFrame. |
// Run the posted deadline task. |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
- client->task_runner().RunPendingTasks(); |
+ client->RunPendingTasks(true); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
// We need another BeginImplFrame so Scheduler calls |
@@ -271,11 +241,11 @@ void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler, |
if (client_initiates_begin_frame) |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
else |
- client->task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client->RunPendingTasks(true); // Run posted BeginFrame. |
// Run the posted deadline task. |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
- client->task_runner().RunPendingTasks(); |
+ client->RunPendingTasks(true); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
} |
@@ -319,7 +289,7 @@ TEST(SchedulerTest, RequestCommit) { |
client.Reset(); |
// If we don't swap on the deadline, we wait for the next BeginFrame. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -341,7 +311,7 @@ TEST(SchedulerTest, RequestCommit) { |
client.Reset(); |
// BeginImplFrame deadline should draw. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 1); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -354,7 +324,7 @@ TEST(SchedulerTest, RequestCommit) { |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client); |
EXPECT_FALSE(client.needs_begin_frame()); |
client.Reset(); |
@@ -396,7 +366,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) { |
EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -420,7 +390,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) { |
EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -430,7 +400,7 @@ TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) { |
// On the next BeginImplFrame, verify we go back to a quiescent state and |
// no longer request BeginImplFrames. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_FALSE(client.needs_begin_frame()); |
client.Reset(); |
} |
@@ -476,13 +446,13 @@ TEST(SchedulerTest, RequestRedrawInsideDraw) { |
EXPECT_EQ(0, client.num_draws()); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(scheduler->RedrawPending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -490,7 +460,7 @@ TEST(SchedulerTest, RequestRedrawInsideDraw) { |
// We stop requesting BeginImplFrames after a BeginImplFrame where we don't |
// swap. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
EXPECT_FALSE(client.needs_begin_frame()); |
@@ -516,7 +486,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) { |
// Fail the draw. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
// We have a commit pending and the draw failed, and we didn't lose the redraw |
@@ -527,7 +497,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) { |
// Fail the draw again. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_TRUE(scheduler->CommitPending()); |
EXPECT_TRUE(scheduler->RedrawPending()); |
@@ -536,7 +506,7 @@ TEST(SchedulerTest, RequestRedrawInsideFailedDraw) { |
// Draw successfully. |
client.SetDrawWillHappen(true); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(3, client.num_draws()); |
EXPECT_TRUE(scheduler->CommitPending()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
@@ -595,7 +565,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) { |
client.SetNeedsCommitOnNextDraw(); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
client.SetNeedsCommitOnNextDraw(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(scheduler->CommitPending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -603,7 +573,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) { |
scheduler->NotifyReadyToCommit(); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
@@ -613,7 +583,7 @@ TEST(SchedulerTest, RequestCommitInsideDraw) { |
// We stop requesting BeginImplFrames after a BeginImplFrame where we don't |
// swap. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
EXPECT_FALSE(scheduler->CommitPending()); |
@@ -640,7 +610,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) { |
// Fail the draw. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
// We have a commit pending and the draw failed, and we didn't lose the commit |
@@ -652,7 +622,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) { |
// Fail the draw again. |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
EXPECT_TRUE(scheduler->CommitPending()); |
EXPECT_TRUE(scheduler->RedrawPending()); |
@@ -661,7 +631,7 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) { |
// Draw successfully. |
client.SetDrawWillHappen(true); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(3, client.num_draws()); |
EXPECT_TRUE(scheduler->CommitPending()); |
EXPECT_FALSE(scheduler->RedrawPending()); |
@@ -686,7 +656,7 @@ TEST(SchedulerTest, NoSwapWhenDrawFails) { |
// Draw successfully, this starts a new frame. |
client.SetNeedsCommitOnNextDraw(); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
scheduler->SetNeedsRedraw(); |
@@ -697,7 +667,7 @@ TEST(SchedulerTest, NoSwapWhenDrawFails) { |
client.SetDrawWillHappen(false); |
client.SetNeedsCommitOnNextDraw(); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(2, client.num_draws()); |
} |
@@ -742,7 +712,7 @@ TEST(SchedulerTest, ManageTiles) { |
// On the deadline, he actions should have occured in the right order. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
@@ -772,7 +742,7 @@ TEST(SchedulerTest, ManageTiles) { |
// then the ManageTiles action will be triggered after the Draw. |
// Afterwards, neither a draw nor ManageTiles are pending. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
@@ -788,7 +758,7 @@ TEST(SchedulerTest, ManageTiles) { |
EXPECT_SINGLE_ACTION("WillBeginImplFrame", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client); |
EXPECT_FALSE(client.needs_begin_frame()); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -809,7 +779,7 @@ TEST(SchedulerTest, ManageTiles) { |
EXPECT_SINGLE_ACTION("WillBeginImplFrame", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(0, client.num_draws()); |
EXPECT_FALSE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
@@ -841,7 +811,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) { |
EXPECT_FALSE(scheduler->ManageTilesPending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_FALSE(client.HasAction("ScheduledActionManageTiles")); |
@@ -859,7 +829,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) { |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
@@ -884,7 +854,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) { |
EXPECT_TRUE(scheduler->ManageTilesPending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_FALSE(client.HasAction("ScheduledActionManageTiles")); |
@@ -907,7 +877,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) { |
EXPECT_TRUE(scheduler->ManageTilesPending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_FALSE(client.HasAction("ScheduledActionManageTiles")); |
@@ -924,7 +894,7 @@ TEST(SchedulerTest, ManageTilesOncePerFrame) { |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(1, client.num_draws()); |
EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
@@ -970,7 +940,7 @@ TEST(SchedulerTest, ShouldUpdateVisibleTiles) { |
client.Reset(); |
client.SetSwapContainsIncompleteTile(true); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->RedrawPending()); |
@@ -981,7 +951,7 @@ TEST(SchedulerTest, ShouldUpdateVisibleTiles) { |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionUpdateVisibleTiles", client, 0, 3); |
EXPECT_ACTION("ScheduledActionAnimate", client, 1, 3); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 2, 3); |
@@ -993,7 +963,7 @@ TEST(SchedulerTest, ShouldUpdateVisibleTiles) { |
// No more UpdateVisibleTiles(). |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client); |
EXPECT_FALSE(client.needs_begin_frame()); |
} |
@@ -1067,7 +1037,7 @@ void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms, |
EXPECT_FALSE(scheduler->MainThreadIsInHighLatencyMode()); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
EXPECT_FALSE(scheduler->MainThreadIsInHighLatencyMode()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode()); |
scheduler->NotifyBeginMainFrameStarted(); |
scheduler->NotifyReadyToCommit(); |
@@ -1079,7 +1049,7 @@ void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms, |
EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode()); |
scheduler->BeginFrame(CreateBeginFrameArgsForTesting()); |
EXPECT_TRUE(scheduler->MainThreadIsInHighLatencyMode()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_EQ(scheduler->MainThreadIsInHighLatencyMode(), |
should_send_begin_main_frame); |
EXPECT_EQ(client.HasAction("ScheduledActionSendBeginMainFrame"), |
@@ -1139,7 +1109,7 @@ TEST(SchedulerTest, PollForCommitCompletion) { |
scheduler->BeginFrame(frame_args); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
scheduler->DidSwapBuffers(); |
@@ -1155,7 +1125,7 @@ TEST(SchedulerTest, PollForCommitCompletion) { |
// Draw and swap the frame, but don't ack the swap to simulate the Browser |
// blocking on the renderer. |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
scheduler->DidSwapBuffers(); |
@@ -1166,9 +1136,9 @@ TEST(SchedulerTest, PollForCommitCompletion) { |
// Does three iterations to make sure that the timer is properly repeating. |
for (int i = 0; i < 3; ++i) { |
EXPECT_EQ((frame_args.interval * 2).InMicroseconds(), |
- client.task_runner().NextPendingTaskDelay().InMicroseconds()) |
+ client.NextPendingTaskDelay().InMicroseconds()) |
<< *scheduler->AsValue(); |
- client.task_runner().RunPendingTasks(); |
+ client.RunPendingTasks(true); |
EXPECT_GT(client.num_actions_(), actions_so_far); |
EXPECT_STREQ(client.Action(client.num_actions_() - 1), |
"DidAnticipatedDrawTimeChange"); |
@@ -1179,9 +1149,9 @@ TEST(SchedulerTest, PollForCommitCompletion) { |
scheduler->NotifyBeginMainFrameStarted(); |
for (int i = 0; i < 3; ++i) { |
EXPECT_EQ((frame_args.interval * 2).InMicroseconds(), |
- client.task_runner().NextPendingTaskDelay().InMicroseconds()) |
+ client.NextPendingTaskDelay().InMicroseconds()) |
<< *scheduler->AsValue(); |
- client.task_runner().RunPendingTasks(); |
+ client.RunPendingTasks(true); |
EXPECT_GT(client.num_actions_(), actions_so_far); |
EXPECT_STREQ(client.Action(client.num_actions_() - 1), |
"DidAnticipatedDrawTimeChange"); |
@@ -1223,7 +1193,7 @@ TEST(SchedulerTest, BeginRetroFrame) { |
scheduler->BeginFrame(args); |
// If we don't swap on the deadline, we wait for the next BeginImplFrame. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -1237,7 +1207,7 @@ TEST(SchedulerTest, BeginRetroFrame) { |
client.Reset(); |
// BeginImplFrame should prepare the draw. |
- client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. |
+ client.RunPendingTasks(true); // Run posted BeginRetroFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1245,7 +1215,7 @@ TEST(SchedulerTest, BeginRetroFrame) { |
client.Reset(); |
// BeginImplFrame deadline should draw. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 1); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -1253,12 +1223,12 @@ TEST(SchedulerTest, BeginRetroFrame) { |
// The following BeginImplFrame deadline should SetNeedsBeginFrame(false) |
// to avoid excessive toggles. |
- client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. |
+ client.RunPendingTasks(true); // Run posted BeginRetroFrame. |
EXPECT_SINGLE_ACTION("WillBeginImplFrame", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("SetNeedsBeginFrame", client); |
EXPECT_FALSE(client.needs_begin_frame()); |
client.Reset(); |
@@ -1311,7 +1281,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { |
client.Reset(); |
// Swapping will put us into a swap throttled state. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1321,7 +1291,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { |
// While swap throttled, BeginRetroFrames should trigger BeginImplFrames |
// but not a BeginMainFrame or draw. |
scheduler->SetNeedsCommit(); |
- client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. |
+ client.RunPendingTasks(true); // Run posted BeginRetroFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -1344,7 +1314,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { |
// BeginImplFrame deadline should draw. |
scheduler->SetNeedsRedraw(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1375,7 +1345,7 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled, |
// When the client-driven BeginFrame are disabled, the scheduler posts it's |
// own BeginFrame tasks. |
- client.task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client.RunPendingTasks(true); // Run posted BeginFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1383,7 +1353,7 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled, |
client.Reset(); |
// If we don't swap on the deadline, we wait for the next BeginFrame. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_FALSE(client.needs_begin_frame()); |
@@ -1397,7 +1367,7 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled, |
client.Reset(); |
// BeginImplFrame should prepare the draw. |
- client.task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client.RunPendingTasks(true); // Run posted BeginFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1405,7 +1375,7 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled, |
client.Reset(); |
// BeginImplFrame deadline should draw. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 1); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_FALSE(client.needs_begin_frame()); |
@@ -1413,14 +1383,14 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled, |
// The following BeginImplFrame deadline should SetNeedsBeginFrame(false) |
// to avoid excessive toggles. |
- client.task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client.RunPendingTasks(true); // Run posted BeginFrame. |
EXPECT_SINGLE_ACTION("WillBeginImplFrame", client); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
client.Reset(); |
// Make sure SetNeedsBeginFrame isn't called on the client |
// when the BeginFrame is no longer needed. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(client.needs_begin_frame()); |
client.Reset(); |
@@ -1473,7 +1443,7 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, |
client.Reset(); |
// Trigger the first BeginImplFrame and BeginMainFrame |
- client.task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client.RunPendingTasks(true); // Run posted BeginFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1488,7 +1458,7 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, |
client.Reset(); |
// Swapping will put us into a swap throttled state. |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1498,7 +1468,7 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, |
// While swap throttled, BeginFrames should trigger BeginImplFrames, |
// but not a BeginMainFrame or draw. |
scheduler->SetNeedsCommit(); |
- client.task_runner().RunPendingTasks(); // Run posted BeginFrame. |
+ client.RunPendingTasks(true); // Run posted BeginFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_FALSE(client.needs_begin_frame()); |
@@ -1513,7 +1483,7 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, |
// BeginImplFrame deadline should draw. |
scheduler->SetNeedsRedraw(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionAnimate", client, 0, 2); |
EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 2); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1592,7 +1562,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginFrameStarted) { |
EXPECT_ACTION("ScheduledActionCommit", client, 0, 1); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
} |
@@ -1626,7 +1596,7 @@ void DidLoseOutputSurfaceAfterBeginFrameStartedWithHighLatency( |
EXPECT_NO_ACTION(client); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
// OnBeginImplFrameDeadline didn't schedule any actions because main frame is |
// not yet completed. |
EXPECT_NO_ACTION(client); |
@@ -1699,7 +1669,7 @@ void DidLoseOutputSurfaceAfterReadyToCommit(bool impl_side_painting) { |
} |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
} |
@@ -1737,7 +1707,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterSetNeedsManageTiles) { |
EXPECT_NO_ACTION(client); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_ACTION("ScheduledActionManageTiles", client, 0, 2); |
EXPECT_ACTION("ScheduledActionBeginOutputSurfaceCreation", client, 1, 2); |
} |
@@ -1776,7 +1746,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) { |
// If we don't swap on the deadline, we wait for the next BeginImplFrame. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -1797,7 +1767,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) { |
// Posted BeginRetroFrame is aborted. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); |
+ client.RunPendingTasks(true); |
EXPECT_NO_ACTION(client); |
} |
@@ -1835,7 +1805,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceDuringBeginRetroFrameRunning) { |
// If we don't swap on the deadline, we wait for the next BeginImplFrame. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_NO_ACTION(client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
@@ -1849,7 +1819,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceDuringBeginRetroFrameRunning) { |
// BeginImplFrame should prepare the draw. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. |
+ client.RunPendingTasks(true); // Run posted BeginRetroFrame. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionAnimate", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1863,14 +1833,14 @@ TEST(SchedulerTest, DidLoseOutputSurfaceDuringBeginRetroFrameRunning) { |
// BeginImplFrame deadline should abort drawing. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
EXPECT_TRUE(client.needs_begin_frame()); |
// No more BeginRetroFrame because BeginRetroFrame queue is cleared. |
client.Reset(); |
- client.task_runner().RunPendingTasks(); |
+ client.RunPendingTasks(true); |
EXPECT_NO_ACTION(client); |
} |
@@ -1892,7 +1862,7 @@ TEST(SchedulerTest, |
EXPECT_TRUE(scheduler->IsSyntheticBeginFrameSourceActive()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted Tick. |
+ client.RunPendingTasks(true); // Run posted Tick. |
EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); |
EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); |
EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
@@ -1911,7 +1881,7 @@ TEST(SchedulerTest, |
EXPECT_FALSE(scheduler->IsSyntheticBeginFrameSourceActive()); |
client.Reset(); |
- client.task_runner().RunPendingTasks(); // Run posted deadline. |
+ client.RunPendingTasks(true); // Run posted deadline. |
EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
EXPECT_FALSE(scheduler->IsSyntheticBeginFrameSourceActive()); |
} |