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

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

Issue 2810423003: Schedule bitmap animation timers on the compositor task runner. (Closed)
Patch Set: Fix comment. Created 3 years, 7 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 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.

Powered by Google App Engine
This is Rietveld 408576698