Index: chrome/service/service_process.cc |
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc |
index d559c46869b28738c2a4dfa07ac85e0d96c3859b..ae98500a41580c523cc35401c1f951770e86020b 100644 |
--- a/chrome/service/service_process.cc |
+++ b/chrome/service/service_process.cc |
@@ -125,11 +125,13 @@ ServiceProcess::ServiceProcess() |
} |
bool ServiceProcess::Initialize(MessageLoopForUI* message_loop, |
- const CommandLine& command_line) { |
+ const CommandLine& command_line, |
+ ServiceProcessState* state) { |
#if defined(TOOLKIT_USES_GTK) |
gfx::GtkInitFromCommandLine(command_line); |
#endif |
main_message_loop_ = message_loop; |
+ service_process_state_.reset(state); |
network_change_notifier_.reset(net::NetworkChangeNotifier::Create()); |
base::Thread::Options options; |
options.message_loop_type = MessageLoop::TYPE_IO; |
@@ -199,8 +201,8 @@ bool ServiceProcess::Initialize(MessageLoopForUI* message_loop, |
} |
VLOG(1) << "Starting Service Process IPC Server"; |
- ServiceProcessState* state = ServiceProcessState::GetInstance(); |
- ipc_server_.reset(new ServiceIPCServer(state->GetServiceProcessChannel())); |
+ ipc_server_.reset(new ServiceIPCServer( |
+ service_process_state_->GetServiceProcessChannel())); |
ipc_server_->Init(); |
// After the IPC server has started we signal that the service process is |
@@ -229,7 +231,7 @@ bool ServiceProcess::Teardown() { |
// might use it have been shut down. |
network_change_notifier_.reset(); |
- ServiceProcessState::GetInstance()->SignalStopped(); |
+ service_process_state_->SignalStopped(); |
return true; |
} |
@@ -311,7 +313,10 @@ void ServiceProcess::OnServiceEnabled() { |
if ((1 == enabled_services_) && |
!CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kNoServiceAutorun)) { |
- ServiceProcessState::GetInstance()->AddToAutoRun(); |
+ if (!service_process_state_->AddToAutoRun()) { |
+ // TODO(scottbyer/sanjeevr/dmaclach): Handle error condition |
+ LOG(ERROR) << "Unable to AddToAutoRun"; |
+ } |
} |
} |
@@ -319,7 +324,10 @@ void ServiceProcess::OnServiceDisabled() { |
DCHECK_NE(enabled_services_, 0); |
enabled_services_--; |
if (0 == enabled_services_) { |
- ServiceProcessState::GetInstance()->RemoveFromAutoRun(); |
+ if (!service_process_state_->RemoveFromAutoRun()) { |
+ // TODO(scottbyer/sanjeevr/dmaclach): Handle error condition |
+ LOG(ERROR) << "Unable to RemoveFromAutoRun"; |
+ } |
// We will wait for some time to respond to IPCs before shutting down. |
ScheduleShutdownCheck(); |
} |