Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(351)

Unified Diff: components/scheduler/renderer/web_view_scheduler_impl_unittest.cc

Issue 1478313002: Add a flag disable background timer alignment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « components/scheduler/renderer/web_view_scheduler_impl.cc ('k') | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698