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

Side by Side Diff: services/shell/runner/common/client_util.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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "services/shell/runner/common/client_util.h" 5 #include "services/shell/runner/common/client_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "mojo/edk/embedder/embedder.h" 10 #include "mojo/edk/embedder/embedder.h"
11 #include "services/shell/runner/common/switches.h" 11 #include "services/shell/runner/common/switches.h"
12 12
13 namespace shell { 13 namespace shell {
14 14
15 mojom::ShellClientPtr PassShellClientRequestOnCommandLine( 15 mojom::ShellClientPtr PassShellClientRequestOnCommandLine(
16 base::CommandLine* command_line) { 16 base::CommandLine* command_line, const std::string& child_token) {
17 std::string token = mojo::edk::GenerateRandomToken(); 17 std::string token = mojo::edk::GenerateRandomToken();
18 command_line->AppendSwitchASCII(switches::kPrimordialPipeToken, token); 18 command_line->AppendSwitchASCII(switches::kPrimordialPipeToken, token);
19 19
20 mojom::ShellClientPtr client; 20 mojom::ShellClientPtr client;
21 client.Bind( 21 client.Bind(
22 mojom::ShellClientPtrInfo(mojo::edk::CreateParentMessagePipe(token), 0)); 22 mojom::ShellClientPtrInfo(
23 mojo::edk::CreateParentMessagePipe(token, child_token), 0));
23 return client; 24 return client;
24 } 25 }
25 26
26 mojom::ShellClientRequest GetShellClientRequestFromCommandLine() { 27 mojom::ShellClientRequest GetShellClientRequestFromCommandLine() {
27 std::string token = 28 std::string token =
28 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 29 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
29 switches::kPrimordialPipeToken); 30 switches::kPrimordialPipeToken);
30 mojom::ShellClientRequest request; 31 mojom::ShellClientRequest request;
31 if (!token.empty()) 32 if (!token.empty())
32 request.Bind(mojo::edk::CreateChildMessagePipe(token)); 33 request.Bind(mojo::edk::CreateChildMessagePipe(token));
33 return request; 34 return request;
34 } 35 }
35 36
36 } // namespace shell 37 } // namespace shell
OLDNEW
« no previous file with comments | « services/shell/runner/common/client_util.h ('k') | services/shell/runner/host/child_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698