diff options
author | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 23:44:17 +0000 |
---|---|---|
committer | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 23:44:17 +0000 |
commit | 6486088e8bb6dc810157503edfa3c75a58e9e49d (patch) | |
tree | eda9fabacac5b6796c142ec4cc402b47bdf97dd8 /ipc/ipc_channel_proxy.h | |
parent | d93dbd1248f4e556c9c1c1005f5d051e3fe1efc8 (diff) | |
download | chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.zip chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.tar.gz chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.tar.bz2 |
Introduce ChannelMojo
This CL introduces ChannelMojo IPC::Channel implementation
and optionally applies it for renderer-browser IPC channel.
Current stability is like 5-seconds browser and There are rough edges.
It often closes the channel so needs to be more robust.
Even though the level of stability, having it in the tree will helps
team to try and improve it.
BUG=377980
R=darin@chromium.org,jam@chromium.org,viettrungluu@chromium.org
TEST=ipc_channel_mojo_unittest.cc
Review URL: https://codereview.chromium.org/382333002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287402 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_proxy.h')
-rw-r--r-- | ipc/ipc_channel_proxy.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ipc/ipc_channel_proxy.h b/ipc/ipc_channel_proxy.h index 2e483ac..e76e56f 100644 --- a/ipc/ipc_channel_proxy.h +++ b/ipc/ipc_channel_proxy.h @@ -22,6 +22,7 @@ class SingleThreadTaskRunner; namespace IPC { +class ChannelFactory; class MessageFilter; class MessageFilterRouter; class SendCallbackHelper; @@ -70,6 +71,11 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe { Listener* listener, base::SingleThreadTaskRunner* ipc_task_runner); + static scoped_ptr<ChannelProxy> Create( + scoped_ptr<ChannelFactory> factory, + Listener* listener, + base::SingleThreadTaskRunner* ipc_task_runner); + virtual ~ChannelProxy(); // Initializes the channel proxy. Only call this once to initialize a channel @@ -78,6 +84,7 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe { // thread. void Init(const IPC::ChannelHandle& channel_handle, Channel::Mode mode, bool create_pipe_now); + void Init(scoped_ptr<ChannelFactory> factory, bool create_pipe_now); // Close the IPC::Channel. This operation completes asynchronously, once the // background thread processes the command to close the channel. It is ok to @@ -171,8 +178,7 @@ class IPC_EXPORT ChannelProxy : public Sender, public base::NonThreadSafe { friend class SendCallbackHelper; // Create the Channel - void CreateChannel(const IPC::ChannelHandle& channel_handle, - const Channel::Mode& mode); + void CreateChannel(scoped_ptr<ChannelFactory> factory); // Methods called on the IO thread. void OnSendMessage(scoped_ptr<Message> message_ptr); |