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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 std::unique_ptr<WTF::Closure> MakeVirtualTimeRecorderTask( | 236 std::unique_ptr<WTF::Closure> MakeVirtualTimeRecorderTask( |
237 base::SimpleTestTickClock* clock, | 237 base::SimpleTestTickClock* clock, |
238 RefPtr<blink::WebTaskRunner> web_task_runner, | 238 RefPtr<blink::WebTaskRunner> web_task_runner, |
239 std::vector<base::TimeTicks>* out_real_times, | 239 std::vector<base::TimeTicks>* out_real_times, |
240 std::vector<size_t>* out_virtual_times_ms) { | 240 std::vector<size_t>* out_virtual_times_ms) { |
241 return WTF::Bind(&RunVirtualTimeRecorderTask, WTF::Unretained(clock), | 241 return WTF::Bind(&RunVirtualTimeRecorderTask, WTF::Unretained(clock), |
242 WTF::Passed(std::move(web_task_runner)), | 242 WTF::Passed(std::move(web_task_runner)), |
243 WTF::Unretained(out_real_times), | 243 WTF::Unretained(out_real_times), |
244 WTF::Unretained(out_virtual_times_ms)); | 244 WTF::Unretained(out_virtual_times_ms)); |
245 } | 245 } |
246 } | 246 } // namespace |
247 | 247 |
248 TEST_F(WebViewSchedulerImplTest, VirtualTime_TimerFastForwarding) { | 248 TEST_F(WebViewSchedulerImplTest, VirtualTime_TimerFastForwarding) { |
249 std::vector<base::TimeTicks> real_times; | 249 std::vector<base::TimeTicks> real_times; |
250 std::vector<size_t> virtual_times_ms; | 250 std::vector<size_t> virtual_times_ms; |
251 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); | 251 base::TimeTicks initial_real_time = scheduler_->tick_clock()->NowTicks(); |
252 size_t initial_virtual_time_ms = | 252 size_t initial_virtual_time_ms = |
253 web_frame_scheduler_->TimerTaskRunner() | 253 web_frame_scheduler_->TimerTaskRunner() |
254 ->MonotonicallyIncreasingVirtualTimeSeconds() * | 254 ->MonotonicallyIncreasingVirtualTimeSeconds() * |
255 1000.0; | 255 1000.0; |
256 | 256 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 } | 355 } |
356 | 356 |
357 void DelayedRunOrderTask(int index, | 357 void DelayedRunOrderTask(int index, |
358 RefPtr<blink::WebTaskRunner> task_runner, | 358 RefPtr<blink::WebTaskRunner> task_runner, |
359 std::vector<int>* out_run_order) { | 359 std::vector<int>* out_run_order) { |
360 out_run_order->push_back(index); | 360 out_run_order->push_back(index); |
361 task_runner->PostTask( | 361 task_runner->PostTask( |
362 BLINK_FROM_HERE, | 362 BLINK_FROM_HERE, |
363 WTF::Bind(&RunOrderTask, index + 1, WTF::Unretained(out_run_order))); | 363 WTF::Bind(&RunOrderTask, index + 1, WTF::Unretained(out_run_order))); |
364 } | 364 } |
365 } | 365 } // namespace |
366 | 366 |
367 TEST_F(WebViewSchedulerImplTest, VirtualTime_NotAllowedToAdvance) { | 367 TEST_F(WebViewSchedulerImplTest, VirtualTime_NotAllowedToAdvance) { |
368 std::vector<int> run_order; | 368 std::vector<int> run_order; |
369 | 369 |
370 web_view_scheduler_->SetVirtualTimePolicy(VirtualTimePolicy::PAUSE); | 370 web_view_scheduler_->SetVirtualTimePolicy(VirtualTimePolicy::PAUSE); |
371 web_view_scheduler_->EnableVirtualTime(); | 371 web_view_scheduler_->EnableVirtualTime(); |
372 | 372 |
373 web_frame_scheduler_->TimerTaskRunner()->PostTask( | 373 web_frame_scheduler_->TimerTaskRunner()->PostTask( |
374 BLINK_FROM_HERE, | 374 BLINK_FROM_HERE, |
375 WTF::Bind(&RunOrderTask, 0, WTF::Unretained(&run_order))); | 375 WTF::Bind(&RunOrderTask, 0, WTF::Unretained(&run_order))); |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 // WebSocket is closed, budget-based throttling now applies. | 934 // WebSocket is closed, budget-based throttling now applies. |
935 EXPECT_THAT( | 935 EXPECT_THAT( |
936 run_times, | 936 run_times, |
937 ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(84), | 937 ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(84), |
938 base::TimeTicks() + base::TimeDelta::FromSeconds(109), | 938 base::TimeTicks() + base::TimeDelta::FromSeconds(109), |
939 base::TimeTicks() + base::TimeDelta::FromSeconds(134))); | 939 base::TimeTicks() + base::TimeDelta::FromSeconds(134))); |
940 } | 940 } |
941 | 941 |
942 } // namespace scheduler | 942 } // namespace scheduler |
943 } // namespace blink | 943 } // namespace blink |
OLD | NEW |