1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/at_exit.h"
6 #include "base/command_line.h"
7 #include "base/debug/stack_trace.h"
8 #include "base/process/launch.h"
9 #include "build/build_config.h"
10 #include "mojo/runner/child_process.h"
11 #include "mojo/runner/desktop/launcher_process.h"
12 #include "mojo/runner/init.h"
13 #include "mojo/runner/switches.h"
15 int main(int argc
, char** argv
) {
16 base::AtExitManager at_exit
;
17 base::CommandLine::Init(argc
, argv
);
19 mojo::runner::InitializeLogging();
21 const base::CommandLine
& command_line
=
22 *base::CommandLine::ForCurrentProcess();
24 #if !defined(OFFICIAL_BUILD)
25 base::debug::EnableInProcessStackDumping();
27 base::RouteStdioToConsole(false);
31 if (command_line
.HasSwitch(switches::kChildProcess
))
32 return mojo::runner::ChildProcessMain();
34 return mojo::runner::LauncherProcessMain(argc
, argv
);