#include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_impl.h"
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/platform/back_forward_cache_utils.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/cpu_time_budget_pool.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler.h"
#include "third_party/blink/renderer/platform/scheduler/common/throttling/wake_up_budget_pool.h"
#include "third_party/blink/renderer/platform/scheduler/public/scheduling_policy.h"
#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_web_scheduling_task_queue_impl.h"
#include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h"
#include "third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h"
namespace blink {
namespace scheduler {
std::unique_ptr<WorkerScheduler> WorkerScheduler::CreateWorkerScheduler(
WorkerThreadScheduler* worker_thread_scheduler,
WorkerSchedulerProxy* proxy) { … }
WorkerSchedulerImpl::PauseHandleImpl::PauseHandleImpl(
base::WeakPtr<WorkerSchedulerImpl> scheduler)
: … { … }
WorkerSchedulerImpl::PauseHandleImpl::~PauseHandleImpl() { … }
WorkerSchedulerImpl::WorkerSchedulerImpl(
WorkerThreadScheduler* worker_thread_scheduler,
WorkerSchedulerProxy* proxy)
: … { … }
base::WeakPtr<WorkerSchedulerImpl> WorkerSchedulerImpl::GetWeakPtr() { … }
WorkerSchedulerImpl::~WorkerSchedulerImpl() { … }
WorkerThreadScheduler* WorkerSchedulerImpl::GetWorkerThreadScheduler() const { … }
std::unique_ptr<WorkerSchedulerImpl::PauseHandle> WorkerSchedulerImpl::Pause() { … }
void WorkerSchedulerImpl::PauseImpl() { … }
void WorkerSchedulerImpl::ResumeImpl() { … }
void WorkerSchedulerImpl::SetUpThrottling() { … }
SchedulingLifecycleState WorkerSchedulerImpl::CalculateLifecycleState(
ObserverType) const { … }
void WorkerSchedulerImpl::Dispose() { … }
scoped_refptr<base::SingleThreadTaskRunner> WorkerSchedulerImpl::GetTaskRunner(
TaskType type) const { … }
void WorkerSchedulerImpl::OnLifecycleStateChanged(
SchedulingLifecycleState lifecycle_state) { … }
void WorkerSchedulerImpl::InitializeOnWorkerThread(Delegate* delegate) { … }
VirtualTimeController* WorkerSchedulerImpl::GetVirtualTimeController() { … }
scoped_refptr<NonMainThreadTaskQueue>
WorkerSchedulerImpl::UnpausableTaskQueue() { … }
scoped_refptr<NonMainThreadTaskQueue> WorkerSchedulerImpl::PausableTaskQueue() { … }
scoped_refptr<NonMainThreadTaskQueue>
WorkerSchedulerImpl::ThrottleableTaskQueue() { … }
void WorkerSchedulerImpl::OnStartedUsingNonStickyFeature(
SchedulingPolicy::Feature feature,
const SchedulingPolicy& policy,
std::unique_ptr<SourceLocation> source_location,
SchedulingAffectingFeatureHandle* handle) { … }
void WorkerSchedulerImpl::OnStartedUsingStickyFeature(
SchedulingPolicy::Feature feature,
const SchedulingPolicy& policy,
std::unique_ptr<SourceLocation> source_location) { … }
void WorkerSchedulerImpl::OnStoppedUsingNonStickyFeature(
SchedulingAffectingFeatureHandle* handle) { … }
base::WeakPtr<FrameOrWorkerScheduler>
WorkerSchedulerImpl::GetFrameOrWorkerSchedulerWeakPtr() { … }
std::unique_ptr<WebSchedulingTaskQueue>
WorkerSchedulerImpl::CreateWebSchedulingTaskQueue(
WebSchedulingQueueType queue_type,
WebSchedulingPriority priority) { … }
scoped_refptr<base::SingleThreadTaskRunner>
WorkerSchedulerImpl::CompositorTaskRunner() { … }
WebScopedVirtualTimePauser
WorkerSchedulerImpl::CreateWebScopedVirtualTimePauser(
const String& name,
WebScopedVirtualTimePauser::VirtualTaskDuration duration) { … }
void WorkerSchedulerImpl::PauseVirtualTime() { … }
void WorkerSchedulerImpl::UnpauseVirtualTime() { … }
}
}