Index: mojo/edk/embedder/embedder.h |
diff --git a/mojo/edk/embedder/embedder.h b/mojo/edk/embedder/embedder.h |
index 3393258055a4e632767ccf3251b738f22da21a24..b43748ce154e668c0cc5b685172b1bcc1715faaf 100644 |
--- a/mojo/edk/embedder/embedder.h |
+++ b/mojo/edk/embedder/embedder.h |
@@ -10,6 +10,7 @@ |
#include <string> |
#include "base/callback.h" |
+#include "base/command_line.h" |
Anand Mistry (off Chromium)
2016/01/28 02:26:24
You don't use base::CommandLine anywhere in this f
|
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/process/process_handle.h" |
@@ -117,10 +118,53 @@ MOJO_SYSTEM_IMPL_EXPORT void ShutdownIPCSupportOnIOThread(); |
// |OnShutdownComplete()|. |
MOJO_SYSTEM_IMPL_EXPORT void ShutdownIPCSupport(); |
-// Creates a message pipe from a platform handle. Safe to call from any thread. |
+// Unused. Crashes. Only here for linking. |
MOJO_SYSTEM_IMPL_EXPORT ScopedMessagePipeHandle |
CreateMessagePipe(ScopedPlatformHandle platform_handle); |
+// Creates a message pipe over an arbitrary platform channel. In order for this |
+// to work properly each end of the channel must be passed to this function: one |
+// end in a parent process and one end in a child process. In a child process, |
+// either PreInitializeChildProcess() or SetParentPipe() must have been been |
+// called at least once already. |
+// |
+// Note: This only exists for backwards compatibility with embedders that rely |
+// on mojo::embedder::CreateChannel() behavior. If you have a means of passing |
+// platform handles around, you can probably also pass strings around. If you |
+// can pass strings around, use CreateParentMessagePipe() and |
+// CreateChlidMessagePipe() instead (see below.) |
+// |
+// |callback| must be safe to call from any thread. |
+MOJO_SYSTEM_IMPL_EXPORT void |
+CreateMessagePipe( |
+ ScopedPlatformHandle platform_handle, |
+ const base::Callback<void(ScopedMessagePipeHandle)>& callback); |
+ |
+// Creates a message pipe from a token. A child embedder must also have this |
+// token and call CreateChildMessagePipe() with it in order for the pipe to get |
+// connected. |
+// |
+// |callback| must be safe to call from any thread. |
+MOJO_SYSTEM_IMPL_EXPORT void |
+CreateParentMessagePipe( |
+ const std::string& token, |
+ const base::Callback<void(ScopedMessagePipeHandle)>& callback); |
+ |
+// Creates a message pipe from a token in a child process. The parent must also |
+// have this token and call CreateParentMessagePipe() with it in order for the |
+// pipe to get connected. |
+// |
+// |callback| must be safe to call from any thread. |
+MOJO_SYSTEM_IMPL_EXPORT void |
+CreateChildMessagePipe( |
+ const std::string& token, |
+ const base::Callback<void(ScopedMessagePipeHandle)>& callback); |
+ |
+// Generates a random ASCII token string for use with CreateParentMessagePipe() |
+// and CreateChildMessagePipe() above. The generated token is suitably random so |
+// as to not have to worry about collisions with other generated tokens. |
+MOJO_SYSTEM_IMPL_EXPORT std::string GenerateRandomToken(); |
+ |
} // namespace edk |
} // namespace mojo |