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