#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/memory/scoped_refptr.h"
#include "base/task/sequence_manager/sequence_manager.h"
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/platform/scheduler/common/blink_scheduler_single_thread_task_runner.h"
#include "third_party/blink/renderer/platform/scheduler/common/task_priority.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h"
#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_base.h"
namespace blink {
namespace scheduler {
TaskQueue;
NonMainThreadTaskQueue::NonMainThreadTaskQueue(
base::sequence_manager::SequenceManager& sequence_manager,
const TaskQueue::Spec& spec,
NonMainThreadSchedulerBase* non_main_thread_scheduler,
QueueCreationParams params,
scoped_refptr<base::SingleThreadTaskRunner> thread_task_runner)
: … { … }
NonMainThreadTaskQueue::~NonMainThreadTaskQueue() = default;
void NonMainThreadTaskQueue::ShutdownTaskQueue() { … }
void NonMainThreadTaskQueue::OnTaskCompleted(
const base::sequence_manager::Task& task,
TaskQueue::TaskTiming* task_timing,
base::LazyNow* lazy_now) { … }
void NonMainThreadTaskQueue::AddToBudgetPool(base::TimeTicks now,
BudgetPool* pool) { … }
void NonMainThreadTaskQueue::RemoveFromBudgetPool(base::TimeTicks now,
BudgetPool* pool) { … }
void NonMainThreadTaskQueue::IncreaseThrottleRefCount() { … }
void NonMainThreadTaskQueue::DecreaseThrottleRefCount() { … }
void NonMainThreadTaskQueue::OnTaskRunTimeReported(
TaskQueue::TaskTiming* task_timing) { … }
void NonMainThreadTaskQueue::SetWebSchedulingPriority(
WebSchedulingPriority priority) { … }
void NonMainThreadTaskQueue::OnWebSchedulingPriorityChanged() { … }
scoped_refptr<base::SingleThreadTaskRunner>
NonMainThreadTaskQueue::CreateTaskRunner(TaskType task_type) { … }
scoped_refptr<BlinkSchedulerSingleThreadTaskRunner>
NonMainThreadTaskQueue::WrapTaskRunner(
scoped_refptr<base::SingleThreadTaskRunner> task_runner) { … }
}
}