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

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

Issue 2476973002: [scheduler] Report background timer throttling intervention. (Closed)
Patch Set: base::Optional<base::Callback> -> base::Callback Created 4 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: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc
index 551c6c5fc530f3a4e93021a9fe296cb2ed683fa0..bdd536c5152c57bb73acb1660422ab955df4c893 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc
@@ -158,6 +158,11 @@ bool TaskQueueThrottler::TimeBudgetPool::IsThrottlingEnabled() const {
return is_enabled_;
}
+void TaskQueueThrottler::TimeBudgetPool::SetReportingCallback(
+ base::Callback<void(base::TimeDelta)> reporting_callback) {
+ reporting_callback_ = reporting_callback;
+}
+
void TaskQueueThrottler::TimeBudgetPool::Close() {
DCHECK_EQ(0u, associated_task_queues_.size());
@@ -185,8 +190,14 @@ void TaskQueueThrottler::TimeBudgetPool::RecordTaskRunTime(
DCHECK_LE(start_time, end_time);
Advance(end_time);
if (is_enabled_) {
+ base::TimeDelta old_budget_level = current_budget_level_;
current_budget_level_ -= (end_time - start_time);
EnforceBudgetLevelRestrictions();
+
+ if (!reporting_callback_.is_null() && old_budget_level.InSecondsF() > 0 &&
+ current_budget_level_.InSecondsF() < 0) {
+ reporting_callback_.Run(-current_budget_level_ / cpu_percentage_);
Sami 2016/11/08 19:05:08 nit: Is forgot if calling a null callback is a no-
altimin 2016/11/08 19:08:47 It's a failure, unfortunately.
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698