| 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 750811cf3252c10586dea2ebfd80857d49d3a309..2a1f4d661d8233d238d6c4f22c461c99e9fc9012 100644
|
| --- a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| +++ b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc
|
| @@ -31,8 +31,8 @@ class WebViewSchedulerImplTest : public testing::Test {
|
| delagate_ = SchedulerTqmDelegateForTest::Create(
|
| mock_task_runner_, make_scoped_ptr(new TestTimeSource(clock_.get())));
|
| scheduler_.reset(new RendererSchedulerImpl(delagate_));
|
| - web_view_scheduler_.reset(
|
| - new WebViewSchedulerImpl(nullptr, scheduler_.get()));
|
| + web_view_scheduler_.reset(new WebViewSchedulerImpl(
|
| + nullptr, scheduler_.get(), DisableBackgroundTimerThrottling()));
|
| web_frame_scheduler_ = web_view_scheduler_->createWebFrameSchedulerImpl();
|
| }
|
|
|
| @@ -43,6 +43,8 @@ class WebViewSchedulerImplTest : public testing::Test {
|
| scheduler_.reset();
|
| }
|
|
|
| + virtual bool DisableBackgroundTimerThrottling() const { return false; }
|
| +
|
| scoped_ptr<base::SimpleTestTickClock> clock_;
|
| scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_;
|
| scoped_refptr<SchedulerTqmDelegate> delagate_;
|
| @@ -127,7 +129,7 @@ TEST_F(WebViewSchedulerImplTest, RepeatingLoadingTask_PageInBackground) {
|
|
|
| TEST_F(WebViewSchedulerImplTest, RepeatingTimers_OneBackgroundOneForeground) {
|
| scoped_ptr<WebViewSchedulerImpl> web_view_scheduler2(
|
| - new WebViewSchedulerImpl(nullptr, scheduler_.get()));
|
| + new WebViewSchedulerImpl(nullptr, scheduler_.get(), false));
|
| scoped_ptr<WebFrameSchedulerImpl> web_frame_scheduler2 =
|
| web_view_scheduler2->createWebFrameSchedulerImpl();
|
|
|
| @@ -150,4 +152,27 @@ TEST_F(WebViewSchedulerImplTest, RepeatingTimers_OneBackgroundOneForeground) {
|
| EXPECT_EQ(1, run_count2);
|
| }
|
|
|
| +class WebViewSchedulerImplTestWithDisabledBackgroundTimerThrottling
|
| + : public WebViewSchedulerImplTest {
|
| + public:
|
| + WebViewSchedulerImplTestWithDisabledBackgroundTimerThrottling() {}
|
| + ~WebViewSchedulerImplTestWithDisabledBackgroundTimerThrottling() override {}
|
| +
|
| + bool DisableBackgroundTimerThrottling() const override { return true; }
|
| +};
|
| +
|
| +TEST_F(WebViewSchedulerImplTestWithDisabledBackgroundTimerThrottling,
|
| + RepeatingTimer_PageInBackground) {
|
| + web_view_scheduler_->setPageInBackground(true);
|
| +
|
| + int run_count = 0;
|
| + web_frame_scheduler_->timerTaskRunner()->postDelayedTask(
|
| + BLINK_FROM_HERE,
|
| + new RepeatingTask(web_frame_scheduler_->timerTaskRunner(), &run_count),
|
| + 1.0);
|
| +
|
| + mock_task_runner_->RunForPeriod(base::TimeDelta::FromSeconds(1));
|
| + EXPECT_EQ(1000, run_count);
|
| +}
|
| +
|
| } // namespace scheduler
|
|
|