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

Side by Side Diff: components/scheduler/renderer/renderer_web_scheduler_impl.cc

Issue 2023033003: scheduler: Throttle timers in out-of-view frames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add cross origin check, tests Created 4 years, 5 months 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 unified diff | Download patch
OLDNEW
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 "components/scheduler/renderer/renderer_web_scheduler_impl.h" 5 #include "components/scheduler/renderer/renderer_web_scheduler_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/feature_list.h"
10 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
11 #include "components/scheduler/base/task_queue.h" 12 #include "components/scheduler/base/task_queue.h"
12 #include "components/scheduler/common/scheduler_switches.h" 13 #include "components/scheduler/common/scheduler_switches.h"
13 #include "components/scheduler/renderer/renderer_scheduler_impl.h" 14 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
14 #include "components/scheduler/renderer/web_view_scheduler_impl.h" 15 #include "components/scheduler/renderer/web_view_scheduler_impl.h"
15 16
16 namespace scheduler { 17 namespace scheduler {
18 namespace {
19 const base::Feature kHiddenTimerThrottlingFeature{
alex clarke (OOO till 29th) 2016/06/28 17:11:28 nit: have you run git cl format?
Sami 2016/06/28 17:22:45 Yep, looks like this is what it wants to do with i
20 "SchedulerHiddenTimerThrottling", base::FEATURE_ENABLED_BY_DEFAULT};
21 }
17 22
18 RendererWebSchedulerImpl::RendererWebSchedulerImpl( 23 RendererWebSchedulerImpl::RendererWebSchedulerImpl(
19 RendererSchedulerImpl* renderer_scheduler) 24 RendererSchedulerImpl* renderer_scheduler)
20 : WebSchedulerImpl(renderer_scheduler, 25 : WebSchedulerImpl(renderer_scheduler,
21 renderer_scheduler->IdleTaskRunner(), 26 renderer_scheduler->IdleTaskRunner(),
22 renderer_scheduler->LoadingTaskRunner(), 27 renderer_scheduler->LoadingTaskRunner(),
23 renderer_scheduler->TimerTaskRunner()), 28 renderer_scheduler->TimerTaskRunner()),
24 renderer_scheduler_(renderer_scheduler) {} 29 renderer_scheduler_(renderer_scheduler) {}
25 30
26 RendererWebSchedulerImpl::~RendererWebSchedulerImpl() { 31 RendererWebSchedulerImpl::~RendererWebSchedulerImpl() {
27 } 32 }
28 33
29 void RendererWebSchedulerImpl::suspendTimerQueue() { 34 void RendererWebSchedulerImpl::suspendTimerQueue() {
30 renderer_scheduler_->SuspendTimerQueue(); 35 renderer_scheduler_->SuspendTimerQueue();
31 } 36 }
32 37
33 void RendererWebSchedulerImpl::resumeTimerQueue() { 38 void RendererWebSchedulerImpl::resumeTimerQueue() {
34 renderer_scheduler_->ResumeTimerQueue(); 39 renderer_scheduler_->ResumeTimerQueue();
35 } 40 }
36 41
37 std::unique_ptr<blink::WebViewScheduler> 42 std::unique_ptr<blink::WebViewScheduler>
38 RendererWebSchedulerImpl::createWebViewScheduler(blink::WebView* web_view) { 43 RendererWebSchedulerImpl::createWebViewScheduler(blink::WebView* web_view) {
44 bool allow_hidden_timer_throttling = true;
alex clarke (OOO till 29th) 2016/06/28 17:11:28 Wait we're enabling this be default? Is that the r
Sami 2016/06/28 17:22:45 Yes, we're planning to use Finch to do a hold-out
45 if (base::FeatureList::GetInstance()) {
46 allow_hidden_timer_throttling =
47 base::FeatureList::IsEnabled(kHiddenTimerThrottlingFeature);
48 }
39 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 49 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
40 return base::WrapUnique(new WebViewSchedulerImpl( 50 return base::WrapUnique(new WebViewSchedulerImpl(
41 web_view, renderer_scheduler_, 51 web_view, renderer_scheduler_,
42 command_line->HasSwitch(switches::kDisableBackgroundTimerThrottling))); 52 command_line->HasSwitch(switches::kDisableBackgroundTimerThrottling),
53 allow_hidden_timer_throttling));
43 } 54 }
44 55
45 void RendererWebSchedulerImpl::onNavigationStarted() { 56 void RendererWebSchedulerImpl::onNavigationStarted() {
46 renderer_scheduler_->OnNavigationStarted(); 57 renderer_scheduler_->OnNavigationStarted();
47 } 58 }
48 59
49 } // namespace scheduler 60 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698