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