| Index: services/service_manager/service_manager.cc
|
| diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc
|
| index 5f1e81a0538a39df8a0dd1bd22049408573d366c..8a31966424c429a37b634c9e6482876b77831715 100644
|
| --- a/services/service_manager/service_manager.cc
|
| +++ b/services/service_manager/service_manager.cc
|
| @@ -122,11 +122,6 @@ class ServiceManager::Instance
|
|
|
| ~Instance() override {
|
| Stop();
|
| -
|
| - // Release |runner_| so that if we are called back to OnRunnerCompleted()
|
| - // we know we're in the destructor.
|
| - std::unique_ptr<NativeRunner> runner = std::move(runner_);
|
| - runner.reset();
|
| }
|
|
|
| bool ConnectToService(std::unique_ptr<ConnectParams>* connect_params) {
|
| @@ -182,14 +177,13 @@ class ServiceManager::Instance
|
| bool StartWithFilePath(const base::FilePath& path) {
|
| DCHECK(!service_);
|
| DCHECK(!path.empty());
|
| - runner_ = service_manager_->native_runner_factory_->Create(path);
|
| + runner_ = service_manager_->service_process_launcher_factory_->Create(path);
|
| if (!runner_)
|
| return false;
|
| bool start_sandboxed = false;
|
| mojom::ServicePtr service = runner_->Start(
|
| identity_, start_sandboxed,
|
| - base::Bind(&Instance::PIDAvailable, weak_factory_.GetWeakPtr()),
|
| - base::Bind(&Instance::OnRunnerCompleted, weak_factory_.GetWeakPtr()));
|
| + base::Bind(&Instance::PIDAvailable, weak_factory_.GetWeakPtr()));
|
| StartWithService(std::move(service));
|
| return true;
|
| }
|
| @@ -430,14 +424,6 @@ class ServiceManager::Instance
|
| service_manager_->NotifyServiceStarted(identity_, pid_);
|
| }
|
|
|
| - // Callback when NativeRunner completes.
|
| - void OnRunnerCompleted() {
|
| - if (!runner_.get())
|
| - return; // We're in the destructor.
|
| -
|
| - service_manager_->OnInstanceError(this);
|
| - }
|
| -
|
| // mojom::ServiceControl:
|
| void RequestQuit() override {
|
| // If quit is requested, oblige when there are no pending OnConnects.
|
| @@ -455,7 +441,7 @@ class ServiceManager::Instance
|
| const InterfaceProviderSpecMap interface_provider_specs_;
|
| const InterfaceProviderSpec empty_spec_;
|
| const bool allow_any_application_;
|
| - std::unique_ptr<NativeRunner> runner_;
|
| + std::unique_ptr<ServiceProcessLauncher> runner_;
|
| mojom::ServicePtr service_;
|
| mojo::Binding<mojom::PIDReceiver> pid_receiver_binding_;
|
| mojo::BindingSet<mojom::Connector> connectors_;
|
| @@ -521,9 +507,11 @@ bool ServiceManager::TestAPI::HasRunningInstanceForName(
|
| // ServiceManager, public:
|
|
|
| ServiceManager::ServiceManager(
|
| - std::unique_ptr<NativeRunnerFactory> native_runner_factory,
|
| + std::unique_ptr<ServiceProcessLauncherFactory>
|
| + service_process_launcher_factory,
|
| mojom::ServicePtr catalog)
|
| - : native_runner_factory_(std::move(native_runner_factory)),
|
| + : service_process_launcher_factory_(
|
| + std::move(service_process_launcher_factory)),
|
| weak_ptr_factory_(this) {
|
| mojom::ServicePtr service;
|
| mojom::ServiceRequest request = mojo::GetProxy(&service);
|
|
|