| Index: mojo/edk/system/core.cc
|
| diff --git a/mojo/edk/system/core.cc b/mojo/edk/system/core.cc
|
| index ac513da7335452ae3c7f6a8625783202cfa4d7d4..af9d151cc9198fb4932c36672fdadda5cd583387 100644
|
| --- a/mojo/edk/system/core.cc
|
| +++ b/mojo/edk/system/core.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/time/time.h"
|
| +#include "mojo/edk/embedder/embedder_internal.h"
|
| #include "mojo/edk/embedder/platform_channel_pair.h"
|
| #include "mojo/edk/embedder/platform_shared_buffer.h"
|
| #include "mojo/edk/embedder/platform_support.h"
|
| @@ -24,6 +25,10 @@
|
| #include "mojo/public/c/system/macros.h"
|
| #include "mojo/public/cpp/system/macros.h"
|
|
|
| +#if defined(OS_WIN)
|
| +#include "mojo/edk/system/token_serializer_win.h"
|
| +#endif
|
| +
|
| namespace mojo {
|
| namespace edk {
|
|
|
| @@ -204,11 +209,19 @@ MojoResult Core::CreateMessagePipe(
|
| return MOJO_RESULT_RESOURCE_EXHAUSTED;
|
| }
|
|
|
| + ScopedPlatformHandle server_handle, client_handle;
|
| +#if defined(OS_WIN)
|
| + internal::g_token_serializer->CreatePlatformChannelPair(
|
| + &server_handle, &client_handle);
|
| +#else
|
| PlatformChannelPair channel_pair;
|
| - dispatcher0->Init(channel_pair.PassServerHandle(), nullptr, 0u, nullptr, 0u,
|
| - nullptr, nullptr);
|
| - dispatcher1->Init(channel_pair.PassClientHandle(), nullptr, 0u, nullptr, 0u,
|
| - nullptr, nullptr);
|
| + server_handle = channel_pair.PassServerHandle();
|
| + client_handle = channel_pair.PassClientHandle();
|
| +#endif
|
| + dispatcher0->Init(server_handle.Pass(), nullptr, 0u, nullptr, 0u, nullptr,
|
| + nullptr);
|
| + dispatcher1->Init(client_handle.Pass(), nullptr, 0u, nullptr, 0u, nullptr,
|
| + nullptr);
|
|
|
| *message_pipe_handle0 = handle_pair.first;
|
| *message_pipe_handle1 = handle_pair.second;
|
| @@ -364,9 +377,17 @@ MojoResult Core::CreateDataPipe(
|
| }
|
| DCHECK_NE(handle_pair.second, MOJO_HANDLE_INVALID);
|
|
|
| + ScopedPlatformHandle server_handle, client_handle;
|
| +#if defined(OS_WIN)
|
| + internal::g_token_serializer->CreatePlatformChannelPair(
|
| + &server_handle, &client_handle);
|
| +#else
|
| PlatformChannelPair channel_pair;
|
| - producer_dispatcher->Init(channel_pair.PassServerHandle(), nullptr, 0u);
|
| - consumer_dispatcher->Init(channel_pair.PassClientHandle(), nullptr, 0u);
|
| + server_handle = channel_pair.PassServerHandle();
|
| + client_handle = channel_pair.PassClientHandle();
|
| +#endif
|
| + producer_dispatcher->Init(server_handle.Pass(), nullptr, 0u);
|
| + consumer_dispatcher->Init(client_handle.Pass(), nullptr, 0u);
|
|
|
| *data_pipe_producer_handle = handle_pair.first;
|
| *data_pipe_consumer_handle = handle_pair.second;
|
|
|