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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc

Issue 2416803003: Record PendingTaskCount when a backgrounded renderer is suspended. (Closed)
Patch Set: Add GetNumberOfPendingTasks to TaskQueueManager Created 4 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 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 "platform/scheduler/base/task_queue_manager.h" 5 #include "platform/scheduler/base/task_queue_manager.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 } 419 }
420 420
421 internal::EnqueueOrder TaskQueueManager::GetNextSequenceNumber() { 421 internal::EnqueueOrder TaskQueueManager::GetNextSequenceNumber() {
422 return enqueue_order_generator_.GenerateNext(); 422 return enqueue_order_generator_.GenerateNext();
423 } 423 }
424 424
425 LazyNow TaskQueueManager::CreateLazyNow() const { 425 LazyNow TaskQueueManager::CreateLazyNow() const {
426 return LazyNow(delegate_.get()); 426 return LazyNow(delegate_.get());
427 } 427 }
428 428
429 size_t TaskQueueManager::GetNumberOfPendingTasks() const {
430 size_t task_count = 0;
431 for (auto& queue : queues_)
432 task_count += queue->GetNumberOfPendingTasks();
433 return task_count;
434 }
435
429 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> 436 std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
430 TaskQueueManager::AsValueWithSelectorResult( 437 TaskQueueManager::AsValueWithSelectorResult(
431 bool should_run, 438 bool should_run,
432 internal::WorkQueue* selected_work_queue) const { 439 internal::WorkQueue* selected_work_queue) const {
433 DCHECK(main_thread_checker_.CalledOnValidThread()); 440 DCHECK(main_thread_checker_.CalledOnValidThread());
434 std::unique_ptr<base::trace_event::TracedValue> state( 441 std::unique_ptr<base::trace_event::TracedValue> state(
435 new base::trace_event::TracedValue()); 442 new base::trace_event::TracedValue());
436 state->BeginArray("queues"); 443 state->BeginArray("queues");
437 for (auto& queue : queues_) 444 for (auto& queue : queues_)
438 queue->AsValueInto(state.get()); 445 queue->AsValueInto(state.get());
(...skipping 26 matching lines...) Expand all
465 DCHECK(main_thread_checker_.CalledOnValidThread()); 472 DCHECK(main_thread_checker_.CalledOnValidThread());
466 DCHECK(!work_queue->Empty()); 473 DCHECK(!work_queue->Empty());
467 if (observer_) { 474 if (observer_) {
468 observer_->OnTriedToExecuteBlockedTask(*work_queue->task_queue(), 475 observer_->OnTriedToExecuteBlockedTask(*work_queue->task_queue(),
469 *work_queue->GetFrontTask()); 476 *work_queue->GetFrontTask());
470 } 477 }
471 } 478 }
472 479
473 } // namespace scheduler 480 } // namespace scheduler
474 } // namespace blink 481 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698