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

Side by Side Diff: mojo/runner/child_process.cc

Issue 1107233002: Move runner stuff into a runner namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 7 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/runner/child_process.h ('k') | mojo/runner/child_process.mojom » ('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/runner/child_process.h" 5 #include "mojo/runner/child_process.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 14 matching lines...) Expand all
25 #include "mojo/edk/embedder/platform_channel_pair.h" 25 #include "mojo/edk/embedder/platform_channel_pair.h"
26 #include "mojo/edk/embedder/process_delegate.h" 26 #include "mojo/edk/embedder/process_delegate.h"
27 #include "mojo/edk/embedder/scoped_platform_handle.h" 27 #include "mojo/edk/embedder/scoped_platform_handle.h"
28 #include "mojo/edk/embedder/simple_platform_support.h" 28 #include "mojo/edk/embedder/simple_platform_support.h"
29 #include "mojo/public/cpp/system/core.h" 29 #include "mojo/public/cpp/system/core.h"
30 #include "mojo/runner/child_process.mojom.h" 30 #include "mojo/runner/child_process.mojom.h"
31 #include "mojo/runner/native_application_support.h" 31 #include "mojo/runner/native_application_support.h"
32 #include "mojo/runner/switches.h" 32 #include "mojo/runner/switches.h"
33 33
34 namespace mojo { 34 namespace mojo {
35 namespace shell { 35 namespace runner {
36 36
37 namespace { 37 namespace {
38 38
39 // Blocker --------------------------------------------------------------------- 39 // Blocker ---------------------------------------------------------------------
40 40
41 // Blocks a thread until another thread unblocks it, at which point it unblocks 41 // Blocks a thread until another thread unblocks it, at which point it unblocks
42 // and runs a closure provided by that thread. 42 // and runs a closure provided by that thread.
43 class Blocker { 43 class Blocker {
44 public: 44 public:
45 class Unblocker { 45 class Unblocker {
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 213
214 // |ChildController| methods: 214 // |ChildController| methods:
215 void StartApp(const String& app_path, 215 void StartApp(const String& app_path,
216 bool clean_app_path, 216 bool clean_app_path,
217 InterfaceRequest<Application> application_request, 217 InterfaceRequest<Application> application_request,
218 const StartAppCallback& on_app_complete) override { 218 const StartAppCallback& on_app_complete) override {
219 DVLOG(2) << "ChildControllerImpl::StartApp(" << app_path << ", ...)"; 219 DVLOG(2) << "ChildControllerImpl::StartApp(" << app_path << ", ...)";
220 DCHECK(thread_checker_.CalledOnValidThread()); 220 DCHECK(thread_checker_.CalledOnValidThread());
221 221
222 on_app_complete_ = on_app_complete; 222 on_app_complete_ = on_app_complete;
223 unblocker_.Unblock(base::Bind(&ChildControllerImpl::StartAppOnMainThread, 223 unblocker_.Unblock(base::Bind(
224 base::FilePath::FromUTF8Unsafe(app_path), 224 &ChildControllerImpl::StartAppOnMainThread,
225 clean_app_path 225 base::FilePath::FromUTF8Unsafe(app_path),
226 ? NativeApplicationCleanup::DELETE 226 clean_app_path ? shell::NativeApplicationCleanup::DELETE
227 : NativeApplicationCleanup::DONT_DELETE, 227 : shell::NativeApplicationCleanup::DONT_DELETE,
228 base::Passed(&application_request))); 228 base::Passed(&application_request)));
229 } 229 }
230 230
231 void ExitNow(int32_t exit_code) override { 231 void ExitNow(int32_t exit_code) override {
232 DVLOG(2) << "ChildControllerImpl::ExitNow(" << exit_code << ")"; 232 DVLOG(2) << "ChildControllerImpl::ExitNow(" << exit_code << ")";
233 _exit(exit_code); 233 _exit(exit_code);
234 } 234 }
235 235
236 private: 236 private:
237 ChildControllerImpl(AppContext* app_context, 237 ChildControllerImpl(AppContext* app_context,
238 const Blocker::Unblocker& unblocker) 238 const Blocker::Unblocker& unblocker)
239 : app_context_(app_context), 239 : app_context_(app_context),
240 unblocker_(unblocker), 240 unblocker_(unblocker),
241 channel_info_(nullptr), 241 channel_info_(nullptr),
242 binding_(this) { 242 binding_(this) {
243 binding_.set_error_handler(this); 243 binding_.set_error_handler(this);
244 } 244 }
245 245
246 // Callback for |embedder::CreateChannel()|. 246 // Callback for |embedder::CreateChannel()|.
247 void DidCreateChannel(embedder::ChannelInfo* channel_info) { 247 void DidCreateChannel(embedder::ChannelInfo* channel_info) {
248 DVLOG(2) << "ChildControllerImpl::DidCreateChannel()"; 248 DVLOG(2) << "ChildControllerImpl::DidCreateChannel()";
249 DCHECK(thread_checker_.CalledOnValidThread()); 249 DCHECK(thread_checker_.CalledOnValidThread());
250 channel_info_ = channel_info; 250 channel_info_ = channel_info;
251 } 251 }
252 252
253 static void StartAppOnMainThread( 253 static void StartAppOnMainThread(
254 const base::FilePath& app_path, 254 const base::FilePath& app_path,
255 NativeApplicationCleanup cleanup, 255 shell::NativeApplicationCleanup cleanup,
256 InterfaceRequest<Application> application_request) { 256 InterfaceRequest<Application> application_request) {
257 // TODO(vtl): This is copied from in_process_native_runner.cc. 257 // TODO(vtl): This is copied from in_process_native_runner.cc.
258 DVLOG(2) << "Loading/running Mojo app from " << app_path.value() 258 DVLOG(2) << "Loading/running Mojo app from " << app_path.value()
259 << " out of process"; 259 << " out of process";
260 260
261 // We intentionally don't unload the native library as its lifetime is the 261 // We intentionally don't unload the native library as its lifetime is the
262 // same as that of the process. 262 // same as that of the process.
263 base::NativeLibrary app_library = LoadNativeApplication(app_path, cleanup); 263 base::NativeLibrary app_library = LoadNativeApplication(app_path, cleanup);
264 RunNativeApplication(app_library, application_request.Pass()); 264 RunNativeApplication(app_library, application_request.Pass());
265 } 265 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 base::Bind(&ChildControllerImpl::Init, base::Unretained(&app_context), 310 base::Bind(&ChildControllerImpl::Init, base::Unretained(&app_context),
311 base::Passed(&platform_channel), blocker.GetUnblocker())); 311 base::Passed(&platform_channel), blocker.GetUnblocker()));
312 // This will block, then run whatever the controller wants. 312 // This will block, then run whatever the controller wants.
313 blocker.Block(); 313 blocker.Block();
314 314
315 app_context.Shutdown(); 315 app_context.Shutdown();
316 316
317 return 0; 317 return 0;
318 } 318 }
319 319
320 } // namespace shell 320 } // namespace runner
321 } // namespace mojo 321 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/runner/child_process.h ('k') | mojo/runner/child_process.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698