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

Side by Side Diff: components/scheduler/child/idle_helper.cc

Issue 1441073006: Move throttling of background timers into the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Last few changes Sami requested Created 5 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/scheduler/child/idle_helper.h" 5 #include "components/scheduler/child/idle_helper.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "base/trace_event/trace_event_argument.h" 9 #include "base/trace_event/trace_event_argument.h"
10 #include "components/scheduler/base/real_time_domain.h" 10 #include "components/scheduler/base/real_time_domain.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 // Limit the idle period duration to be before the next pending task. 86 // Limit the idle period duration to be before the next pending task.
87 long_idle_period_duration = std::min(next_pending_delayed_task - now, 87 long_idle_period_duration = std::min(next_pending_delayed_task - now,
88 max_long_idle_period_duration); 88 max_long_idle_period_duration);
89 } else { 89 } else {
90 long_idle_period_duration = max_long_idle_period_duration; 90 long_idle_period_duration = max_long_idle_period_duration;
91 } 91 }
92 92
93 if (long_idle_period_duration >= 93 if (long_idle_period_duration >=
94 base::TimeDelta::FromMilliseconds(kMinimumIdlePeriodDurationMillis)) { 94 base::TimeDelta::FromMilliseconds(kMinimumIdlePeriodDurationMillis)) {
95 *next_long_idle_period_delay_out = long_idle_period_duration; 95 *next_long_idle_period_delay_out = long_idle_period_duration;
96 if (idle_queue_->IsQueueEmpty()) { 96 if (!idle_queue_->HasPendingImmediateTask()) {
97 return IdlePeriodState::IN_LONG_IDLE_PERIOD_PAUSED; 97 return IdlePeriodState::IN_LONG_IDLE_PERIOD_PAUSED;
98 } else if (long_idle_period_duration == max_long_idle_period_duration) { 98 } else if (long_idle_period_duration == max_long_idle_period_duration) {
99 return IdlePeriodState::IN_LONG_IDLE_PERIOD_WITH_MAX_DEADLINE; 99 return IdlePeriodState::IN_LONG_IDLE_PERIOD_WITH_MAX_DEADLINE;
100 } else { 100 } else {
101 return IdlePeriodState::IN_LONG_IDLE_PERIOD; 101 return IdlePeriodState::IN_LONG_IDLE_PERIOD;
102 } 102 }
103 } else { 103 } else {
104 // If we can't start the idle period yet then try again after wakeup. 104 // If we can't start the idle period yet then try again after wakeup.
105 *next_long_idle_period_delay_out = base::TimeDelta::FromMilliseconds( 105 *next_long_idle_period_delay_out = base::TimeDelta::FromMilliseconds(
106 kRetryEnableLongIdlePeriodDelayMillis); 106 kRetryEnableLongIdlePeriodDelayMillis);
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 return "in_long_idle_period_with_max_deadline"; 475 return "in_long_idle_period_with_max_deadline";
476 case IdlePeriodState::IN_LONG_IDLE_PERIOD_PAUSED: 476 case IdlePeriodState::IN_LONG_IDLE_PERIOD_PAUSED:
477 return "in_long_idle_period_paused"; 477 return "in_long_idle_period_paused";
478 default: 478 default:
479 NOTREACHED(); 479 NOTREACHED();
480 return nullptr; 480 return nullptr;
481 } 481 }
482 } 482 }
483 483
484 } // namespace scheduler 484 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/base/virtual_time_domain.cc ('k') | components/scheduler/child/scheduler_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698