Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/renderer/scheduler/renderer_scheduler_impl.h" | 5 #include "content/renderer/scheduler/renderer_scheduler_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
| 9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
| 10 #include "base/trace_event/trace_event_argument.h" | 10 #include "base/trace_event/trace_event_argument.h" |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 497 } | 497 } |
| 498 TRACE_EVENT_ASYNC_END0("renderer.scheduler", | 498 TRACE_EVENT_ASYNC_END0("renderer.scheduler", |
| 499 "RendererSchedulerIdlePeriod", this); | 499 "RendererSchedulerIdlePeriod", this); |
| 500 DCHECK(main_thread_checker_.CalledOnValidThread()); | 500 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 501 end_idle_period_closure_.Cancel(); | 501 end_idle_period_closure_.Cancel(); |
| 502 initiate_next_long_idle_period_closure_.Cancel(); | 502 initiate_next_long_idle_period_closure_.Cancel(); |
| 503 after_wakeup_initiate_next_long_idle_period_closure_.Cancel(); | 503 after_wakeup_initiate_next_long_idle_period_closure_.Cancel(); |
| 504 renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE); | 504 renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE); |
| 505 } | 505 } |
| 506 | 506 |
| 507 bool RendererSchedulerImpl::IsMaximumIdleDeadline( | |
| 508 base::TimeTicks deadline) const { | |
| 509 base::TimeDelta deadline_duration = deadline - Now(); | |
| 510 base::TimeDelta max_idle_duration = | |
| 511 base::TimeDelta::FromMilliseconds(kMaximumIdlePeriodMillis); | |
| 512 // Allow one millisecond slop. | |
|
Sami
2015/03/03 16:21:32
I was thinking about the need to have this back-an
rmcilroy
2015/03/05 11:20:36
I've reworked this to expose a CanExceedIdleDeadli
| |
| 513 return max_idle_duration - deadline_duration <= | |
| 514 base::TimeDelta::FromMilliseconds(1); | |
|
picksi
2015/03/04 10:56:14
Nit: You could remove the need for the "one millis
rmcilroy
2015/03/05 11:20:36
Removed all this code :).
| |
| 515 } | |
| 516 | |
| 507 void RendererSchedulerImpl::SetTimeSourceForTesting( | 517 void RendererSchedulerImpl::SetTimeSourceForTesting( |
| 508 scoped_refptr<cc::TestNowSource> time_source) { | 518 scoped_refptr<cc::TestNowSource> time_source) { |
| 509 DCHECK(main_thread_checker_.CalledOnValidThread()); | 519 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 510 time_source_ = time_source; | 520 time_source_ = time_source; |
| 511 task_queue_manager_->SetTimeSourceForTesting(time_source); | 521 task_queue_manager_->SetTimeSourceForTesting(time_source); |
| 512 } | 522 } |
| 513 | 523 |
| 514 void RendererSchedulerImpl::SetWorkBatchSizeForTesting(size_t work_batch_size) { | 524 void RendererSchedulerImpl::SetWorkBatchSizeForTesting(size_t work_batch_size) { |
| 515 DCHECK(main_thread_checker_.CalledOnValidThread()); | 525 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 516 task_queue_manager_->SetWorkBatchSize(work_batch_size); | 526 task_queue_manager_->SetWorkBatchSize(work_batch_size); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 660 } | 670 } |
| 661 | 671 |
| 662 void RendererSchedulerImpl::RemoveTaskObserver( | 672 void RendererSchedulerImpl::RemoveTaskObserver( |
| 663 base::MessageLoop::TaskObserver* task_observer) { | 673 base::MessageLoop::TaskObserver* task_observer) { |
| 664 DCHECK(main_thread_checker_.CalledOnValidThread()); | 674 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 665 if (task_queue_manager_) | 675 if (task_queue_manager_) |
| 666 task_queue_manager_->RemoveTaskObserver(task_observer); | 676 task_queue_manager_->RemoveTaskObserver(task_observer); |
| 667 } | 677 } |
| 668 | 678 |
| 669 } // namespace content | 679 } // namespace content |
| OLD | NEW |