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