| Index: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
|
| index bd05e458b024a57b3efa6b3c480dcaf914e5ad9a..c168b70f5ec0ab4c62e408b7350d6d005aef4993 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
|
| @@ -105,11 +105,13 @@ void RepostingUpdateClockIdleTestTask(
|
| }
|
|
|
| void WillBeginFrameIdleTask(RendererScheduler* scheduler,
|
| + uint64_t sequence_number,
|
| base::SimpleTestTickClock* clock,
|
| base::TimeTicks deadline) {
|
| scheduler->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, sequence_number, clock->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
| }
|
|
|
| void UpdateClockToDeadlineIdleTestTask(base::SimpleTestTickClock* clock,
|
| @@ -311,8 +313,9 @@ class RendererSchedulerImplTest : public testing::Test {
|
|
|
| void DoMainFrame() {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidCommitFrameToCompositor();
|
| @@ -320,8 +323,9 @@ class RendererSchedulerImplTest : public testing::Test {
|
|
|
| void DoMainFrameOnCriticalPath() {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| }
|
| @@ -648,6 +652,7 @@ class RendererSchedulerImplTest : public testing::Test {
|
| scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner_;
|
| bool simulate_timer_task_ran_;
|
| bool simulate_compositor_task_ran_;
|
| + uint64_t next_begin_frame_number_ = 1;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImplTest);
|
| };
|
| @@ -696,8 +701,9 @@ TEST_F(RendererSchedulerImplTest, TestPostIdleTask) {
|
| EXPECT_EQ(0, run_count); // Shouldn't run yet as no WillBeginFrame.
|
|
|
| scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
| RunUntilIdle();
|
| EXPECT_EQ(0, run_count); // Shouldn't run as no DidCommitFrameToCompositor.
|
|
|
| @@ -707,8 +713,9 @@ TEST_F(RendererSchedulerImplTest, TestPostIdleTask) {
|
| EXPECT_EQ(0, run_count); // We missed the deadline.
|
|
|
| scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
| clock_->Advance(base::TimeDelta::FromMilliseconds(800));
|
| scheduler_->DidCommitFrameToCompositor();
|
| RunUntilIdle();
|
| @@ -768,16 +775,18 @@ TEST_F(RendererSchedulerImplTest, TestDelayedEndIdlePeriodCanceled) {
|
|
|
| // Trigger the beginning of an idle period for 1000ms.
|
| scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
| DoMainFrame();
|
|
|
| // End the idle period early (after 500ms), and send a WillBeginFrame which
|
| // specifies that the next idle period should end 1000ms from now.
|
| clock_->Advance(base::TimeDelta::FromMilliseconds(500));
|
| scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
|
|
| RunUntilIdle();
|
| EXPECT_EQ(0, run_count); // Not currently in an idle period.
|
| @@ -2060,8 +2069,9 @@ TEST_F(RendererSchedulerImplTest, TestLongIdlePeriodRepeating) {
|
| base::RetainedRef(idle_task_runner_), &run_count, clock_.get(),
|
| idle_task_runtime, &actual_deadlines));
|
| idle_task_runner_->PostIdleTask(
|
| - FROM_HERE, base::Bind(&WillBeginFrameIdleTask,
|
| - base::Unretained(scheduler_.get()), clock_.get()));
|
| + FROM_HERE,
|
| + base::Bind(&WillBeginFrameIdleTask, base::Unretained(scheduler_.get()),
|
| + next_begin_frame_number_++, clock_.get()));
|
| RunUntilIdle();
|
| EXPECT_EQ(4, run_count);
|
| }
|
| @@ -2140,8 +2150,9 @@ TEST_F(RendererSchedulerImplTest, CanExceedIdleDeadlineIfRequired) {
|
| // Next long idle period will be for the maximum time, so
|
| // CanExceedIdleDeadlineIfRequired should return true.
|
| scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL));
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL));
|
| EXPECT_FALSE(scheduler_->CanExceedIdleDeadlineIfRequired());
|
| }
|
|
|
| @@ -2336,8 +2347,9 @@ TEST_F(RendererSchedulerImplTest, BeginMainFrameOnCriticalPath) {
|
| ASSERT_FALSE(scheduler_->BeginMainFrameOnCriticalPath());
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(1000),
|
| + cc::BeginFrameArgs::NORMAL);
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| ASSERT_TRUE(scheduler_->BeginMainFrameOnCriticalPath());
|
|
|
| @@ -2713,8 +2725,9 @@ TEST_F(RendererSchedulerImplTest, ModeratelyExpensiveTimer_NotBlocked) {
|
| simulate_timer_task_ran_ = false;
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -2751,8 +2764,9 @@ TEST_F(RendererSchedulerImplTest,
|
| simulate_timer_task_ran_ = false;
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidAnimateForInputOnCompositorThread();
|
| @@ -2792,8 +2806,9 @@ TEST_F(RendererSchedulerImplTest,
|
| simulate_timer_task_ran_ = false;
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -2856,8 +2871,9 @@ TEST_F(RendererSchedulerImplTest,
|
| SimulateMainThreadGestureStart(TouchEventPolicy::SEND_TOUCH_START,
|
| blink::WebInputEvent::GestureScrollUpdate);
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -2879,8 +2895,9 @@ TEST_F(
|
| RendererSchedulerImplTest,
|
| EstimateLongestJankFreeTaskDuration_UseCase_MAIN_THREAD_CUSTOM_INPUT_HANDLING) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = false;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -2903,8 +2920,9 @@ TEST_F(RendererSchedulerImplTest,
|
| SimulateCompositorGestureStart(TouchEventPolicy::DONT_SEND_TOUCH_START);
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -3014,8 +3032,9 @@ TEST_F(RendererSchedulerImplTest,
|
| SimulateCompositorGestureStart(TouchEventPolicy::DONT_SEND_TOUCH_START);
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -3059,8 +3078,9 @@ TEST_F(RendererSchedulerImplTest,
|
|
|
| for (int i = 0; i < 1000; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3122,8 +3142,9 @@ TEST_F(RendererSchedulerImplTest,
|
| bool suspended = false;
|
| for (int i = 0; i < 1000; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3179,8 +3200,9 @@ TEST_F(RendererSchedulerImplTest,
|
|
|
| for (int i = 0; i < 1000; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3218,8 +3240,9 @@ TEST_F(RendererSchedulerImplTest,
|
| RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
|
|
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
|
|
| @@ -3279,8 +3302,9 @@ TEST_F(RendererSchedulerImplTest, SYNCHRONIZED_GESTURE_CompositingExpensive) {
|
|
|
| for (int i = 0; i < 100; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3320,8 +3344,9 @@ TEST_F(RendererSchedulerImplTest, MAIN_THREAD_CUSTOM_INPUT_HANDLING) {
|
|
|
| for (int i = 0; i < 100; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3363,8 +3388,9 @@ TEST_F(RendererSchedulerImplTest, MAIN_THREAD_GESTURE) {
|
|
|
| for (int i = 0; i < 100; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
| @@ -3487,8 +3513,9 @@ TEST_F(RendererSchedulerImplTest, UnthrottledTaskRunner) {
|
|
|
| for (int i = 0; i < 1000; i++) {
|
| cc::BeginFrameArgs begin_frame_args = cc::BeginFrameArgs::Create(
|
| - BEGINFRAME_FROM_HERE, clock_->NowTicks(), base::TimeTicks(),
|
| - base::TimeDelta::FromMilliseconds(16), cc::BeginFrameArgs::NORMAL);
|
| + BEGINFRAME_FROM_HERE, 0, next_begin_frame_number_++, clock_->NowTicks(),
|
| + base::TimeTicks(), base::TimeDelta::FromMilliseconds(16),
|
| + cc::BeginFrameArgs::NORMAL);
|
| begin_frame_args.on_critical_path = true;
|
| scheduler_->WillBeginFrame(begin_frame_args);
|
| scheduler_->DidHandleInputEventOnCompositorThread(
|
|
|