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 |