| Index: ipc/ipc_test_base.h
 | 
| diff --git a/ipc/ipc_test_base.h b/ipc/ipc_test_base.h
 | 
| index 8a84fb672786daf12173017fac8e8d799be87e0e..6623955f6b64f7d992963ce857b142305bc3b541 100644
 | 
| --- a/ipc/ipc_test_base.h
 | 
| +++ b/ipc/ipc_test_base.h
 | 
| @@ -15,7 +15,6 @@
 | 
|  #include "ipc/ipc_channel.h"
 | 
|  #include "ipc/ipc_channel_factory.h"
 | 
|  #include "ipc/ipc_channel_proxy.h"
 | 
| -#include "ipc/ipc_multiprocess_test.h"
 | 
|  #include "mojo/edk/test/mojo_test_base.h"
 | 
|  #include "mojo/edk/test/multiprocess_test_helper.h"
 | 
|  
 | 
| @@ -23,124 +22,15 @@ namespace base {
 | 
|  class MessageLoop;
 | 
|  }
 | 
|  
 | 
| -namespace IPC {
 | 
| -class AttachmentBroker;
 | 
| -}
 | 
| -
 | 
| -// A test fixture for multiprocess IPC tests. Such tests include a "client" side
 | 
| -// (running in a separate process). The same client may be shared between
 | 
| -// several different tests.
 | 
| -class IPCTestBase : public base::MultiProcessTest {
 | 
| - public:
 | 
| -  // The channel name is based on the client's name. This is a public static
 | 
| -  // helper to be used by the client-side code; server-side test code should
 | 
| -  // usually not use this (directly).
 | 
| -  static std::string GetChannelName(const std::string& test_client_name);
 | 
| -
 | 
| - protected:
 | 
| -  IPCTestBase();
 | 
| -  ~IPCTestBase() override;
 | 
| -
 | 
| -  void TearDown() override;
 | 
| -
 | 
| -  // Initializes the test to use the given client and creates an IO message loop
 | 
| -  // on the current thread.
 | 
| -  void Init(const std::string& test_client_name);
 | 
| -  // Some tests create separate thread for IO message loop and run non-IO
 | 
| -  // message loop on the main thread. As IPCTestBase creates IO message loop by
 | 
| -  // default, such tests need to provide a custom message loop for the main
 | 
| -  // thread.
 | 
| -  virtual void InitWithCustomMessageLoop(
 | 
| -      const std::string& test_client_name,
 | 
| -      std::unique_ptr<base::MessageLoop> message_loop);
 | 
| -
 | 
| -  // Creates a channel with the given listener and connects to the channel
 | 
| -  // (returning true if successful), respectively. Use these to use a channel
 | 
| -  // directly. Since the listener must outlive the channel, you must destroy the
 | 
| -  // channel before the listener gets destroyed.
 | 
| -  void CreateChannel(IPC::Listener* listener);
 | 
| -  bool ConnectChannel();
 | 
| -  void DestroyChannel();
 | 
| -
 | 
| -  // Releases or replaces existing channel.
 | 
| -  // These are useful for testing specific types of channel subclasses.
 | 
| -  std::unique_ptr<IPC::Channel> ReleaseChannel();
 | 
| -  void SetChannel(std::unique_ptr<IPC::Channel> channel);
 | 
| -
 | 
| -  // Use this instead of CreateChannel() if you want to use some different
 | 
| -  // channel specification (then use ConnectChannel() as usual).
 | 
| -  void CreateChannelFromChannelHandle(const IPC::ChannelHandle& channel_handle,
 | 
| -                                      IPC::Listener* listener);
 | 
| -
 | 
| -  // Creates a channel proxy with the given listener and task runner. (The
 | 
| -  // channel proxy will automatically create and connect a channel.) You must
 | 
| -  // (manually) destroy the channel proxy before the task runner's thread is
 | 
| -  // destroyed.
 | 
| -  void CreateChannelProxy(
 | 
| -      IPC::Listener* listener,
 | 
| -      const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner);
 | 
| -  void DestroyChannelProxy();
 | 
| -
 | 
| -  // Starts the client process, returning true if successful; this should be
 | 
| -  // done after connecting to the channel.
 | 
| -  virtual bool StartClient();
 | 
| -
 | 
| -#if defined(OS_POSIX)
 | 
| -  // A StartClient() variant that allows caller to pass the FD of IPC pipe
 | 
| -  bool StartClientWithFD(int ipcfd);
 | 
| -#endif
 | 
| -
 | 
| -  // Waits for the client to shut down, returning true if successful. Note that
 | 
| -  // this does not initiate client shutdown; that must be done by the test
 | 
| -  // (somehow). This must be called before the end of the test whenever
 | 
| -  // StartClient() was called successfully.
 | 
| -  virtual bool WaitForClientShutdown();
 | 
| -
 | 
| -  IPC::ChannelHandle GetTestChannelHandle();
 | 
| -
 | 
| -  // Use this to send IPC messages (when you don't care if you're using a
 | 
| -  // channel or a proxy).
 | 
| -  IPC::Sender* sender() {
 | 
| -    return channel_.get() ? static_cast<IPC::Sender*>(channel_.get()) :
 | 
| -                            static_cast<IPC::Sender*>(channel_proxy_.get());
 | 
| -  }
 | 
| -
 | 
| -  IPC::Channel* channel() { return channel_.get(); }
 | 
| -  IPC::ChannelProxy* channel_proxy() { return channel_proxy_.get(); }
 | 
| -  void set_channel_proxy(std::unique_ptr<IPC::ChannelProxy> proxy) {
 | 
| -    DCHECK(!channel_proxy_);
 | 
| -    channel_proxy_.swap(proxy);
 | 
| -  }
 | 
| -
 | 
| -  const base::Process& client_process() const { return client_process_; }
 | 
| -  scoped_refptr<base::SingleThreadTaskRunner> task_runner();
 | 
| -
 | 
| -  virtual std::unique_ptr<IPC::ChannelFactory> CreateChannelFactory(
 | 
| -      const IPC::ChannelHandle& handle,
 | 
| -      base::SingleThreadTaskRunner* runner);
 | 
| -
 | 
| -  virtual bool DidStartClient();
 | 
| -
 | 
| - private:
 | 
| -  std::string GetTestMainName() const;
 | 
| -
 | 
| -  std::string test_client_name_;
 | 
| -  std::unique_ptr<base::MessageLoop> message_loop_;
 | 
| -
 | 
| -  std::unique_ptr<IPC::Channel> channel_;
 | 
| -  std::unique_ptr<IPC::ChannelProxy> channel_proxy_;
 | 
| -
 | 
| -  base::Process client_process_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(IPCTestBase);
 | 
| -};
 | 
