Index: components/scheduler/renderer/renderer_scheduler_impl_unittest.cc |
diff --git a/components/scheduler/renderer/renderer_scheduler_impl_unittest.cc b/components/scheduler/renderer/renderer_scheduler_impl_unittest.cc |
index 9a6cb38d668df57ce96719abad6bca062267f8df..c2173fd6e68c0c6c1789cfa88b435fc23b68ffe7 100644 |
--- a/components/scheduler/renderer/renderer_scheduler_impl_unittest.cc |
+++ b/components/scheduler/renderer/renderer_scheduler_impl_unittest.cc |
@@ -101,7 +101,8 @@ void WillBeginFrameIdleTask(RendererScheduler* scheduler, |
base::TimeTicks deadline) { |
scheduler->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
} |
void UpdateClockToDeadlineIdleTestTask( |
@@ -206,7 +207,8 @@ class RendererSchedulerImplTest : public testing::Test { |
void DoMainFrame() { |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
scheduler_->DidCommitFrameToCompositor(); |
} |
@@ -214,6 +216,10 @@ class RendererSchedulerImplTest : public testing::Test { |
Policy CurrentPolicy() { return scheduler_->current_policy_; } |
+ bool BeginMainFrameOnCriticalPath() { |
+ return scheduler_->begin_main_frame_on_critical_path_; |
+ } |
+ |
// Helper for posting several tasks of specific types. |task_descriptor| is a |
// string with space delimited task identifiers. The first letter of each |
// task identifier specifies the task type: |
@@ -388,7 +394,8 @@ TEST_F(RendererSchedulerImplTest, TestPostIdleTask) { |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
RunUntilIdle(); |
EXPECT_EQ(0, run_count); // Shouldn't run as no DidCommitFrameToCompositor. |
@@ -399,7 +406,8 @@ TEST_F(RendererSchedulerImplTest, TestPostIdleTask) { |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
clock_->AdvanceNow(base::TimeDelta::FromMilliseconds(800)); |
scheduler_->DidCommitFrameToCompositor(); |
RunUntilIdle(); |
@@ -522,7 +530,8 @@ TEST_F(RendererSchedulerImplTest, TestDelayedEndIdlePeriodCanceled) { |
// Trigger the beginning of an idle period for 1000ms. |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
DoMainFrame(); |
// End the idle period early (after 500ms), and send a WillBeginFrame which |
@@ -530,7 +539,8 @@ TEST_F(RendererSchedulerImplTest, TestDelayedEndIdlePeriodCanceled) { |
clock_->AdvanceNow(base::TimeDelta::FromMilliseconds(500)); |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
RunUntilIdle(); |
EXPECT_EQ(0, run_count); // Not currently in an idle period. |
@@ -1544,7 +1554,8 @@ TEST_F(RendererSchedulerImplTest, CanExceedIdleDeadlineIfRequired) { |
// CanExceedIdleDeadlineIfRequired should return true. |
scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
- base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
EXPECT_FALSE(scheduler_->CanExceedIdleDeadlineIfRequired()); |
} |
@@ -1642,4 +1653,20 @@ TEST_F(RendererSchedulerImplTest, MismatchedDidHandleInputEventOnMainThread) { |
FakeInputEvent(blink::WebInputEvent::GestureFlingStart)); |
} |
+TEST_F(RendererSchedulerImplTest, BeginMainFrameOnCriticalPath) { |
+ ASSERT_FALSE(BeginMainFrameOnCriticalPath()); |
+ |
+ scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
+ BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ true)); |
+ ASSERT_TRUE(BeginMainFrameOnCriticalPath()); |
+ |
+ scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
+ BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
+ base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL, |
+ false)); |
+ ASSERT_FALSE(BeginMainFrameOnCriticalPath()); |
+} |
+ |
} // namespace scheduler |