| Index: components/scheduler/renderer/web_frame_scheduler_impl.cc
|
| diff --git a/components/scheduler/renderer/web_frame_scheduler_impl.cc b/components/scheduler/renderer/web_frame_scheduler_impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6e154e32f3cc79c6d4df0c85794b6d240de6dbb4
|
| --- /dev/null
|
| +++ b/components/scheduler/renderer/web_frame_scheduler_impl.cc
|
| @@ -0,0 +1,68 @@
|
| +// 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/web_frame_scheduler_impl.h"
|
| +
|
| +#include "components/scheduler/child/web_task_runner_impl.h"
|
| +#include "components/scheduler/renderer/renderer_scheduler.h"
|
| +#include "components/scheduler/renderer/web_page_scheduler_impl.h"
|
| +#include "third_party/WebKit/public/platform/WebString.h"
|
| +#include "third_party/WebKit/public/web/WebSecurityOrigin.h"
|
| +
|
| +namespace scheduler {
|
| +
|
| +WebFrameSchedulerImpl::WebFrameSchedulerImpl(
|
| + RendererScheduler* render_scheduler,
|
| + WebPageSchedulerImpl* parent_page_scheduler)
|
| + : render_scheduler_(render_scheduler),
|
| + parent_page_scheduler_(parent_page_scheduler),
|
| + visible_(true) {}
|
| +
|
| +WebFrameSchedulerImpl::~WebFrameSchedulerImpl() {
|
| + if (loading_task_queue_.get())
|
| + loading_task_queue_->UnregisterTaskQueue();
|
| +
|
| + if (timer_task_queue_.get())
|
| + timer_task_queue_->UnregisterTaskQueue();
|
| +
|
| + parent_page_scheduler_->Unregister(this);
|
| +}
|
| +
|
| +void WebFrameSchedulerImpl::setFrameVisible(bool visible) {
|
| + visible_ = visible;
|
| + // TODO(alexclarke): Do something with this flag.
|
| +}
|
| +
|
| +blink::WebTaskRunner* WebFrameSchedulerImpl::loadingTaskRunner() {
|
| + if (!loading_web_task_runner_.get()) {
|
| + loading_task_queue_ =
|
| + render_scheduler_->NewLoadingTaskRunner("frame_loading_tq");
|
| + loading_task_queue_->SetOrigin(origin_);
|
| + loading_web_task_runner_.reset(new WebTaskRunnerImpl(loading_task_queue_));
|
| + }
|
| + return loading_web_task_runner_.get();
|
| +}
|
| +
|
| +blink::WebTaskRunner* WebFrameSchedulerImpl::timerTaskRunner() {
|
| + if (!timer_web_task_runner_.get()) {
|
| + timer_task_queue_ = render_scheduler_->NewTimerTaskRunner("frame_timer_tq");
|
| + timer_task_queue_->SetOrigin(origin_);
|
| + timer_web_task_runner_.reset(new WebTaskRunnerImpl(timer_task_queue_));
|
| + }
|
| + return timer_web_task_runner_.get();
|
| +}
|
| +
|
| +void WebFrameSchedulerImpl::setFrameOrigin(
|
| + const blink::WebSecurityOrigin* origin) {
|
| + DCHECK(origin);
|
| + origin_ = origin->toString().utf8();
|
| +
|
| + if (loading_task_queue_.get())
|
| + loading_task_queue_->SetOrigin(origin_);
|
| +
|
| + if (timer_task_queue_.get())
|
| + timer_task_queue_->SetOrigin(origin_);
|
| +}
|
| +
|
| +} // namespace scheduler
|
|
|