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

Unified Diff: components/scheduler/renderer/idle_time_estimator.cc

Issue 1409073002: Make IdleTimeEstimator ignore nested tasks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Needs to be DCHECK_GE Created 5 years, 2 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: 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..52e72da2eba36a009b958afba2ea72cc3f80893c 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,16 @@ 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_--;
+ DCHECK_GE(nesting_level_, 0);
+ if (nesting_level_ != 0)
+ return;
+
cumulative_compositor_runtime_ += time_source_->NowTicks() - task_start_time_;
if (did_commit_) {
@@ -67,7 +73,6 @@ void IdleTimeEstimator::DidProcessTask(const base::PendingTask& pending_task) {
cumulative_compositor_runtime_ = base::TimeDelta();
did_commit_ = false;
}
- nesting_level_--;
}
} // namespace scheduler
« no previous file with comments | « components/scheduler/renderer/idle_time_estimator.h ('k') | components/scheduler/renderer/idle_time_estimator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698