Index: content/renderer/scheduler/web_scheduler_impl.cc |
diff --git a/content/renderer/scheduler/web_scheduler_impl.cc b/content/renderer/scheduler/web_scheduler_impl.cc |
index 1ca8a302698478b6257dbfed7dcf45cac9d67fe8..c7b6def108eb5c2e195f01c409551806a8e10a5a 100644 |
--- a/content/renderer/scheduler/web_scheduler_impl.cc |
+++ b/content/renderer/scheduler/web_scheduler_impl.cc |
@@ -5,6 +5,7 @@ |
#include "content/renderer/scheduler/web_scheduler_impl.h" |
#include "base/bind.h" |
+#include "base/single_thread_task_runner.h" |
#include "content/renderer/scheduler/renderer_scheduler.h" |
#include "third_party/WebKit/public/platform/WebTraceLocation.h" |
@@ -12,7 +13,8 @@ namespace content { |
WebSchedulerImpl::WebSchedulerImpl(RendererScheduler* renderer_scheduler) |
: renderer_scheduler_(renderer_scheduler), |
- idle_task_runner_(renderer_scheduler_->IdleTaskRunner()) { |
+ idle_task_runner_(renderer_scheduler_->IdleTaskRunner()), |
+ loading_task_runner_(renderer_scheduler_->LoadingTaskRunner()) { |
} |
WebSchedulerImpl::~WebSchedulerImpl() { |
@@ -34,6 +36,7 @@ void WebSchedulerImpl::runTask(scoped_ptr<blink::WebThread::Task> task) { |
void WebSchedulerImpl::postIdleTask(const blink::WebTraceLocation& web_location, |
blink::WebScheduler::IdleTask* task) { |
+ DCHECK(idle_task_runner_); |
scoped_ptr<blink::WebScheduler::IdleTask> scoped_task(task); |
tracked_objects::Location location(web_location.functionName(), |
web_location.fileName(), -1, nullptr); |
@@ -44,15 +47,18 @@ void WebSchedulerImpl::postIdleTask(const blink::WebTraceLocation& web_location, |
void WebSchedulerImpl::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); |
- renderer_scheduler_->LoadingTaskRunner()->PostTask( |
+ loading_task_runner_->PostTask( |
location, |
base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task))); |
} |
void WebSchedulerImpl::shutdown() { |
+ idle_task_runner_ = nullptr; |
+ loading_task_runner_ = nullptr; |
return renderer_scheduler_->Shutdown(); |
} |