summaryrefslogtreecommitdiffstats
path: root/chrome/service/service_main.cc
diff options
context:
space:
mode:
authordmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 04:14:42 +0000
committerdmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 04:14:42 +0000
commitc3498a1c9ead237b365f316b761ea3d534b671f9 (patch)
tree7c287f6bd53347a2e91a447ce28320ae2a55fa09 /chrome/service/service_main.cc
parent09f2b5517f8cb83a2a22e0249caf3dbd07dd8d08 (diff)
downloadchromium_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.cc37
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;
}