| Index: services/service_manager/tests/connect/connect_test_package.cc
|
| diff --git a/services/service_manager/tests/connect/connect_test_package.cc b/services/service_manager/tests/connect/connect_test_package.cc
|
| index e62b65fe017a0d259f8b1e8239da9ceb5fc3e1d9..9d4a3d22775a7b9fea6cdd6ed3a720e99878c200 100644
|
| --- a/services/service_manager/tests/connect/connect_test_package.cc
|
| +++ b/services/service_manager/tests/connect/connect_test_package.cc
|
| @@ -54,8 +54,33 @@
|
| }
|
|
|
| private:
|
| + class ForwardingServiceImpl : public Service {
|
| + public:
|
| + explicit ForwardingServiceImpl(Service* service)
|
| + : service_(service) {}
|
| + ~ForwardingServiceImpl() override {}
|
| +
|
| + // Service:
|
| + void OnStart(ServiceContext* context) override {
|
| + service_->OnStart(context);
|
| + }
|
| +
|
| + bool OnConnect(const ServiceInfo& remote_info,
|
| + InterfaceRegistry* registry) override {
|
| + return service_->OnConnect(remote_info, registry);
|
| + }
|
| +
|
| + bool OnStop() override { return service_->OnStop(); }
|
| +
|
| + private:
|
| + Service* const service_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ForwardingServiceImpl);
|
| + };
|
| +
|
| // service_manager::Service:
|
| - void OnStart() override {
|
| + void OnStart(ServiceContext* context) override {
|
| + context_ = context;
|
| bindings_.set_connection_error_handler(
|
| base::Bind(&ProvidedService::OnConnectionError,
|
| base::Unretained(this)));
|
| @@ -70,10 +95,10 @@
|
| test::mojom::ConnectionStatePtr state(test::mojom::ConnectionState::New());
|
| state->connection_remote_name = remote_info.identity.name();
|
| state->connection_remote_userid = remote_info.identity.user_id();
|
| - state->initialize_local_name = context()->identity().name();
|
| - state->initialize_userid = context()->identity().user_id();
|
| -
|
| - context()->connector()->ConnectToInterface(remote_info.identity, &caller_);
|
| + state->initialize_local_name = context_->identity().name();
|
| + state->initialize_userid = context_->identity().user_id();
|
| +
|
| + context_->connector()->ConnectToInterface(remote_info.identity, &caller_);
|
| caller_->ConnectionAccepted(std::move(state));
|
|
|
| return true;
|
| @@ -103,7 +128,7 @@
|
| }
|
|
|
| void GetInstance(const GetInstanceCallback& callback) override {
|
| - callback.Run(context()->identity().instance());
|
| + callback.Run(context_->identity().instance());
|
| }
|
|
|
| // test::mojom::BlockedInterface:
|
| @@ -117,7 +142,7 @@
|
| const ConnectToClassAppAsDifferentUserCallback& callback) override {
|
| Connector::ConnectParams params(target);
|
| std::unique_ptr<Connection> connection =
|
| - context()->connector()->Connect(¶ms);
|
| + context_->connector()->Connect(¶ms);
|
| {
|
| base::RunLoop loop;
|
| connection->AddConnectionCompletedClosure(loop.QuitClosure());
|
| @@ -131,7 +156,7 @@
|
|
|
| // base::SimpleThread:
|
| void Run() override {
|
| - ServiceRunner(new ForwardingService(this)).Run(
|
| + ServiceRunner(new ForwardingServiceImpl(this)).Run(
|
| request_.PassMessagePipe().release().value(), false);
|
| caller_.reset();
|
| bindings_.CloseAllBindings();
|
| @@ -144,6 +169,7 @@
|
| base::MessageLoop::current()->QuitWhenIdle();
|
| }
|
|
|
| + ServiceContext* context_ = nullptr;
|
| const std::string title_;
|
| mojom::ServiceRequest request_;
|
| test::mojom::ExposedInterfacePtr caller_;
|
| @@ -166,7 +192,9 @@
|
|
|
| private:
|
| // service_manager::Service:
|
| - void OnStart() override {
|
| + void OnStart(ServiceContext* context) override {
|
| + context_ = context;
|
| +
|
| base::Closure error_handler =
|
| base::Bind(&ConnectTestService::OnConnectionError,
|
| base::Unretained(this));
|
| @@ -216,14 +244,15 @@
|
| }
|
|
|
| void GetInstance(const GetInstanceCallback& callback) override {
|
| - callback.Run(context()->identity().instance());
|
| + callback.Run(context_->identity().instance());
|
| }
|
|
|
| void OnConnectionError() {
|
| if (bindings_.empty() && service_factory_bindings_.empty())
|
| - context()->RequestQuit();
|
| - }
|
| -
|
| + context_->RequestQuit();
|
| + }
|
| +
|
| + ServiceContext* context_ = nullptr;
|
| std::vector<std::unique_ptr<Service>> delegates_;
|
| mojo::BindingSet<mojom::ServiceFactory> service_factory_bindings_;
|
| mojo::BindingSet<test::mojom::ConnectTestService> bindings_;
|
|
|