| Index: services/service_manager/service_manager.cc
|
| diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc
|
| index 5f815c350fcf430436026deaf1e26365af529826..7f5788ba76b4c0812254da741bc4344ed1c9f285 100644
|
| --- a/services/service_manager/service_manager.cc
|
| +++ b/services/service_manager/service_manager.cc
|
| @@ -118,11 +118,6 @@ class ServiceManager::Instance
|
| // Notify the ServiceManager that this Instance is really going away.
|
| service_manager_->OnInstanceStopped(identity_);
|
| }
|
| -
|
| - // 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();
|
| }
|
|
|
| Instance* parent() const { return parent_; }
|
| @@ -193,14 +188,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;
|
| }
|
| @@ -441,14 +435,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.
|
| @@ -466,7 +452,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_;
|
| @@ -534,9 +520,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);
|
|
|