Index: ipc/ipc_channel_mojo.h |
diff --git a/ipc/ipc_channel_mojo.h b/ipc/ipc_channel_mojo.h |
index 215b198d60c25ddc85996837e8b4c356ea74d863..d2d6880f32554d41d58ce58284258e6914a1a9e7 100644 |
--- a/ipc/ipc_channel_mojo.h |
+++ b/ipc/ipc_channel_mojo.h |
@@ -21,11 +21,13 @@ |
#include "base/task_runner.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "build/build_config.h" |
+#include "ipc/ipc.mojom.h" |
#include "ipc/ipc_channel.h" |
#include "ipc/ipc_channel_factory.h" |
#include "ipc/ipc_export.h" |
#include "ipc/ipc_message_pipe_reader.h" |
#include "ipc/ipc_mojo_bootstrap.h" |
+#include "mojo/public/cpp/bindings/thread_safe_interface_ptr.h" |
#include "mojo/public/cpp/system/core.h" |
namespace IPC { |
@@ -42,7 +44,6 @@ namespace IPC { |
class IPC_EXPORT ChannelMojo |
: public Channel, |
public Channel::AssociatedInterfaceSupport, |
- public NON_EXPORTED_BASE(MojoBootstrap::Delegate), |
public NON_EXPORTED_BASE(internal::MessagePipeReader::Delegate) { |
public: |
// Creates a ChannelMojo. |
@@ -84,10 +85,6 @@ class IPC_EXPORT ChannelMojo |
Message* message, |
base::Optional<std::vector<mojom::SerializedHandlePtr>>* handles); |
- // MojoBootstrapDelegate implementation |
- void OnPipesAvailable(mojom::ChannelAssociatedPtr sender, |
- mojom::ChannelAssociatedRequest receiver) override; |
- |
// MessagePipeReader::Delegate |
void OnPeerPidReceived(int32_t peer_pid) override; |
void OnMessageReceived(const Message& message) override; |
@@ -103,8 +100,15 @@ class IPC_EXPORT ChannelMojo |
Listener* listener, |
const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner); |
+ void ForwardMessageFromThreadSafePtr(mojo::Message message); |
+ void ForwardMessageWithResponderFromThreadSafePtr( |
+ mojo::Message message, |
+ std::unique_ptr<mojo::MessageReceiver> responder); |
+ |
// Channel::AssociatedInterfaceSupport: |
mojo::AssociatedGroup* GetAssociatedGroup() override; |
+ std::unique_ptr<mojo::ThreadSafeForwarder<mojom::Channel>> |
+ CreateThreadSafeChannel() override; |
void AddGenericAssociatedInterface( |
const std::string& name, |
const GenericAssociatedInterfaceFactory& factory) override; |
@@ -113,7 +117,7 @@ class IPC_EXPORT ChannelMojo |
mojo::ScopedInterfaceEndpointHandle handle) override; |
// A TaskRunner which runs tasks on the ChannelMojo's owning thread. |
- scoped_refptr<base::TaskRunner> task_runner_; |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
const mojo::MessagePipeHandle pipe_; |
std::unique_ptr<MojoBootstrap> bootstrap_; |