Index: Source/platform/scheduler/SchedulerTest.cpp |
diff --git a/Source/platform/scheduler/SchedulerTest.cpp b/Source/platform/scheduler/SchedulerTest.cpp |
index 4a3d9dfa07dc24b8f890c3bca349bce39b9d2b2d..d1243b069c50cd6f325ca07787175938be5109d4 100644 |
--- a/Source/platform/scheduler/SchedulerTest.cpp |
+++ b/Source/platform/scheduler/SchedulerTest.cpp |
@@ -432,6 +432,14 @@ TEST_F(SchedulerTest, TestInputEventTriggersShouldYield) |
EXPECT_TRUE(m_scheduler->shouldYieldForHighPriorityWork()); |
} |
+TEST_F(SchedulerTest, TestDidReceiveInputEventDoesNotTriggerShouldYield) |
+{ |
+ ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
+ m_scheduler->didReceiveInputEvent(); |
+ |
+ ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
+} |
+ |
TEST_F(SchedulerTest, TestCompositorEventDoesNotTriggerShouldYield_InNormalMode) |
{ |
ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
@@ -440,6 +448,16 @@ TEST_F(SchedulerTest, TestCompositorEventDoesNotTriggerShouldYield_InNormalMode) |
EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
} |
+TEST_F(SchedulerTest, TestCompositorEventDoesTriggerShouldYield_InLowLatencyMode) |
+{ |
+ m_scheduler->didReceiveInputEvent(); |
+ |
+ ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
+ m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
+ |
+ EXPECT_TRUE(m_scheduler->shouldYieldForHighPriorityWork()); |
+} |
+ |
TEST_F(SchedulerTest, TestInputEventTriggersLowLatencyMode) |
{ |
m_scheduler->postInputTask(FROM_HERE, WTF::bind(&dummyTask)); |
@@ -466,4 +484,21 @@ TEST_F(SchedulerTest, TestCompositorEvent_LowLatencyModeDoesntLastLongWithoutInp |
EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
} |
+TEST_F(SchedulerTest, testDidReceiveInputEvent_DoesntTriggerLowLatencyModeForLong) |
+{ |
+ SchedulerTestingPlatformSupport::setDebugTime(1000.0); |
+ |
+ // Note the latency mode gets reset by executeHighPriorityTasks, so we need a dummy task here |
+ // to make sure runPendingTasks triggers executeHighPriorityTasks. |
+ m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
+ m_scheduler->didReceiveInputEvent(); |
+ SchedulerTestingPlatformSupport::setDebugTime(1000.5); |
+ runPendingTasks(); |
+ |
+ ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
+ m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
+ |
+ EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
+} |
+ |
} // namespace |