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: chrome/service/service_main.cc

Issue 8414020: Expose the sandbox related code through the content API. I did a bit of cleanup while I was doing... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/debug/debugger.h" 5 #include "base/debug/debugger.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "chrome/common/chrome_switches.h" 7 #include "chrome/common/chrome_switches.h"
8 #include "chrome/common/service_process_util.h" 8 #include "chrome/common/service_process_util.h"
9 #include "chrome/service/service_process.h" 9 #include "chrome/service/service_process.h"
10 #include "content/common/main_function_params.h" 10 #include "content/common/main_function_params.h"
11 11
12 #if defined(OS_WIN) 12 #if defined(OS_WIN)
13 #include "content/common/sandbox_policy.h" 13 #include "content/common/sandbox_policy.h"
14 #include "sandbox/src/sandbox_types.h"
14 #elif defined(OS_MACOSX) 15 #elif defined(OS_MACOSX)
15 #include "chrome/service/chrome_service_application_mac.h" 16 #include "chrome/service/chrome_service_application_mac.h"
16 #endif // defined(OS_WIN) 17 #endif // defined(OS_WIN)
17 18
18 // Mainline routine for running as the service process. 19 // Mainline routine for running as the service process.
19 int ServiceProcessMain(const MainFunctionParams& parameters) { 20 int ServiceProcessMain(const MainFunctionParams& parameters) {
20 MessageLoopForUI main_message_loop; 21 MessageLoopForUI main_message_loop;
21 main_message_loop.set_thread_name("MainThread"); 22 main_message_loop.set_thread_name("MainThread");
22 if (parameters.command_line_.HasSwitch(switches::kWaitForDebugger)) { 23 if (parameters.command_line.HasSwitch(switches::kWaitForDebugger)) {
23 base::debug::WaitForDebugger(60, true); 24 base::debug::WaitForDebugger(60, true);
24 } 25 }
25 26
26 VLOG(1) << "Service process launched: " 27 VLOG(1) << "Service process launched: "
27 << parameters.command_line_.GetCommandLineString(); 28 << parameters.command_line.GetCommandLineString();
28 29
29 #if defined(OS_MACOSX) 30 #if defined(OS_MACOSX)
30 chrome_service_application_mac::RegisterServiceCrApp(); 31 chrome_service_application_mac::RegisterServiceCrApp();
31 #endif 32 #endif
32 33
33 base::PlatformThread::SetName("CrServiceMain"); 34 base::PlatformThread::SetName("CrServiceMain");
34 35
35 // If there is already a service process running, quit now. 36 // If there is already a service process running, quit now.
36 scoped_ptr<ServiceProcessState> state(new ServiceProcessState); 37 scoped_ptr<ServiceProcessState> state(new ServiceProcessState);
37 if (!state->Initialize()) 38 if (!state->Initialize())
38 return 0; 39 return 0;
39 40
40 #if defined(OS_WIN) 41 #if defined(OS_WIN)
41 sandbox::BrokerServices* broker_services = 42 sandbox::BrokerServices* broker_services =
42 parameters.sandbox_info_.BrokerServices(); 43 parameters.sandbox_info->broker_services;
43 if (broker_services) 44 if (broker_services)
44 sandbox::InitBrokerServices(broker_services); 45 sandbox::InitBrokerServices(broker_services);
45 #endif // defined(OS_WIN) 46 #endif // defined(OS_WIN)
46 47
47 ServiceProcess service_process; 48 ServiceProcess service_process;
48 if (service_process.Initialize(&main_message_loop, 49 if (service_process.Initialize(&main_message_loop,
49 parameters.command_line_, 50 parameters.command_line,
50 state.release())) { 51 state.release())) {
51 MessageLoop::current()->Run(); 52 MessageLoop::current()->Run();
52 } else { 53 } else {
53 LOG(ERROR) << "Service process failed to initialize"; 54 LOG(ERROR) << "Service process failed to initialize";
54 } 55 }
55 service_process.Teardown(); 56 service_process.Teardown();
56 return 0; 57 return 0;
57 } 58 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698