blob: b2419b463cbf9dc24af4e5431ce506601e9588ab [file] [log] [blame]
// Copyright 2015 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 "components/scheduler/renderer/webthread_impl_for_renderer_scheduler.h"
#include "components/scheduler/base/task_queue.h"
#include "components/scheduler/child/web_task_runner_impl.h"
#include "components/scheduler/renderer/renderer_scheduler_impl.h"
#include "components/scheduler/renderer/renderer_web_scheduler_impl.h"
#include "third_party/WebKit/public/platform/WebTraceLocation.h"
namespace scheduler {
WebThreadImplForRendererScheduler::WebThreadImplForRendererScheduler(
RendererSchedulerImpl* scheduler)
: web_scheduler_(new RendererWebSchedulerImpl(scheduler)),
task_runner_(scheduler->DefaultTaskRunner()),
idle_task_runner_(scheduler->IdleTaskRunner()),
scheduler_(scheduler),
thread_id_(base::PlatformThread::CurrentId()),
web_task_runner_(new WebTaskRunnerImpl(scheduler->DefaultTaskRunner())) {}
WebThreadImplForRendererScheduler::~WebThreadImplForRendererScheduler() {
}
blink::PlatformThreadId WebThreadImplForRendererScheduler::threadId() const {
return thread_id_;
}
blink::WebScheduler* WebThreadImplForRendererScheduler::scheduler() const {
return web_scheduler_.get();
}
base::SingleThreadTaskRunner* WebThreadImplForRendererScheduler::GetTaskRunner()
const {
return task_runner_.get();
}
SingleThreadIdleTaskRunner*
WebThreadImplForRendererScheduler::GetIdleTaskRunner() const {
return idle_task_runner_.get();
}
blink::WebTaskRunner* WebThreadImplForRendererScheduler::getWebTaskRunner() {
return web_task_runner_.get();
}
void WebThreadImplForRendererScheduler::AddTaskObserverInternal(
base::MessageLoop::TaskObserver* observer) {
scheduler_->AddTaskObserver(observer);
}
void WebThreadImplForRendererScheduler::RemoveTaskObserverInternal(
base::MessageLoop::TaskObserver* observer) {
scheduler_->RemoveTaskObserver(observer);
}
} // namespace scheduler