Enable ChildThreadImpl to refer ChildScheduler for IPC task runner
Now ChildThreadImpl needs to pass an IPC listener task runner to create
IPC::SyncChannel, but ChildThreadImpl can't refer schedulers. This CL
enables ChildThreadImpl to refer ChildScheduler by adding ChildScheduler
::IPCListenerTaskRunner function. Now the implementation
(RendererScheduler::IPCListenerTaskRunner) just returns base::
ThreadTaskRunnerHandle::Get().
This CL is just a preparation for flexible scheduling, and doesn't
change any behavior so far.
Bug: 780785
Change-Id: I46965cab95ca6f98dee56299df9ebea1462886d8
Reviewed-on: https://chromium-review.googlesource.com/760336
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Alexander Timin <[email protected]>
Commit-Queue: Hajime Hoshi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#515913}
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 54a314f0..4d09510 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -627,11 +627,13 @@
const InProcessChildThreadParams& params,
std::unique_ptr<blink::scheduler::RendererScheduler> scheduler,
const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
- : ChildThreadImpl(Options::Builder()
- .InBrowserProcess(params)
- .AutoStartServiceManagerConnection(false)
- .ConnectToBrowser(true)
- .Build()),
+ : ChildThreadImpl(
+ Options::Builder()
+ .InBrowserProcess(params)
+ .AutoStartServiceManagerConnection(false)
+ .ConnectToBrowser(true)
+ .IPCTaskRunner(scheduler ? scheduler->IPCTaskRunner() : nullptr)
+ .Build()),
renderer_scheduler_(std::move(scheduler)),
categorized_worker_pool_(new CategorizedWorkerPool()),
renderer_binding_(this),