#include "third_party/blink/renderer/platform/scheduler/main_thread/resource_loading_task_runner_handle_impl.h" #include #include "base/memory/ptr_util.h" #include "base/task/sequence_manager/task_queue.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h" namespace blink { namespace scheduler { using base::sequence_manager::TaskQueue; std::unique_ptr ResourceLoadingTaskRunnerHandleImpl::WrapTaskRunner( scoped_refptr task_queue) { DCHECK(task_queue); return base::WrapUnique( new ResourceLoadingTaskRunnerHandleImpl(std::move(task_queue))); } ResourceLoadingTaskRunnerHandleImpl::ResourceLoadingTaskRunnerHandleImpl( scoped_refptr task_queue) : task_queue_(std::move(task_queue)), task_runner_(task_queue_->CreateTaskRunner( TaskType::kNetworkingWithURLLoaderAnnotation)){}; ResourceLoadingTaskRunnerHandleImpl::~ResourceLoadingTaskRunnerHandleImpl() { if (task_queue_->GetFrameScheduler()) { task_queue_->GetFrameScheduler()->OnShutdownResourceLoadingTaskQueue( task_queue_); } } void ResourceLoadingTaskRunnerHandleImpl::DidChangeRequestPriority( net::RequestPriority priority) { task_queue_->SetNetRequestPriority(priority); FrameSchedulerImpl* frame_scheduler = task_queue_->GetFrameScheduler(); if (frame_scheduler) { frame_scheduler->DidChangeResourceLoadingPriority(task_queue_, priority); } } scoped_refptr ResourceLoadingTaskRunnerHandleImpl::GetTaskRunner() const { return task_runner_; } const scoped_refptr& ResourceLoadingTaskRunnerHandleImpl::task_queue() { return task_queue_; } } // namespace scheduler } // namespace blink