| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/scheduler/scheduler.h" | 5 #include "cc/scheduler/scheduler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1139 EXPECT_EQ(scheduler->MainThreadIsInHighLatencyMode(), | 1139 EXPECT_EQ(scheduler->MainThreadIsInHighLatencyMode(), |
| 1140 should_send_begin_main_frame); | 1140 should_send_begin_main_frame); |
| 1141 EXPECT_EQ(client.HasAction("ScheduledActionSendBeginMainFrame"), | 1141 EXPECT_EQ(client.HasAction("ScheduledActionSendBeginMainFrame"), |
| 1142 should_send_begin_main_frame); | 1142 should_send_begin_main_frame); |
| 1143 } | 1143 } |
| 1144 | 1144 |
| 1145 TEST(SchedulerTest, | 1145 TEST(SchedulerTest, |
| 1146 SkipMainFrameIfHighLatencyAndCanCommitAndActivateBeforeDeadline) { | 1146 SkipMainFrameIfHighLatencyAndCanCommitAndActivateBeforeDeadline) { |
| 1147 // Set up client so that estimates indicate that we can commit and activate | 1147 // Set up client so that estimates indicate that we can commit and activate |
| 1148 // before the deadline (~8ms by default). | 1148 // before the deadline (~8ms by default). |
| 1149 MainFrameInHighLatencyMode(1, 1, false, false); | 1149 EXPECT_SCOPED(MainFrameInHighLatencyMode(1, 1, false, false)); |
| 1150 } | 1150 } |
| 1151 | 1151 |
| 1152 TEST(SchedulerTest, NotSkipMainFrameIfHighLatencyAndCanCommitTooLong) { | 1152 TEST(SchedulerTest, NotSkipMainFrameIfHighLatencyAndCanCommitTooLong) { |
| 1153 // Set up client so that estimates indicate that the commit cannot finish | 1153 // Set up client so that estimates indicate that the commit cannot finish |
| 1154 // before the deadline (~8ms by default). | 1154 // before the deadline (~8ms by default). |
| 1155 MainFrameInHighLatencyMode(10, 1, false, true); | 1155 EXPECT_SCOPED(MainFrameInHighLatencyMode(10, 1, false, true)); |
| 1156 } | 1156 } |
| 1157 | 1157 |
| 1158 TEST(SchedulerTest, NotSkipMainFrameIfHighLatencyAndCanActivateTooLong) { | 1158 TEST(SchedulerTest, NotSkipMainFrameIfHighLatencyAndCanActivateTooLong) { |
| 1159 // Set up client so that estimates indicate that the activate cannot finish | 1159 // Set up client so that estimates indicate that the activate cannot finish |
| 1160 // before the deadline (~8ms by default). | 1160 // before the deadline (~8ms by default). |
| 1161 MainFrameInHighLatencyMode(1, 10, false, true); | 1161 EXPECT_SCOPED(MainFrameInHighLatencyMode(1, 10, false, true)); |
| 1162 } | 1162 } |
| 1163 | 1163 |
| 1164 TEST(SchedulerTest, NotSkipMainFrameInPreferImplLatencyMode) { | 1164 TEST(SchedulerTest, NotSkipMainFrameInPreferImplLatencyMode) { |
| 1165 // Set up client so that estimates indicate that we can commit and activate | 1165 // Set up client so that estimates indicate that we can commit and activate |
| 1166 // before the deadline (~8ms by default), but also enable impl latency takes | 1166 // before the deadline (~8ms by default), but also enable impl latency takes |
| 1167 // priority mode. | 1167 // priority mode. |
| 1168 MainFrameInHighLatencyMode(1, 1, true, true); | 1168 EXPECT_SCOPED(MainFrameInHighLatencyMode(1, 1, true, true)); |
| 1169 } | 1169 } |
| 1170 | 1170 |
| 1171 TEST(SchedulerTest, PollForCommitCompletion) { | 1171 TEST(SchedulerTest, PollForCommitCompletion) { |
| 1172 // Since we are simulating a long commit, set up a client with draw duration | 1172 // Since we are simulating a long commit, set up a client with draw duration |
| 1173 // estimates that prevent skipping main frames to get to low latency mode. | 1173 // estimates that prevent skipping main frames to get to low latency mode. |
| 1174 SchedulerClientWithFixedEstimates client( | 1174 SchedulerClientWithFixedEstimates client( |
| 1175 base::TimeDelta::FromMilliseconds(1), | 1175 base::TimeDelta::FromMilliseconds(1), |
| 1176 base::TimeDelta::FromMilliseconds(32), | 1176 base::TimeDelta::FromMilliseconds(32), |
| 1177 base::TimeDelta::FromMilliseconds(32)); | 1177 base::TimeDelta::FromMilliseconds(32)); |
| 1178 SchedulerSettings scheduler_settings; | 1178 SchedulerSettings scheduler_settings; |
| (...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2195 | 2195 |
| 2196 // Deadline task is pending | 2196 // Deadline task is pending |
| 2197 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); | 2197 EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); |
| 2198 client.task_runner().RunPendingTasks(); | 2198 client.task_runner().RunPendingTasks(); |
| 2199 // Deadline task runs immediately | 2199 // Deadline task runs immediately |
| 2200 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); | 2200 EXPECT_FALSE(scheduler->BeginImplFrameDeadlinePending()); |
| 2201 } | 2201 } |
| 2202 | 2202 |
| 2203 } // namespace | 2203 } // namespace |
| 2204 } // namespace cc | 2204 } // namespace cc |
| OLD | NEW |