| Index: components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| diff --git a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| index 2611332bf07617accb372e39cec4dc03ba4cc183..4a482a02732afdecb6c69d5f79a3f7f64fd75a6b 100644
|
| --- a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| +++ b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| @@ -158,23 +158,26 @@ TEST_F(WebViewSchedulerImplTest, RepeatingTimers_OneBackgroundOneForeground) {
|
| namespace {
|
| class VirtualTimeRecorderTask : public blink::WebTaskRunner::Task {
|
| public:
|
| - VirtualTimeRecorderTask(RendererSchedulerImpl* scheduler,
|
| + VirtualTimeRecorderTask(base::SimpleTestTickClock* clock,
|
| + blink::WebTaskRunner* web_task_runner,
|
| std::vector<base::TimeTicks>* out_real_times,
|
| std::vector<size_t>* out_virtual_times_ms)
|
| - : scheduler_(scheduler),
|
| + : clock_(clock),
|
| + web_task_runner_(web_task_runner),
|
| out_real_times_(out_real_times),
|
| out_virtual_times_ms_(out_virtual_times_ms) {}
|
|
|
| ~VirtualTimeRecorderTask() override {}
|
|
|
| void run() override {
|
| - out_real_times_->push_back(scheduler_->tick_clock()->NowTicks());
|
| + out_real_times_->push_back(clock_->NowTicks());
|
| out_virtual_times_ms_->push_back(
|
| - scheduler_->MonotonicallyIncreasingVirtualTimeSeconds() * 1000.0);
|
| + web_task_runner_->monotonicallyIncreasingVirtualTimeSeconds() * 1000.0);
|
| }
|
|
|
| private:
|
| - RendererSchedulerImpl* scheduler_; // NOT OWNED
|
| + base::SimpleTestTickClock* clock_; // NOT OWNED
|
| + blink::WebTaskRunner* web_task_runner_; // NOT OWNED
|
| std::vector<base::TimeTicks>* out_real_times_; // NOT OWNED
|
| std::vector<size_t>* out_virtual_times_ms_; // NOT OWNED
|
| };
|
| @@ -185,26 +188,31 @@ TEST_F(WebViewSchedulerImplTest, VirtualTime_TimerFastForwarding) {
|
| std::vector<size_t> virtual_times_ms;
|
| base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks();
|
| size_t initial_virtual_time_ms =
|
| - scheduler_->MonotonicallyIncreasingVirtualTimeSeconds() * 1000.0;
|
| + web_frame_scheduler_->timerTaskRunner()
|
| + ->monotonicallyIncreasingVirtualTimeSeconds() *
|
| + 1000.0;
|
|
|
| web_view_scheduler_->enableVirtualTime();
|
|
|
| web_frame_scheduler_->timerTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->timerTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 2.0);
|
|
|
| web_frame_scheduler_->timerTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->timerTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 20.0);
|
|
|
| web_frame_scheduler_->timerTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->timerTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 200.0);
|
|
|
| mock_task_runner_->RunUntilIdle();
|
| @@ -222,26 +230,31 @@ TEST_F(WebViewSchedulerImplTest, VirtualTime_LoadingTaskFastForwarding) {
|
| std::vector<size_t> virtual_times_ms;
|
| base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks();
|
| size_t initial_virtual_time_ms =
|
| - scheduler_->MonotonicallyIncreasingVirtualTimeSeconds() * 1000.0;
|
| + web_frame_scheduler_->timerTaskRunner()
|
| + ->monotonicallyIncreasingVirtualTimeSeconds() *
|
| + 1000.0;
|
|
|
| web_view_scheduler_->enableVirtualTime();
|
|
|
| web_frame_scheduler_->loadingTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->loadingTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 2.0);
|
|
|
| web_frame_scheduler_->loadingTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->loadingTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 20.0);
|
|
|
| web_frame_scheduler_->loadingTaskRunner()->postDelayedTask(
|
| BLINK_FROM_HERE,
|
| - new VirtualTimeRecorderTask(scheduler_.get(), &real_times,
|
| - &virtual_times_ms),
|
| + new VirtualTimeRecorderTask(clock_.get(),
|
| + web_frame_scheduler_->loadingTaskRunner(),
|
| + &real_times, &virtual_times_ms),
|
| 200.0);
|
|
|
| mock_task_runner_->RunUntilIdle();
|
| @@ -255,7 +268,7 @@ TEST_F(WebViewSchedulerImplTest, VirtualTime_LoadingTaskFastForwarding) {
|
| }
|
|
|
| TEST_F(WebViewSchedulerImplTest,
|
| - RepeatingTimer_PageInBackground_MeansNothingForFirtualTime) {
|
| + RepeatingTimer_PageInBackground_MeansNothingForVirtualTime) {
|
| web_view_scheduler_->enableVirtualTime();
|
| web_view_scheduler_->setPageVisible(false);
|
| base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks();
|
| @@ -267,6 +280,7 @@ TEST_F(WebViewSchedulerImplTest,
|
| 1.0);
|
|
|
| mock_task_runner_->RunTasksWhile(mock_task_runner_->TaskRunCountBelow(2000));
|
| + // Virtual time means page visibility is ignored.
|
| EXPECT_EQ(1999, run_count);
|
|
|
| // The global tick clock has not moved, yet we ran a large number of "delayed"
|
|
|