| 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
|
|
|