diff options
author | dmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 04:14:42 +0000 |
---|---|---|
committer | dmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 04:14:42 +0000 |
commit | c3498a1c9ead237b365f316b761ea3d534b671f9 (patch) | |
tree | 7c287f6bd53347a2e91a447ce28320ae2a55fa09 /chrome/service/service_main.cc | |
parent | 09f2b5517f8cb83a2a22e0249caf3dbd07dd8d08 (diff) | |
download | chromium_src-c3498a1c9ead237b365f316b761ea3d534b671f9.zip chromium_src-c3498a1c9ead237b365f316b761ea3d534b671f9.tar.gz chromium_src-c3498a1c9ead237b365f316b761ea3d534b671f9.tar.bz2 |
Get service processes working on Mac and Linux.
Service processes will now launch, and attach to ipc channels.
BUG=NONE
TEST=BUILD
Review URL: http://codereview.chromium.org/6349029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73425 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/service/service_main.cc')
-rw-r--r-- | chrome/service/service_main.cc | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/chrome/service/service_main.cc b/chrome/service/service_main.cc index 67f7c94..722ce3d 100644 --- a/chrome/service/service_main.cc +++ b/chrome/service/service_main.cc @@ -4,53 +4,54 @@ #include "base/debug/debugger.h" #include "base/message_loop.h" -#include "base/path_service.h" -#include "base/singleton.h" -#include "base/threading/platform_thread.h" -#include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/main_function_params.h" -#include "chrome/common/sandbox_policy.h" #include "chrome/common/service_process_util.h" -#include "chrome/service/cloud_print/cloud_print_proxy.h" #include "chrome/service/service_process.h" -#if defined(OS_MACOSX) +#if defined(OS_WIN) +#include "chrome/common/sandbox_policy.h" +#elif defined(OS_MACOSX) #include "chrome/common/chrome_application_mac.h" -#endif +#endif // defined(OS_WIN) // Mainline routine for running as the service process. int ServiceProcessMain(const MainFunctionParams& parameters) { - // If there is already a service process running, quit now. - if (!ServiceProcessState::GetInstance()->Initialize()) - return 0; - MessageLoopForUI main_message_loop; + main_message_loop.set_thread_name("MainThread"); if (parameters.command_line_.HasSwitch(switches::kWaitForDebugger)) { base::debug::WaitForDebugger(60, true); } + VLOG(1) << "Service process launched: " + << parameters.command_line_.command_line_string(); + #if defined(OS_MACOSX) chrome_application_mac::RegisterCrApp(); #endif base::PlatformThread::SetName("CrServiceMain"); + // If there is already a service process running, quit now. + if (!ServiceProcessState::GetInstance()->Initialize()) + return 0; + #if defined(OS_WIN) sandbox::BrokerServices* broker_services = parameters.sandbox_info_.BrokerServices(); if (broker_services) sandbox::InitBrokerServices(broker_services); -#endif // defined(OS_WIN) +#elif defined(OS_MACOSX) + chrome_application_mac::RegisterCrApp(); +#endif // defined(OS_WIN) ServiceProcess service_process; - if (!service_process.Initialize(&main_message_loop, - parameters.command_line_)) { + if (service_process.Initialize(&main_message_loop, + parameters.command_line_)) { + MessageLoop::current()->Run(); + } else { LOG(ERROR) << "Service process failed to initialize"; - return 0; } - - MessageLoop::current()->Run(); service_process.Teardown(); return 0; } |