Index: content/test/test_thread_safe_sender.cc |
diff --git a/content/test/test_thread_safe_sender.cc b/content/test/test_thread_safe_sender.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0a2b2216287ce07ca95a007f36b6e32451b2c1d2 |
--- /dev/null |
+++ b/content/test/test_thread_safe_sender.cc |
@@ -0,0 +1,55 @@ |
+// 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/test/test_thread_safe_sender.h" |
+ |
+#include "base/synchronization/waitable_event.h" |
+#include "base/threading/thread.h" |
+#include "ipc/ipc_sync_channel.h" |
+ |
+namespace content { |
+ |
+namespace { |
+ |
+class FakeIPCListener : public IPC::Listener { |
michaeln
2015/08/05 01:46:15
this isn't used?
Ken Rockot(use gerrit already)
2015/08/05 05:23:36
Oops. Yeah, dead code from a previous patch set :D
|
+ public: |
+ FakeIPCListener() {} |
+ ~FakeIPCListener() override {} |
+ bool OnMessageReceived(const IPC::Message& message) override { return false; } |
+}; |
+ |
+} // namespace |
+ |
+// static |
+scoped_refptr<ThreadSafeSender> TestThreadSafeSender::Create( |
+ const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner) { |
+ scoped_ptr<base::Thread> io_thread( |
+ new base::Thread("TestThreadSafeSender IO")); |
+ io_thread->Start(); |
+ |
+ scoped_ptr<base::WaitableEvent> shutdown_event( |
+ new base::WaitableEvent(true /* manual_reset */, |
+ false /* initially_signaled */)); |
+ scoped_ptr<IPC::SyncChannel> sync_channel = IPC::SyncChannel::Create( |
+ nullptr, io_thread->task_runner(), shutdown_event.get()); |
+ return new TestThreadSafeSender(main_task_runner, io_thread.Pass(), |
+ shutdown_event.Pass(), sync_channel.Pass()); |
+} |
+ |
+TestThreadSafeSender::TestThreadSafeSender( |
+ const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, |
+ scoped_ptr<base::Thread> io_thread, |
+ scoped_ptr<base::WaitableEvent> shutdown_event, |
+ scoped_ptr<IPC::SyncChannel> sync_channel) |
+ : ThreadSafeSender(main_task_runner, |
+ sync_channel->CreateSyncMessageFilter()), |
+ io_thread_(io_thread.Pass()), |
+ shutdown_event_(shutdown_event.Pass()), |
+ sync_channel_(sync_channel.Pass()) { |
+} |
+ |
+TestThreadSafeSender::~TestThreadSafeSender() { |
+} |
+ |
+} // namespace content |