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

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h

Issue 2383473002: [scheduler] Teach scheduler about audio state (Closed)
Patch Set: Created 4 years, 3 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: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
index 5b249c76f3fe12d1aa0ca0d09968a7c4cfd86c4a..83cfcbfd9e0401b169c82dc1a745eef558c9b612 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
@@ -160,6 +160,9 @@ class BLINK_PLATFORM_EXPORT TaskQueueThrottler : public TimeDomain::Observer {
// Returns true if the |task_queue| is throttled.
bool IsThrottled(TaskQueue* task_queue) const;
+ // Communicate audio state to TaskQueueThrottler.
+ void SetIsAudioActive(bool is_audio_active);
Sami 2016/09/29 13:36:07 I don't think TaskQueueThrottler should know about
altimin 2016/09/29 16:29:43 Done.
+
// Tells the TaskQueueThrottler we're using virtual time, which disables all
// throttling.
void EnableVirtualTime();
@@ -226,6 +229,16 @@ class BLINK_PLATFORM_EXPORT TaskQueueThrottler : public TimeDomain::Observer {
void MaybeDeleteQueueMetadata(TaskQueueMap::iterator it);
+ // Disable throttling for all queues, this setting takes precedence over
+ // all other throttling settings. Designed to be used when a global event
+ // disabling throttling happens (e.g. audio is playing).
+ void DisableThrottling();
+
+ // Enable back global throttling.
+ void EnableThrottling();
+
+ void UpdateGlobalThrottlingSetting();
alex clarke (OOO till 29th) 2016/09/29 11:16:53 Sami how do you feel about this vs UpdatePolicy? M
Sami 2016/09/29 13:36:07 Yeah I think we want to cause a policy update inst
alex clarke (OOO till 29th) 2016/09/29 13:46:18 Thinking about this more I'd suggest instead of ad
altimin 2016/09/29 16:29:43 Done.
+
TaskQueueMap queue_details_;
base::Callback<void(TaskQueue*)> forward_immediate_work_callback_;
scoped_refptr<TaskQueue> task_runner_;
@@ -236,7 +249,9 @@ class BLINK_PLATFORM_EXPORT TaskQueueThrottler : public TimeDomain::Observer {
CancelableClosureHolder pump_throttled_tasks_closure_;
base::Optional<base::TimeTicks> pending_pump_throttled_tasks_runtime_;
+ bool is_throttling_disabled_;
Sami 2016/09/29 13:36:07 Negative flags hurt my head -- how about allow_thr
altimin 2016/09/29 16:29:43 Done.
bool virtual_time_;
+ bool is_audio_active_;
std::unordered_map<TimeBudgetPool*, std::unique_ptr<TimeBudgetPool>>
time_budget_pools_;

Powered by Google App Engine
This is Rietveld 408576698