blob: dcf34c4c3d4394fa0a7525b2365e9b4efccadb82 [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/child/task_queue.h"
#include "components/scheduler/child/web_task_runner_impl.h"
#include "components/scheduler/renderer/renderer_scheduler.h"
#include "components/scheduler/renderer/renderer_web_scheduler_impl.h"
#include "third_party/WebKit/public/platform/WebTraceLocation.h"
namespace scheduler {
WebThreadImplForRendererScheduler::WebThreadImplForRendererScheduler(
RendererScheduler* 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::TaskRunner()
const {
return task_runner_.get();
}
SingleThreadIdleTaskRunner* WebThreadImplForRendererScheduler::IdleTaskRunner()
const {
return idle_task_runner_.get();
}
blink::WebTaskRunner* WebThreadImplForRendererScheduler::taskRunner() {
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