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

Side by Side Diff: content/renderer/scheduler/renderer_scheduler_impl.cc

Issue 969373002: [content]: Add CanExceedIdleDeadlineIfRequired function to RendererScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@long_idle_5
Patch Set: Created 5 years, 9 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/renderer/scheduler/renderer_scheduler_impl.h ('k') | content/renderer/scheduler/renderer_scheduler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698