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

Side by Side Diff: components/nacl/browser/nacl_process_host.h

Issue 2301103003: Use ChannelMojo for NaCl PPAPI channels. (Closed)
Patch Set: Created 4 years, 2 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 | « no previous file | components/nacl/browser/nacl_process_host.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_ 5 #ifndef COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_
6 #define COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_ 6 #define COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 void OnProcessLaunchedByBroker(base::ProcessHandle handle); 113 void OnProcessLaunchedByBroker(base::ProcessHandle handle);
114 void OnDebugExceptionHandlerLaunchedByBroker(bool success); 114 void OnDebugExceptionHandlerLaunchedByBroker(bool success);
115 #endif 115 #endif
116 116
117 bool Send(IPC::Message* msg); 117 bool Send(IPC::Message* msg);
118 118
119 content::BrowserChildProcessHost* process() { return process_.get(); } 119 content::BrowserChildProcessHost* process() { return process_.get(); }
120 content::BrowserPpapiHost* browser_ppapi_host() { return ppapi_host_.get(); } 120 content::BrowserPpapiHost* browser_ppapi_host() { return ppapi_host_.get(); }
121 121
122 private: 122 private:
123 class ScopedChannelHandle;
124
125 void LaunchNaClGdb(); 123 void LaunchNaClGdb();
126 124
127 // Mark the process as using a particular GDB debug stub port and notify 125 // Mark the process as using a particular GDB debug stub port and notify
128 // listeners (if the port is not kGdbDebugStubPortUnknown). 126 // listeners (if the port is not kGdbDebugStubPortUnknown).
129 void SetDebugStubPort(int port); 127 void SetDebugStubPort(int port);
130 128
131 #if defined(OS_POSIX) 129 #if defined(OS_POSIX)
132 // Create bound TCP socket in the browser process so that the NaCl GDB debug 130 // Create bound TCP socket in the browser process so that the NaCl GDB debug
133 // stub can use it to accept incoming connections even when the Chrome sandbox 131 // stub can use it to accept incoming connections even when the Chrome sandbox
134 // is enabled. 132 // is enabled.
135 net::SocketDescriptor GetDebugStubSocketHandle(); 133 net::SocketDescriptor GetDebugStubSocketHandle();
136 #endif 134 #endif
137 135
138 #if defined(OS_WIN) 136 #if defined(OS_WIN)
139 // Called when the debug stub port has been selected. 137 // Called when the debug stub port has been selected.
140 void OnDebugStubPortSelected(uint16_t debug_stub_port); 138 void OnDebugStubPortSelected(uint16_t debug_stub_port);
141 #endif 139 #endif
142 140
143 bool LaunchSelLdr(); 141 bool LaunchSelLdr();
144 142
145 // BrowserChildProcessHostDelegate implementation: 143 // BrowserChildProcessHostDelegate implementation:
146 bool OnMessageReceived(const IPC::Message& msg) override; 144 bool OnMessageReceived(const IPC::Message& msg) override;
147 void OnProcessLaunched() override; 145 void OnProcessLaunched() override;
148 146
149 void OnResourcesReady(); 147 void OnResourcesReady();
150 148
151 // Sends the reply message to the renderer who is waiting for the plugin 149 // Sends the reply message to the renderer who is waiting for the plugin
152 // to load. Returns true on success. 150 // to load. Returns true on success.
153 void ReplyToRenderer( 151 void ReplyToRenderer(
154 ScopedChannelHandle ppapi_channel_handle, 152 mojo::ScopedMessagePipeHandle ppapi_channel_handle,
155 ScopedChannelHandle trusted_channel_handle, 153 mojo::ScopedMessagePipeHandle trusted_channel_handle,
156 ScopedChannelHandle manifest_service_channel_handle); 154 mojo::ScopedMessagePipeHandle manifest_service_channel_handle);
157 155
158 // Sends the reply with error message to the renderer. 156 // Sends the reply with error message to the renderer.
159 void SendErrorToRenderer(const std::string& error_message); 157 void SendErrorToRenderer(const std::string& error_message);
160 158
161 // Sends the reply message to the renderer. Either result or 159 // Sends the reply message to the renderer. Either result or
162 // error message must be empty. 160 // error message must be empty.
163 void SendMessageToRenderer(const NaClLaunchResult& result, 161 void SendMessageToRenderer(const NaClLaunchResult& result,
164 const std::string& error_message); 162 const std::string& error_message);
165 163
166 // Sends the message to the NaCl process to load the plugin. Returns true 164 // Sends the message to the NaCl process to load the plugin. Returns true
167 // on success. 165 // on success.
168 bool StartNaClExecution(); 166 bool StartNaClExecution();
169 167
170 void StartNaClFileResolved( 168 void StartNaClFileResolved(
171 NaClStartParams params, 169 NaClStartParams params,
172 const base::FilePath& file_path, 170 const base::FilePath& file_path,
173 base::File nexe_file); 171 base::File nexe_file);
174 172
175 #if defined(OS_LINUX)
176 // Creates a pair of IPC::ChannelHandle. Returns true on success.
177 static bool CreateChannelHandlePair(ScopedChannelHandle* channel_handle1,
178 ScopedChannelHandle* channel_handle2);
179 #endif
180
181 // Starts browser PPAPI proxy. Returns true on success. 173 // Starts browser PPAPI proxy. Returns true on success.
182 bool StartPPAPIProxy(ScopedChannelHandle channel_handle); 174 bool StartPPAPIProxy(mojo::ScopedMessagePipeHandle channel_handle);
183 175
184 // Does post-process-launching tasks for starting the NaCl process once 176 // Does post-process-launching tasks for starting the NaCl process once
185 // we have a connection. 177 // we have a connection.
186 // 178 //
187 // Returns false on failure. 179 // Returns false on failure.
188 bool StartWithLaunchedProcess(); 180 bool StartWithLaunchedProcess();
189 181
190 // Message handlers for validation caching. 182 // Message handlers for validation caching.
191 void OnQueryKnownToValidate(const std::string& signature, bool* result); 183 void OnQueryKnownToValidate(const std::string& signature, bool* result);
192 void OnSetKnownToValidate(const std::string& signature); 184 void OnSetKnownToValidate(const std::string& signature);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 std::string mojo_child_token_; 261 std::string mojo_child_token_;
270 262
271 base::WeakPtrFactory<NaClProcessHost> weak_factory_; 263 base::WeakPtrFactory<NaClProcessHost> weak_factory_;
272 264
273 DISALLOW_COPY_AND_ASSIGN(NaClProcessHost); 265 DISALLOW_COPY_AND_ASSIGN(NaClProcessHost);
274 }; 266 };
275 267
276 } // namespace nacl 268 } // namespace nacl
277 269
278 #endif // COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_ 270 #endif // COMPONENTS_NACL_BROWSER_NACL_PROCESS_HOST_H_
OLDNEW
« no previous file with comments | « no previous file | components/nacl/browser/nacl_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698