| Index: content/renderer/scheduler/renderer_scheduler_impl_unittest.cc
|
| diff --git a/content/renderer/scheduler/renderer_scheduler_impl_unittest.cc b/content/renderer/scheduler/renderer_scheduler_impl_unittest.cc
|
| index 7f49e514e5ee11502685567435011a3c02e160db..c7ee2fe35160dec69e5ce4b9dde3e3ba501e4caf 100644
|
| --- a/content/renderer/scheduler/renderer_scheduler_impl_unittest.cc
|
| +++ b/content/renderer/scheduler/renderer_scheduler_impl_unittest.cc
|
| @@ -12,6 +12,22 @@
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +class FakeInputEvent : public blink::WebInputEvent {
|
| + public:
|
| + explicit FakeInputEvent(blink::WebInputEvent::Type event_type)
|
| + : WebInputEvent(sizeof(FakeInputEvent)) {
|
| + type = event_type;
|
| + }
|
| +
|
| + FakeInputEvent(blink::WebInputEvent::Type event_type, int event_modifiers)
|
| + : WebInputEvent(sizeof(FakeInputEvent)) {
|
| + type = event_type;
|
| + modifiers = event_modifiers;
|
| + }
|
| +};
|
| +}; // namespace
|
| +
|
| class RendererSchedulerImplTest : public testing::Test {
|
| public:
|
| RendererSchedulerImplTest()
|
| @@ -132,7 +148,7 @@ void PostingYieldingTestTask(
|
| task_runner->PostTask(FROM_HERE, base::Bind(NullTask));
|
| if (simulate_input) {
|
| scheduler->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::GestureFlingStart);
|
| + FakeInputEvent(blink::WebInputEvent::GestureFlingStart));
|
| }
|
| *should_yield_after = scheduler->ShouldYieldForHighPriorityWork();
|
| }
|
| @@ -144,7 +160,7 @@ void AnticipationTestTask(RendererSchedulerImpl* scheduler,
|
| *is_anticipated_before = scheduler->IsHighPriorityWorkAnticipated();
|
| if (simulate_input) {
|
| scheduler->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::GestureFlingStart);
|
| + FakeInputEvent(blink::WebInputEvent::GestureFlingStart));
|
| }
|
| *is_anticipated_after = scheduler->IsHighPriorityWorkAnticipated();
|
| }
|
| @@ -349,7 +365,7 @@ TEST_F(RendererSchedulerImplTest, TestCompositorPolicy) {
|
| base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
|
|
| scheduler_->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::GestureFlingStart);
|
| + FakeInputEvent(blink::WebInputEvent::GestureFlingStart));
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| EXPECT_THAT(order, testing::ElementsAre(
|
| @@ -385,7 +401,7 @@ TEST_F(RendererSchedulerImplTest, TestCompositorPolicy_DidAnimateForInput) {
|
| }
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| - DidReceiveInputEventOnCompositorThread_IgnoresMouseEvents) {
|
| + DidReceiveInputEventOnCompositorThread_IgnoresMouseMove_WhenMouseUp) {
|
| std::vector<std::string> order;
|
|
|
| idle_task_runner_->PostIdleTask(
|
| @@ -405,7 +421,7 @@ TEST_F(RendererSchedulerImplTest,
|
| base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
|
|
| scheduler_->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::MouseMove);
|
| + FakeInputEvent(blink::WebInputEvent::MouseMove));
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| // Note compositor tasks are not prioritized.
|
| @@ -415,6 +431,36 @@ TEST_F(RendererSchedulerImplTest,
|
| }
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| + DidReceiveInputEventOnCompositorThread_MouseMove_WhenMouseDown) {
|
| + std::vector<std::string> order;
|
| +
|
| + idle_task_runner_->PostIdleTask(
|
| + FROM_HERE,
|
| + base::Bind(&AppendToVectorIdleTestTask, &order, std::string("I1")));
|
| + default_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&AppendToVectorTestTask, &order, std::string("D1")));
|
| + compositor_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&AppendToVectorTestTask, &order, std::string("C1")));
|
| + default_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&AppendToVectorTestTask, &order, std::string("D2")));
|
| + compositor_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
| +
|
| + scheduler_->DidReceiveInputEventOnCompositorThread(FakeInputEvent(
|
| + blink::WebInputEvent::MouseMove, blink::WebInputEvent::LeftButtonDown));
|
| + EnableIdleTasks();
|
| + RunUntilIdle();
|
| + // Note compositor tasks are not prioritized.
|
| + EXPECT_THAT(order, testing::ElementsAre(std::string("C1"), std::string("C2"),
|
| + std::string("D1"), std::string("D2"),
|
| + std::string("I1")));
|
| +}
|
| +
|
| +TEST_F(RendererSchedulerImplTest,
|
| DidReceiveInputEventOnCompositorThread_IgnoresKeyboardEvents) {
|
| std::vector<std::string> order;
|
|
|
| @@ -435,7 +481,7 @@ TEST_F(RendererSchedulerImplTest,
|
| base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
|
|
| scheduler_->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::KeyDown);
|
| + FakeInputEvent(blink::WebInputEvent::KeyDown));
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| // Note compositor tasks are not prioritized.
|
| @@ -462,7 +508,7 @@ TEST_F(RendererSchedulerImplTest,
|
| base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
|
|
| scheduler_->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::GestureFlingStart);
|
| + FakeInputEvent(blink::WebInputEvent::GestureFlingStart));
|
| RunUntilIdle();
|
| // Ensure that the default D1 task gets to run at some point before the final
|
| // C2 compositor task.
|
| @@ -487,7 +533,7 @@ TEST_F(RendererSchedulerImplTest, TestCompositorPolicyEnds) {
|
| base::Bind(&AppendToVectorTestTask, &order, std::string("C2")));
|
|
|
| scheduler_->DidReceiveInputEventOnCompositorThread(
|
| - blink::WebInputEvent::GestureFlingStart);
|
| + FakeInputEvent(blink::WebInputEvent::GestureFlingStart));
|
| RunUntilIdle();
|
| EXPECT_THAT(order,
|
| testing::ElementsAre(std::string("C1"), std::string("C2"),
|
|
|