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

Unified Diff: components/scheduler/renderer/web_frame_scheduler_impl.h

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, 6 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 side-by-side diff with in-line comments
Download patch
Index: components/scheduler/renderer/web_frame_scheduler_impl.h
diff --git a/components/scheduler/renderer/web_frame_scheduler_impl.h b/components/scheduler/renderer/web_frame_scheduler_impl.h
index 25a18518660c6425e9f01077f547380fe8832e5b..20bf2b85f040d82179402d814beb8c55ce4e2ea3 100644
--- a/components/scheduler/renderer/web_frame_scheduler_impl.h
+++ b/components/scheduler/renderer/web_frame_scheduler_impl.h
@@ -33,13 +33,15 @@ class SCHEDULER_EXPORT WebFrameSchedulerImpl : public blink::WebFrameScheduler {
public:
WebFrameSchedulerImpl(RendererSchedulerImpl* renderer_scheduler,
WebViewSchedulerImpl* parent_web_view_scheduler,
- base::trace_event::BlameContext* blame_context);
+ base::trace_event::BlameContext* blame_context,
+ bool allow_hidden_timer_throttling);
~WebFrameSchedulerImpl() override;
// blink::WebFrameScheduler implementation:
void setFrameVisible(bool frame_visible) override;
void setPageVisible(bool page_visible) override;
+ void setCrossOrigin(bool cross_origin) override;
blink::WebTaskRunner* loadingTaskRunner() override;
blink::WebTaskRunner* timerTaskRunner() override;
@@ -49,7 +51,8 @@ class SCHEDULER_EXPORT WebFrameSchedulerImpl : public blink::WebFrameScheduler {
friend class WebViewSchedulerImpl;
void DetachFromWebViewScheduler();
- void ApplyPolicyToTimerQueue();
+ bool ShouldThrottleTimers() const;
+ void UpdateTimerThrottling(bool was_throttled);
scoped_refptr<TaskQueue> loading_task_queue_;
scoped_refptr<TaskQueue> timer_task_queue_;
@@ -61,6 +64,8 @@ class SCHEDULER_EXPORT WebFrameSchedulerImpl : public blink::WebFrameScheduler {
TaskQueue::PumpPolicy virtual_time_pump_policy_;
bool frame_visible_;
alex clarke (OOO till 29th) 2016/06/28 17:11:28 I can't help thinking this state would be useful t
Sami 2016/06/28 17:22:45 Yes, I thought about that too. Let's figure out a
bool page_visible_;
+ bool cross_origin_;
+ bool allow_hidden_timer_throttling_;
alex clarke (OOO till 29th) 2016/06/28 17:11:28 const
Sami 2016/06/28 17:22:45 Done.
DISALLOW_COPY_AND_ASSIGN(WebFrameSchedulerImpl);
};

Powered by Google App Engine
This is Rietveld 408576698