| 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 fda7d476ad94669295d2002d59357fa60ebf9e7f..30442f5a2f041fa375aa366ed64becc626df7e30 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, | 
| @@ -314,8 +316,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(); | 
| @@ -323,8 +326,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); | 
| } | 
| @@ -667,6 +671,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_ = cc::BeginFrameArgs::kStartingFrameNumber; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImplTest); | 
| }; | 
| @@ -715,8 +720,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. | 
|  | 
| @@ -726,8 +732,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(); | 
| @@ -787,16 +794,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. | 
| @@ -2079,8 +2088,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); | 
| } | 
| @@ -2159,8 +2169,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()); | 
| } | 
|  | 
| @@ -2371,8 +2382,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()); | 
|  | 
| @@ -2748,8 +2760,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); | 
|  | 
| @@ -2786,8 +2799,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(); | 
| @@ -2827,8 +2841,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); | 
|  | 
| @@ -2891,8 +2906,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); | 
|  | 
| @@ -2914,8 +2930,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); | 
|  | 
| @@ -2938,8 +2955,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); | 
|  | 
| @@ -3049,8 +3067,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); | 
|  | 
| @@ -3094,8 +3113,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( | 
| @@ -3157,8 +3177,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( | 
| @@ -3214,8 +3235,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( | 
| @@ -3253,8 +3275,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); | 
|  | 
| @@ -3314,8 +3337,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( | 
| @@ -3355,8 +3379,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( | 
| @@ -3398,8 +3423,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( | 
| @@ -3522,8 +3548,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( | 
|  |