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

Unified Diff: content/child/child_thread_impl.cc

Issue 977573002: content: Add an overridable task runner to ChildThreadImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test build fix. Created 5 years, 10 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
« no previous file with comments | « content/child/child_thread_impl.h ('k') | content/child/worker_thread_message_filter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/child/child_thread_impl.cc
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc
index f62222c7d419964c4db8807720ae140706697450..12cc0106578c614dd39c9de1e11ebc4901f4c157 100644
--- a/content/child/child_thread_impl.cc
+++ b/content/child/child_thread_impl.cc
@@ -245,7 +245,8 @@ ChildThreadImpl::Options::Options()
: channel_name(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kProcessChannelID)),
use_mojo_channel(false),
- in_browser_process(false) {
+ in_browser_process(false),
+ task_runner(base::MessageLoopProxy::current()) {
}
ChildThreadImpl::Options::~Options() {
@@ -280,6 +281,13 @@ ChildThreadImpl::Options::Builder::AddStartupFilter(
return *this;
}
+ChildThreadImpl::Options::Builder&
+ChildThreadImpl::Options::Builder::WithTaskRunner(
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+ options_.task_runner = task_runner;
+ return *this;
+}
+
ChildThreadImpl::Options ChildThreadImpl::Options::Builder::Build() {
return options_;
}
@@ -293,14 +301,12 @@ bool ChildThreadImpl::ChildThreadMessageRouter::Send(IPC::Message* msg) {
}
ChildThreadImpl::ChildThreadImpl()
- : router_(this),
- in_browser_process_(false),
- channel_connected_factory_(this) {
- Init(Options::Builder().Build());
+ : ChildThreadImpl(Options::Builder().Build()) {
Sami 2015/03/06 17:01:34 So turns out this was triggering an MSVC compiler
}
ChildThreadImpl::ChildThreadImpl(const Options& options)
: router_(this),
+ task_runner_(options.task_runner),
in_browser_process_(options.in_browser_process),
channel_connected_factory_(this) {
Init(options);
@@ -358,8 +364,7 @@ void ChildThreadImpl::Init(const Options& options) {
thread_safe_sender_ = new ThreadSafeSender(
base::MessageLoopProxy::current().get(), sync_message_filter_.get());
- resource_dispatcher_.reset(new ResourceDispatcher(
- this, message_loop()->task_runner()));
+ resource_dispatcher_.reset(new ResourceDispatcher(this, GetTaskRunner()));
websocket_dispatcher_.reset(new WebSocketDispatcher);
file_system_dispatcher_.reset(new FileSystemDispatcher());
@@ -524,6 +529,10 @@ bool ChildThreadImpl::Send(IPC::Message* msg) {
return channel_->Send(msg);
}
+scoped_refptr<base::SingleThreadTaskRunner> ChildThreadImpl::GetTaskRunner() {
+ return task_runner_;
+}
+
#if defined(OS_WIN)
void ChildThreadImpl::PreCacheFont(const LOGFONT& log_font) {
Send(new ChildProcessHostMsg_PreCacheFont(log_font));
« no previous file with comments | « content/child/child_thread_impl.h ('k') | content/child/worker_thread_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698