| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "platform/scheduler/renderer/web_view_scheduler_impl.h" | 5 #include "platform/scheduler/renderer/web_view_scheduler_impl.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 | 272 |
| 273 web_frame_scheduler_->timerTaskRunner()->postDelayedTask( | 273 web_frame_scheduler_->timerTaskRunner()->postDelayedTask( |
| 274 BLINK_FROM_HERE, | 274 BLINK_FROM_HERE, |
| 275 makeVirtualTimeRecorderTask(clock_.get(), | 275 makeVirtualTimeRecorderTask(clock_.get(), |
| 276 web_frame_scheduler_->timerTaskRunner(), | 276 web_frame_scheduler_->timerTaskRunner(), |
| 277 &real_times, &virtual_times_ms), | 277 &real_times, &virtual_times_ms), |
| 278 200.0); | 278 200.0); |
| 279 | 279 |
| 280 mock_task_runner_->RunUntilIdle(); | 280 mock_task_runner_->RunUntilIdle(); |
| 281 | 281 |
| 282 EXPECT_THAT(real_times, ElementsAre(initial_real_time, initial_real_time, | 282 EXPECT_THAT( |
| 283 initial_real_time)); | 283 real_times, |
| 284 EXPECT_THAT(virtual_times_ms, ElementsAre(initial_virtual_time_ms + 2, | 284 ElementsAre(initial_real_time, initial_real_time, initial_real_time)); |
| 285 initial_virtual_time_ms + 20, | 285 EXPECT_THAT( |
| 286 initial_virtual_time_ms + 200)); | 286 virtual_times_ms, |
| 287 ElementsAre(initial_virtual_time_ms + 2, initial_virtual_time_ms + 20, |
| 288 initial_virtual_time_ms + 200)); |
| 287 } | 289 } |
| 288 | 290 |
| 289 TEST_F(WebViewSchedulerImplTest, VirtualTime_LoadingTaskFastForwarding) { | 291 TEST_F(WebViewSchedulerImplTest, VirtualTime_LoadingTaskFastForwarding) { |
| 290 std::vector<base::TimeTicks> real_times; | 292 std::vector<base::TimeTicks> real_times; |
| 291 std::vector<size_t> virtual_times_ms; | 293 std::vector<size_t> virtual_times_ms; |
| 292 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); | 294 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); |
| 293 size_t initial_virtual_time_ms = | 295 size_t initial_virtual_time_ms = |
| 294 web_frame_scheduler_->timerTaskRunner() | 296 web_frame_scheduler_->timerTaskRunner() |
| 295 ->monotonicallyIncreasingVirtualTimeSeconds() * | 297 ->monotonicallyIncreasingVirtualTimeSeconds() * |
| 296 1000.0; | 298 1000.0; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 313 | 315 |
| 314 web_frame_scheduler_->loadingTaskRunner()->postDelayedTask( | 316 web_frame_scheduler_->loadingTaskRunner()->postDelayedTask( |
| 315 BLINK_FROM_HERE, | 317 BLINK_FROM_HERE, |
| 316 makeVirtualTimeRecorderTask(clock_.get(), | 318 makeVirtualTimeRecorderTask(clock_.get(), |
| 317 web_frame_scheduler_->loadingTaskRunner(), | 319 web_frame_scheduler_->loadingTaskRunner(), |
| 318 &real_times, &virtual_times_ms), | 320 &real_times, &virtual_times_ms), |
| 319 200.0); | 321 200.0); |
| 320 | 322 |
| 321 mock_task_runner_->RunUntilIdle(); | 323 mock_task_runner_->RunUntilIdle(); |
| 322 | 324 |
| 323 EXPECT_THAT(real_times, ElementsAre(initial_real_time, initial_real_time, | 325 EXPECT_THAT( |
| 324 initial_real_time)); | 326 real_times, |
| 325 EXPECT_THAT(virtual_times_ms, ElementsAre(initial_virtual_time_ms + 2, | 327 ElementsAre(initial_real_time, initial_real_time, initial_real_time)); |
| 326 initial_virtual_time_ms + 20, | 328 EXPECT_THAT( |
| 327 initial_virtual_time_ms + 200)); | 329 virtual_times_ms, |
| 330 ElementsAre(initial_virtual_time_ms + 2, initial_virtual_time_ms + 20, |
| 331 initial_virtual_time_ms + 200)); |
| 328 } | 332 } |
| 329 | 333 |
| 330 TEST_F(WebViewSchedulerImplTest, | 334 TEST_F(WebViewSchedulerImplTest, |
| 331 RepeatingTimer_PageInBackground_MeansNothingForVirtualTime) { | 335 RepeatingTimer_PageInBackground_MeansNothingForVirtualTime) { |
| 332 web_view_scheduler_->enableVirtualTime(); | 336 web_view_scheduler_->enableVirtualTime(); |
| 333 web_view_scheduler_->setPageVisible(false); | 337 web_view_scheduler_->setPageVisible(false); |
| 334 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); | 338 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); |
| 335 | 339 |
| 336 int run_count = 0; | 340 int run_count = 0; |
| 337 web_frame_scheduler_->timerTaskRunner()->postDelayedTask( | 341 web_frame_scheduler_->timerTaskRunner()->postDelayedTask( |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 // WebSocket is closed, budget-based throttling now applies. | 784 // WebSocket is closed, budget-based throttling now applies. |
| 781 EXPECT_THAT( | 785 EXPECT_THAT( |
| 782 run_times, | 786 run_times, |
| 783 ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(84), | 787 ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(84), |
| 784 base::TimeTicks() + base::TimeDelta::FromSeconds(109), | 788 base::TimeTicks() + base::TimeDelta::FromSeconds(109), |
| 785 base::TimeTicks() + base::TimeDelta::FromSeconds(134))); | 789 base::TimeTicks() + base::TimeDelta::FromSeconds(134))); |
| 786 } | 790 } |
| 787 | 791 |
| 788 } // namespace scheduler | 792 } // namespace scheduler |
| 789 } // namespace blink | 793 } // namespace blink |
| OLD | NEW |