Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc

Issue 2500253002: scheduler: Handle mouse wheel event disposition correctly
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 8ed739bcce408af3e58d1b9c824b5ba77ed7cc54..8d5e0a4bc4bb2f297e12316a093f3e6798081dca 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
@@ -1302,14 +1302,35 @@ TEST_F(RendererSchedulerImplTest, EventConsumedOnCompositorThread_MouseWheel) {
FakeInputEvent(blink::WebInputEvent::MouseWheel),
RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
RunUntilIdle();
- // Note compositor tasks are prioritized.
+ // Note compositor tasks are not prioritized.
+ EXPECT_THAT(run_order,
+ testing::ElementsAre(std::string("D1"), std::string("D2"),
+ std::string("I1"), std::string("C1"),
+ std::string("C2")));
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::COMPOSITOR_GESTURE,
+ CurrentUseCase());
+}
+
+TEST_F(RendererSchedulerImplTest,
+ EventForwardedToMainThread_MouseWheel_PreventDefault) {
+ std::vector<std::string> run_order;
+ PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
+
+ EnableIdleTasks();
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::MouseWheel),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ RunUntilIdle();
+ // Note compositor tasks are prioritized (since they are fast).
EXPECT_THAT(run_order,
testing::ElementsAre(std::string("C1"), std::string("C2"),
std::string("D1"), std::string("D2"),
std::string("I1")));
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::MAIN_THREAD_CUSTOM_INPUT_HANDLING,
+ CurrentUseCase());
}
-TEST_F(RendererSchedulerImplTest, EventForwardedToMainThread_MouseWheel) {
+TEST_F(RendererSchedulerImplTest, EventForwardedToMainThread_NoPreventDefault) {
std::vector<std::string> run_order;
PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
@@ -1317,13 +1338,51 @@ TEST_F(RendererSchedulerImplTest, EventForwardedToMainThread_MouseWheel) {
scheduler_->DidHandleInputEventOnCompositorThread(
FakeInputEvent(blink::WebInputEvent::MouseWheel),
RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollBegin),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollUpdate),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollUpdate),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
RunUntilIdle();
// Note compositor tasks are prioritized.
EXPECT_THAT(run_order,
testing::ElementsAre(std::string("C1"), std::string("C2"),
std::string("D1"), std::string("D2"),
std::string("I1")));
- EXPECT_EQ(RendererSchedulerImpl::UseCase::MAIN_THREAD_CUSTOM_INPUT_HANDLING,
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::MAIN_THREAD_GESTURE,
+ CurrentUseCase());
+}
+
+TEST_F(
+ RendererSchedulerImplTest,
+ EventForwardedToMainThreadAndBackToCompositor_MouseWheel_NoPreventDefault) {
+ std::vector<std::string> run_order;
+ PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
+
+ EnableIdleTasks();
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::MouseWheel),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollBegin),
+ RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollUpdate),
+ RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::GestureScrollUpdate),
+ RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
+ RunUntilIdle();
+ // Note compositor tasks are not prioritized.
+ EXPECT_THAT(run_order,
+ testing::ElementsAre(std::string("D1"), std::string("D2"),
+ std::string("I1"), std::string("C1"),
+ std::string("C2")));
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::COMPOSITOR_GESTURE,
CurrentUseCase());
}
« no previous file with comments | « third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698