Chromium Code Reviews| Index: components/scheduler/renderer/idle_time_estimator.cc |
| diff --git a/components/scheduler/renderer/idle_time_estimator.cc b/components/scheduler/renderer/idle_time_estimator.cc |
| index 5d572a2831776854a41a2e03cf1ac1fbb2f83943..c3a0c48a85ee18ccb303eabaa285d0abad3b0219 100644 |
| --- a/components/scheduler/renderer/idle_time_estimator.cc |
| +++ b/components/scheduler/renderer/idle_time_estimator.cc |
| @@ -36,7 +36,8 @@ base::TimeDelta IdleTimeEstimator::GetExpectedIdleDuration( |
| void IdleTimeEstimator::DidCommitFrameToCompositor() { |
| // This will run inside of a WillProcessTask / DidProcessTask pair, let |
| // DidProcessTask know a frame was comitted. |
| - did_commit_ = true; |
| + if (nesting_level_ == 1) |
| + did_commit_ = true; |
| } |
| void IdleTimeEstimator::Clear() { |
| @@ -54,11 +55,15 @@ void IdleTimeEstimator::SetTimeSourceForTesting( |
| void IdleTimeEstimator::WillProcessTask(const base::PendingTask& pending_task) { |
| nesting_level_++; |
| - task_start_time_ = time_source_->NowTicks(); |
| + if (nesting_level_ == 1) |
| + task_start_time_ = time_source_->NowTicks(); |
| } |
| void IdleTimeEstimator::DidProcessTask(const base::PendingTask& pending_task) { |
| - DCHECK_EQ(nesting_level_, 1); |
| + nesting_level_--; |
|
Sami
2015/10/16 10:52:11
nit: DCHECK_GT(nesting_level_, 0);
alex clarke (OOO till 29th)
2015/10/16 10:54:46
Done.
|
| + if (nesting_level_ != 0) |
| + return; |
| + |
| cumulative_compositor_runtime_ += time_source_->NowTicks() - task_start_time_; |
| if (did_commit_) { |
| @@ -67,7 +72,6 @@ void IdleTimeEstimator::DidProcessTask(const base::PendingTask& pending_task) { |
| cumulative_compositor_runtime_ = base::TimeDelta(); |
| did_commit_ = false; |
| } |
| - nesting_level_--; |
| } |
| } // namespace scheduler |