| Index: ipc/ipc_channel_proxy.h
 | 
| diff --git a/ipc/ipc_channel_proxy.h b/ipc/ipc_channel_proxy.h
 | 
| index 5765630a2582349a9b470785eef7c4ae6842bd0f..4f458ed46672520216a5429c1d49441118486a76 100644
 | 
| --- a/ipc/ipc_channel_proxy.h
 | 
| +++ b/ipc/ipc_channel_proxy.h
 | 
| @@ -230,6 +230,10 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe {
 | 
|    }
 | 
|  #endif
 | 
|  
 | 
| +  using RunOnIOThreadCallback = base::Callback<void(Channel*)>;
 | 
| +  // Invokes |callback| on the IO (IPC) thread.
 | 
| +  void RunOnIOThread(const RunOnIOThreadCallback& callback);
 | 
| +
 | 
|    // Called to clear the pointer to the IPC task runner when it's going away.
 | 
|    void ClearIPCTaskRunner();
 | 
|  
 | 
| @@ -239,7 +243,6 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe {
 | 
|    // to the internal state.
 | 
|    explicit ChannelProxy(Context* context);
 | 
|  
 | 
| -
 | 
|    // Used internally to hold state that is referenced on the IPC thread.
 | 
|    class Context : public base::RefCountedThreadSafe<Context>,
 | 
|                    public Listener {
 | 
| @@ -304,6 +307,7 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe {
 | 
|      void OnSendMessage(std::unique_ptr<Message> message_ptr);
 | 
|      void OnAddFilter();
 | 
|      void OnRemoveFilter(MessageFilter* filter);
 | 
| +    void RunWithChannel(const RunOnIOThreadCallback& callback);
 | 
|  
 | 
|      // Methods called on the listener thread.
 | 
|      void AddFilter(MessageFilter* filter);
 | 
| 
 |