blob: dadc3ec228fd68198a4230e4afe8d853c3b00077 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"
#include <memory>
#include "base/single_thread_task_runner.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/threading/thread_task_runner_handle.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_manager_impl.h"
#include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h"
#include "third_party/blink/renderer/platform/scheduler/test/lazy_thread_controller_for_test.h"
#include "third_party/blink/renderer/platform/scheduler/test/task_queue_manager_for_test.h"
namespace blink {
namespace scheduler {
std::unique_ptr<WebMainThreadScheduler> CreateWebMainThreadSchedulerForTests() {
return std::make_unique<scheduler::MainThreadSchedulerImpl>(
std::make_unique<TaskQueueManagerForTest>(
std::make_unique<LazyThreadControllerForTest>()),
base::nullopt);
}
void RunIdleTasksForTesting(WebMainThreadScheduler* scheduler,
const base::Closure& callback) {
MainThreadSchedulerImpl* scheduler_impl =
static_cast<MainThreadSchedulerImpl*>(scheduler);
scheduler_impl->RunIdleTasksForTesting(callback);
}
scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunnerForTesting() {
return base::SequencedTaskRunnerHandle::Get();
}
scoped_refptr<base::SingleThreadTaskRunner>
GetSingleThreadTaskRunnerForTesting() {
return base::ThreadTaskRunnerHandle::Get();
}
} // namespace scheduler
} // namespace blink