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

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

Issue 2266883002: scheduler: Reset gesture state at start of a mouse drag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 months 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
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 ae84420b1a8035020d57d07dcc5f9316e5429543..a70b8f30876449ed25940e42acabea7aec04c241 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
@@ -589,11 +589,6 @@ class RendererSchedulerImplTest : public testing::Test {
RendererSchedulerImpl::kEndIdleWhenHiddenDelayMillis);
}
- static base::TimeDelta idle_period_starvation_threshold() {
- return base::TimeDelta::FromMilliseconds(
- RendererSchedulerImpl::kIdlePeriodStarvationThresholdMillis);
- }
-
static base::TimeDelta suspend_timers_when_backgrounded_delay() {
return base::TimeDelta::FromMilliseconds(
RendererSchedulerImpl::kSuspendTimersWhenBackgroundedDelayMillis);
@@ -1258,17 +1253,21 @@ TEST_F(RendererSchedulerImplTest,
std::vector<std::string> run_order;
PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
+ // Note that currently the compositor will never consume mouse move events,
+ // but this test reflects what should happen if that was the case.
EnableIdleTasks();
scheduler_->DidHandleInputEventOnCompositorThread(
FakeInputEvent(blink::WebInputEvent::MouseMove,
blink::WebInputEvent::LeftButtonDown),
RendererScheduler::InputEventState::EVENT_CONSUMED_BY_COMPOSITOR);
RunUntilIdle();
- // Note compositor tasks are prioritized.
+ // Note compositor tasks deprioritized.
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::COMPOSITOR_GESTURE,
+ CurrentUseCase());
EXPECT_THAT(run_order,
- testing::ElementsAre(std::string("C1"), std::string("C2"),
- std::string("D1"), std::string("D2"),
- std::string("I1")));
+ testing::ElementsAre(std::string("D1"), std::string("D2"),
+ std::string("I1"), std::string("C1"),
+ std::string("C2")));
}
TEST_F(RendererSchedulerImplTest,
@@ -1291,6 +1290,42 @@ TEST_F(RendererSchedulerImplTest,
blink::WebInputEvent::MouseMove, blink::WebInputEvent::LeftButtonDown));
}
+TEST_F(RendererSchedulerImplTest,
+ EventForwardedToMainThread_MouseMove_WhenMouseDown_AfterMouseWheel) {
+ // Simulate a main thread driven mouse wheel scroll gesture.
+ SimulateMainThreadGestureStart(TouchEventPolicy::SEND_TOUCH_START,
+ blink::WebInputEvent::GestureScrollUpdate);
+ RunUntilIdle();
+ EXPECT_FALSE(TouchStartExpectedSoon());
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::MAIN_THREAD_GESTURE,
+ CurrentUseCase());
+
+ // Now start a main thread mouse touch gesture. It should be detected as main
+ // thread custom input handling.
+ std::vector<std::string> run_order;
+ PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
+ EnableIdleTasks();
+
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::MouseDown,
+ blink::WebInputEvent::LeftButtonDown),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ scheduler_->DidHandleInputEventOnCompositorThread(
+ FakeInputEvent(blink::WebInputEvent::MouseMove,
+ blink::WebInputEvent::LeftButtonDown),
+ RendererScheduler::InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD);
+ RunUntilIdle();
+
+ EXPECT_EQ(RendererSchedulerImpl::UseCase::MAIN_THREAD_CUSTOM_INPUT_HANDLING,
+ CurrentUseCase());
+
+ // 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")));
+}
+
TEST_F(RendererSchedulerImplTest, EventConsumedOnCompositorThread_MouseWheel) {
std::vector<std::string> run_order;
PostTestTasks(&run_order, "I1 D1 C1 D2 C2");

Powered by Google App Engine
This is Rietveld 408576698