Index: components/nacl/loader/nacl_helper_win_64.cc |
diff --git a/components/nacl/loader/nacl_helper_win_64.cc b/components/nacl/loader/nacl_helper_win_64.cc |
index 22cf61e3dad4ee40ccf3e054eee18838dce980ec..a17fe888a0a745637411c4949c973adff8e64c24 100644 |
--- a/components/nacl/loader/nacl_helper_win_64.cc |
+++ b/components/nacl/loader/nacl_helper_win_64.cc |
@@ -25,6 +25,9 @@ |
#include "content/public/common/content_switches.h" |
#include "content/public/common/main_function_params.h" |
#include "content/public/common/sandbox_init.h" |
+#include "mojo/edk/embedder/embedder.h" |
+#include "mojo/edk/embedder/platform_channel_pair.h" |
+#include "mojo/edk/embedder/scoped_ipc_support.h" |
#include "sandbox/win/src/sandbox_types.h" |
extern int NaClMain(const content::MainFunctionParams&); |
@@ -36,6 +39,14 @@ int NaClBrokerMain(const content::MainFunctionParams& parameters) { |
base::MessageLoopForIO main_message_loop; |
base::PlatformThread::SetName("CrNaClBrokerMain"); |
+ mojo::edk::Init(); |
+ mojo::edk::ScopedIPCSupport mojo_ipc_support(main_message_loop.task_runner()); |
+ mojo::edk::ScopedPlatformHandle platform_channel( |
+ mojo::edk::PlatformChannelPair::PassClientHandleFromParentProcess( |
+ *base::CommandLine::ForCurrentProcess())); |
+ DCHECK(platform_channel.is_valid()); |
+ mojo::edk::SetParentPipeHandle(std::move(platform_channel)); |
+ |
std::unique_ptr<base::PowerMonitorSource> power_monitor_source( |
new base::PowerMonitorDeviceSource()); |
base::PowerMonitor power_monitor(std::move(power_monitor_source)); |