| -
 | 
|  class IPCChannelMojoTestBase : public testing::Test {
 | 
|   public:
 | 
|    IPCChannelMojoTestBase();
 | 
|    ~IPCChannelMojoTestBase() override;
 | 
|  
 | 
|    void Init(const std::string& test_client_name);
 | 
| +  void InitWithCustomMessageLoop(
 | 
| +      const std::string& test_client_name,
 | 
| +      std::unique_ptr<base::MessageLoop> message_loop);
 | 
|  
 | 
|    bool WaitForClientShutdown();
 | 
|  
 | 
| @@ -160,7 +50,7 @@ class IPCChannelMojoTestBase : public testing::Test {
 | 
|    mojo::ScopedMessagePipeHandle TakeHandle();
 | 
|  
 | 
|   private:
 | 
| -  base::MessageLoop message_loop_;
 | 
| +  std::unique_ptr<base::MessageLoop> message_loop_;
 | 
|  
 | 
|    mojo::ScopedMessagePipeHandle handle_;
 | 
|    mojo::edk::test::MultiprocessTestHelper helper_;
 | 
| @@ -189,10 +79,6 @@ class IpcChannelMojoTestClient {
 | 
|    std::unique_ptr<IPC::Channel> channel_;
 | 
|  };
 | 
|  
 | 
| -// Use this to declare the client side for tests using IPCTestBase.
 | 
| -#define MULTIPROCESS_IPC_TEST_CLIENT_MAIN(test_client_name) \
 | 
| -    MULTIPROCESS_IPC_TEST_MAIN(test_client_name ## TestClientMain)
 | 
| -
 | 
|  // Use this to declare the client side for tests using IPCChannelMojoTestBase
 | 
|  // when a custom test fixture class is required in the client. |test_base| must
 | 
|  // be derived from IpcChannelMojoTestClient.
 | 
| 
 |