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

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

Issue 922733002: scheduler: Implement task observers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Implemented Ross's simplification idea. Created 5 years, 10 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 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE); 329 renderer_task_queue_selector_->DisableQueue(IDLE_TASK_QUEUE);
330 } 330 }
331 331
332 void RendererSchedulerImpl::SetTimeSourceForTesting( 332 void RendererSchedulerImpl::SetTimeSourceForTesting(
333 scoped_refptr<cc::TestNowSource> time_source) { 333 scoped_refptr<cc::TestNowSource> time_source) {
334 DCHECK(main_thread_checker_.CalledOnValidThread()); 334 DCHECK(main_thread_checker_.CalledOnValidThread());
335 time_source_ = time_source; 335 time_source_ = time_source;
336 task_queue_manager_->SetTimeSourceForTesting(time_source); 336 task_queue_manager_->SetTimeSourceForTesting(time_source);
337 } 337 }
338 338
339 void RendererSchedulerImpl::SetWorkBatchSizeForTesting(size_t work_batch_size) {
340 DCHECK(main_thread_checker_.CalledOnValidThread());
341 task_queue_manager_->SetWorkBatchSize(work_batch_size);
342 }
343
339 base::TimeTicks RendererSchedulerImpl::Now() const { 344 base::TimeTicks RendererSchedulerImpl::Now() const {
340 return UNLIKELY(time_source_) ? time_source_->Now() : base::TimeTicks::Now(); 345 return UNLIKELY(time_source_) ? time_source_->Now() : base::TimeTicks::Now();
341 } 346 }
342 347
343 RendererSchedulerImpl::PollableNeedsUpdateFlag::PollableNeedsUpdateFlag( 348 RendererSchedulerImpl::PollableNeedsUpdateFlag::PollableNeedsUpdateFlag(
344 base::Lock* write_lock_) 349 base::Lock* write_lock_)
345 : flag_(false), write_lock_(write_lock_) { 350 : flag_(false), write_lock_(write_lock_) {
346 } 351 }
347 352
348 RendererSchedulerImpl::PollableNeedsUpdateFlag::~PollableNeedsUpdateFlag() { 353 RendererSchedulerImpl::PollableNeedsUpdateFlag::~PollableNeedsUpdateFlag() {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 // With no observable effect, these meta events do not indicate a 462 // With no observable effect, these meta events do not indicate a
458 // meaningful touchstart response and should not impact task priority. 463 // meaningful touchstart response and should not impact task priority.
459 return current_state; 464 return current_state;
460 465
461 default: 466 default:
462 break; 467 break;
463 } 468 }
464 return INPUT_ACTIVE; 469 return INPUT_ACTIVE;
465 } 470 }
466 471
472 void RendererSchedulerImpl::AddTaskObserver(
473 base::MessageLoop::TaskObserver* task_observer) {
474 DCHECK(main_thread_checker_.CalledOnValidThread());
475 if (task_queue_manager_)
476 task_queue_manager_->AddTaskObserver(task_observer);
477 }
478
479 void RendererSchedulerImpl::RemoveTaskObserver(
480 base::MessageLoop::TaskObserver* task_observer) {
481 DCHECK(main_thread_checker_.CalledOnValidThread());
482 if (task_queue_manager_)
483 task_queue_manager_->RemoveTaskObserver(task_observer);
484 }
485
467 } // namespace content 486 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698