summaryrefslogtreecommitdiffstats
path: root/chrome/nacl/nacl_main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/nacl/nacl_main.cc')
-rw-r--r--chrome/nacl/nacl_main.cc53
1 files changed, 14 insertions, 39 deletions
diff --git a/chrome/nacl/nacl_main.cc b/chrome/nacl/nacl_main.cc
index 255b2ce..5271cf4 100644
--- a/chrome/nacl/nacl_main.cc
+++ b/chrome/nacl/nacl_main.cc
@@ -22,42 +22,8 @@
#include "chrome/common/main_function_params.h"
#include "chrome/nacl/nacl_thread.h"
-// This function provides some ways to test crash and assertion handling
-// behavior of the renderer.
-static void HandleNaClTestParameters(const CommandLine& command_line) {
- if (command_line.HasSwitch(switches::kNaClStartupDialog)) {
- ChildProcess::WaitForDebugger(L"NativeClient");
- }
-}
-
-// Launch the NaCl child process in its own thread.
-#if defined (OS_WIN)
-static void LaunchNaClChildProcess(bool no_sandbox,
- sandbox::TargetServices* target_services) {
- ChildProcess nacl_process;
- nacl_process.set_main_thread(new NaClThread());
- if (!no_sandbox && target_services)
- target_services->LowerToken();
- MessageLoop::current()->Run();
-}
-#else
-static void LaunchNaClChildProcess() {
- ChildProcess nacl_process;
- nacl_process.set_main_thread(new NaClThread());
- MessageLoop::current()->Run();
-}
-#endif
-
// main() routine for running as the sel_ldr process.
int NaClMain(const MainFunctionParams& parameters) {
- const CommandLine& parsed_command_line = parameters.command_line_;
-
- // This function allows pausing execution using the --nacl-startup-dialog
- // flag allowing us to attach a debugger.
- // Do not move this function down since that would mean we can't easily debug
- // whatever occurs before it.
- HandleNaClTestParameters(parsed_command_line);
-
// The main thread of the plugin services IO.
MessageLoopForIO main_message_loop;
std::wstring app_name = chrome::kBrowserAppName;
@@ -67,6 +33,8 @@ int NaClMain(const MainFunctionParams& parameters) {
HighResolutionTimerManager hi_res_timer_manager;
#if defined(OS_WIN)
+ const CommandLine& parsed_command_line = parameters.command_line_;
+
sandbox::TargetServices* target_services =
parameters.sandbox_info_.TargetServices();
@@ -84,15 +52,22 @@ int NaClMain(const MainFunctionParams& parameters) {
DCHECK(sandbox_test_module);
}
}
- LaunchNaClChildProcess(no_sandbox, target_services);
-
-#elif defined(OS_MACOSX)
- LaunchNaClChildProcess();
#else
- NOTIMPLEMENTED() << " not implemented startup, plugin startup dialog etc.";
+ NOTIMPLEMENTED() << " non-windows startup, plugin startup dialog etc.";
#endif
+ {
+ ChildProcess nacl_process;
+ nacl_process.set_main_thread(new NaClThread());
+#if defined(OS_WIN)
+ if (!no_sandbox && target_services)
+ target_services->LowerToken();
+#endif
+
+ MessageLoop::current()->Run();
+ }
+
return 0;
}