| 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 4e00051f40a710ee94f55494cd7f71890d459c28..6b82327c7b1591da11e694c38548f133d7415e7d 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
|
| @@ -568,6 +568,17 @@ class RendererSchedulerImplTest : public testing::Test {
|
| scheduler_->seqlock_queueing_time_estimator_.seqlock.WriteEnd();
|
| }
|
|
|
| + void RunSlowCompositorTask() {
|
| + // Run a long compositor task so that compositor tasks appear to be running
|
| + // slow and thus compositor tasks will not be prioritized.
|
| + compositor_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&RendererSchedulerImplTest::SimulateMainThreadCompositorTask,
|
| + base::Unretained(this),
|
| + base::TimeDelta::FromMilliseconds(1000)));
|
| + RunUntilIdle();
|
| + }
|
| +
|
| // Helper for posting several tasks of specific types. |task_descriptor| is a
|
| // string with space delimited task identifiers. The first letter of each
|
| // task identifier specifies the task type:
|
| @@ -836,6 +847,21 @@ TEST_F(RendererSchedulerImplTest, TestDefaultPolicy) {
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| EXPECT_THAT(run_order,
|
| + testing::ElementsAre(std::string("C1"), std::string("C2"),
|
| + std::string("L1"), std::string("D1"),
|
| + std::string("D2"), std::string("I1")));
|
| + EXPECT_EQ(RendererSchedulerImpl::UseCase::NONE, CurrentUseCase());
|
| +}
|
| +
|
| +TEST_F(RendererSchedulerImplTest, TestDefaultPolicyWithSlowCompositor) {
|
| + RunSlowCompositorTask();
|
| +
|
| + std::vector<std::string> run_order;
|
| + PostTestTasks(&run_order, "L1 I1 D1 C1 D2 C2");
|
| +
|
| + EnableIdleTasks();
|
| + RunUntilIdle();
|
| + EXPECT_THAT(run_order,
|
| testing::ElementsAre(std::string("L1"), std::string("D1"),
|
| std::string("C1"), std::string("D2"),
|
| std::string("C2"), std::string("I1")));
|
| @@ -1257,6 +1283,8 @@ TEST_F(RendererSchedulerImplTest, DISABLED_LoadingUseCase) {
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| EventConsumedOnCompositorThread_IgnoresMouseMove_WhenMouseUp) {
|
| + RunSlowCompositorTask();
|
| +
|
| std::vector<std::string> run_order;
|
| PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
|
|
|
| @@ -1275,6 +1303,8 @@ TEST_F(RendererSchedulerImplTest,
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| EventForwardedToMainThread_IgnoresMouseMove_WhenMouseUp) {
|
| + RunSlowCompositorTask();
|
| +
|
| std::vector<std::string> run_order;
|
| PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
|
|
|
| @@ -1495,6 +1525,8 @@ TEST_F(
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| EventConsumedOnCompositorThread_IgnoresKeyboardEvents) {
|
| + RunSlowCompositorTask();
|
| +
|
| std::vector<std::string> run_order;
|
| PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
|
|
|
| @@ -1513,6 +1545,8 @@ TEST_F(RendererSchedulerImplTest,
|
|
|
| TEST_F(RendererSchedulerImplTest,
|
| EventForwardedToMainThread_IgnoresKeyboardEvents) {
|
| + RunSlowCompositorTask();
|
| +
|
| std::vector<std::string> run_order;
|
| PostTestTasks(&run_order, "I1 D1 C1 D2 C2");
|
|
|
| @@ -2382,7 +2416,7 @@ TEST_F(RendererSchedulerImplTest, SuspendRenderer) {
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| EXPECT_THAT(run_order,
|
| - testing::ElementsAre(std::string("D1"), std::string("C1"),
|
| + testing::ElementsAre(std::string("C1"), std::string("D1"),
|
| std::string("I1")));
|
|
|
| // The rest queued tasks fire when the tab goes foregrounded.
|
| @@ -2414,7 +2448,7 @@ TEST_F(RendererSchedulerImplTest, ResumeRenderer) {
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| EXPECT_THAT(run_order,
|
| - testing::ElementsAre(std::string("D1"), std::string("C1"),
|
| + testing::ElementsAre(std::string("C1"), std::string("D1"),
|
| std::string("I1")));
|
|
|
| // The rest queued tasks fire when the renderer is resumed.
|
| @@ -2432,7 +2466,7 @@ TEST_F(RendererSchedulerImplTest, ResumeRenderer) {
|
| EnableIdleTasks();
|
| RunUntilIdle();
|
| EXPECT_THAT(run_order,
|
| - testing::ElementsAre(std::string("D2"), std::string("C2"),
|
| + testing::ElementsAre(std::string("C2"), std::string("D2"),
|
| std::string("I2")));
|
|
|
| // The rest queued tasks fire when the renderer is resumed.
|
|
|