Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: mojo/edk/embedder/embedder.cc

Issue 2019973002: [mojo-edk] Bind a child token to child launches and port reservations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/edk/embedder/embedder.h ('k') | mojo/edk/embedder/embedder_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/edk/embedder/embedder.h" 5 #include "mojo/edk/embedder/embedder.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 20 matching lines...) Expand all
31 ProcessDelegate* g_process_delegate; 31 ProcessDelegate* g_process_delegate;
32 32
33 Core* GetCore() { return g_core; } 33 Core* GetCore() { return g_core; }
34 34
35 } // namespace internal 35 } // namespace internal
36 36
37 void SetMaxMessageSize(size_t bytes) { 37 void SetMaxMessageSize(size_t bytes) {
38 } 38 }
39 39
40 void ChildProcessLaunched(base::ProcessHandle child_process, 40 void ChildProcessLaunched(base::ProcessHandle child_process,
41 ScopedPlatformHandle server_pipe) { 41 ScopedPlatformHandle server_pipe,
42 const std::string& child_token) {
42 CHECK(internal::g_core); 43 CHECK(internal::g_core);
43 internal::g_core->AddChild(child_process, std::move(server_pipe)); 44 internal::g_core->AddChild(child_process, std::move(server_pipe),
45 child_token);
46 }
47
48 void ChildProcessLaunchFailed(const std::string& child_token) {
49 CHECK(internal::g_core);
50 internal::g_core->ChildLaunchFailed(child_token);
44 } 51 }
45 52
46 void SetParentPipeHandle(ScopedPlatformHandle pipe) { 53 void SetParentPipeHandle(ScopedPlatformHandle pipe) {
47 CHECK(internal::g_core); 54 CHECK(internal::g_core);
48 internal::g_core->InitChild(std::move(pipe)); 55 internal::g_core->InitChild(std::move(pipe));
49 } 56 }
50 57
51 void SetParentPipeHandleFromCommandLine() { 58 void SetParentPipeHandleFromCommandLine() {
52 ScopedPlatformHandle platform_channel = 59 ScopedPlatformHandle platform_channel =
53 PlatformChannelPair::PassClientHandleFromParentProcess( 60 PlatformChannelPair::PassClientHandleFromParentProcess(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 internal::g_core->SetMachPortProvider(port_provider); 126 internal::g_core->SetMachPortProvider(port_provider);
120 } 127 }
121 #endif 128 #endif
122 129
123 ScopedMessagePipeHandle CreateMessagePipe( 130 ScopedMessagePipeHandle CreateMessagePipe(
124 ScopedPlatformHandle platform_handle) { 131 ScopedPlatformHandle platform_handle) {
125 CHECK(internal::g_process_delegate); 132 CHECK(internal::g_process_delegate);
126 return internal::g_core->CreateMessagePipe(std::move(platform_handle)); 133 return internal::g_core->CreateMessagePipe(std::move(platform_handle));
127 } 134 }
128 135
129 ScopedMessagePipeHandle CreateParentMessagePipe(const std::string& token) { 136 ScopedMessagePipeHandle CreateParentMessagePipe(
137 const std::string& token, const std::string& child_token) {
130 CHECK(internal::g_process_delegate); 138 CHECK(internal::g_process_delegate);
131 return internal::g_core->CreateParentMessagePipe(token); 139 return internal::g_core->CreateParentMessagePipe(token, child_token);
132 } 140 }
133 141
134 ScopedMessagePipeHandle CreateChildMessagePipe(const std::string& token) { 142 ScopedMessagePipeHandle CreateChildMessagePipe(const std::string& token) {
135 CHECK(internal::g_process_delegate); 143 CHECK(internal::g_process_delegate);
136 return internal::g_core->CreateChildMessagePipe(token); 144 return internal::g_core->CreateChildMessagePipe(token);
137 } 145 }
138 146
139 std::string GenerateRandomToken() { 147 std::string GenerateRandomToken() {
140 char random_bytes[16]; 148 char random_bytes[16];
141 crypto::RandBytes(random_bytes, 16); 149 crypto::RandBytes(random_bytes, 16);
142 return base::HexEncode(random_bytes, 16); 150 return base::HexEncode(random_bytes, 16);
143 } 151 }
144 152
145 } // namespace edk 153 } // namespace edk
146 } // namespace mojo 154 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/embedder/embedder.h ('k') | mojo/edk/embedder/embedder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698