Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Unified Diff: content/child/scheduler/base_web_scheduler.cc

Issue 1088053003: Patch 1/3 to get WebScheduler via WebThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a BaseWebScheduler Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/scheduler/base_web_scheduler.cc
diff --git a/content/renderer/scheduler/web_scheduler_impl.cc b/content/child/scheduler/base_web_scheduler.cc
similarity index 60%
rename from content/renderer/scheduler/web_scheduler_impl.cc
rename to content/child/scheduler/base_web_scheduler.cc
index 35988c3b0c0f94e2b1916fd3e2cfcb142eb2728c..9fb624680cb9baa30eb7db84e0c0087cea85aad1 100644
--- a/content/renderer/scheduler/web_scheduler_impl.cc
+++ b/content/child/scheduler/base_web_scheduler.cc
@@ -1,44 +1,38 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
+// 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 "content/renderer/scheduler/web_scheduler_impl.h"
+#include "content/child/scheduler/base_web_scheduler.h"
#include "base/bind.h"
#include "base/single_thread_task_runner.h"
-#include "content/renderer/scheduler/renderer_scheduler.h"
+#include "content/child/scheduler/worker_scheduler.h"
#include "third_party/WebKit/public/platform/WebTraceLocation.h"
namespace content {
-WebSchedulerImpl::WebSchedulerImpl(RendererScheduler* renderer_scheduler)
- : renderer_scheduler_(renderer_scheduler),
- idle_task_runner_(renderer_scheduler_->IdleTaskRunner()),
- loading_task_runner_(renderer_scheduler_->LoadingTaskRunner()),
- timer_task_runner_(renderer_scheduler_->TimerTaskRunner()) {
+BaseWebScheduler::BaseWebScheduler(
+ scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner)
+ : idle_task_runner_(idle_task_runner),
+ loading_task_runner_(loading_task_runner),
+ timer_task_runner_(timer_task_runner) {
}
-WebSchedulerImpl::~WebSchedulerImpl() {
+BaseWebScheduler::~BaseWebScheduler() {
}
-bool WebSchedulerImpl::shouldYieldForHighPriorityWork() {
- return renderer_scheduler_->ShouldYieldForHighPriorityWork();
-}
-
-bool WebSchedulerImpl::canExceedIdleDeadlineIfRequired() {
- return renderer_scheduler_->CanExceedIdleDeadlineIfRequired();
-}
-
-void WebSchedulerImpl::runIdleTask(scoped_ptr<blink::WebThread::IdleTask> task,
+void BaseWebScheduler::runIdleTask(scoped_ptr<blink::WebThread::IdleTask> task,
base::TimeTicks deadline) {
task->run((deadline - base::TimeTicks()).InSecondsF());
}
-void WebSchedulerImpl::runTask(scoped_ptr<blink::WebThread::Task> task) {
+void BaseWebScheduler::runTask(scoped_ptr<blink::WebThread::Task> task) {
task->run();
}
-void WebSchedulerImpl::postIdleTask(const blink::WebTraceLocation& web_location,
+void BaseWebScheduler::postIdleTask(const blink::WebTraceLocation& web_location,
blink::WebThread::IdleTask* task) {
DCHECK(idle_task_runner_);
scoped_ptr<blink::WebThread::IdleTask> scoped_task(task);
@@ -46,10 +40,10 @@ void WebSchedulerImpl::postIdleTask(const blink::WebTraceLocation& web_location,
web_location.fileName(), -1, nullptr);
idle_task_runner_->PostIdleTask(
location,
- base::Bind(&WebSchedulerImpl::runIdleTask, base::Passed(&scoped_task)));
+ base::Bind(&BaseWebScheduler::runIdleTask, base::Passed(&scoped_task)));
}
-void WebSchedulerImpl::postNonNestableIdleTask(
+void BaseWebScheduler::postNonNestableIdleTask(
const blink::WebTraceLocation& web_location,
blink::WebThread::IdleTask* task) {
DCHECK(idle_task_runner_);
@@ -58,10 +52,10 @@ void WebSchedulerImpl::postNonNestableIdleTask(
web_location.fileName(), -1, nullptr);
idle_task_runner_->PostNonNestableIdleTask(
location,
- base::Bind(&WebSchedulerImpl::runIdleTask, base::Passed(&scoped_task)));
+ base::Bind(&BaseWebScheduler::runIdleTask, base::Passed(&scoped_task)));
}
-void WebSchedulerImpl::postIdleTaskAfterWakeup(
+void BaseWebScheduler::postIdleTaskAfterWakeup(
const blink::WebTraceLocation& web_location,
blink::WebThread::IdleTask* task) {
DCHECK(idle_task_runner_);
@@ -70,21 +64,22 @@ void WebSchedulerImpl::postIdleTaskAfterWakeup(
web_location.fileName(), -1, nullptr);
idle_task_runner_->PostIdleTaskAfterWakeup(
location,
- base::Bind(&WebSchedulerImpl::runIdleTask, base::Passed(&scoped_task)));
+ base::Bind(&BaseWebScheduler::runIdleTask, base::Passed(&scoped_task)));
}
-void WebSchedulerImpl::postLoadingTask(
- const blink::WebTraceLocation& web_location, blink::WebThread::Task* task) {
+void BaseWebScheduler::postLoadingTask(
+ const blink::WebTraceLocation& web_location,
+ blink::WebThread::Task* task) {
DCHECK(loading_task_runner_);
scoped_ptr<blink::WebThread::Task> scoped_task(task);
tracked_objects::Location location(web_location.functionName(),
web_location.fileName(), -1, nullptr);
loading_task_runner_->PostTask(
location,
- base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task)));
+ base::Bind(&BaseWebScheduler::runTask, base::Passed(&scoped_task)));
}
-void WebSchedulerImpl::postTimerTask(
+void BaseWebScheduler::postTimerTask(
const blink::WebTraceLocation& web_location,
blink::WebThread::Task* task,
long long delayMs) {
@@ -94,7 +89,7 @@ void WebSchedulerImpl::postTimerTask(
web_location.fileName(), -1, nullptr);
timer_task_runner_->PostDelayedTask(
location,
- base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task)),
+ base::Bind(&BaseWebScheduler::runTask, base::Passed(&scoped_task)),
base::TimeDelta::FromMilliseconds(delayMs));
}

Powered by Google App Engine
This is Rietveld 408576698