Chromium Code Reviews| 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.
|
| + } |
| } |
| } |