| Index: services/service_manager/tests/lifecycle/package.cc
|
| diff --git a/services/service_manager/tests/lifecycle/package.cc b/services/service_manager/tests/lifecycle/package.cc
|
| index 5dc4edce7436988b1a00ddac61511590376a37c2..c3d75d892d84de18cffcbe7acc2a088e9a73d992 100644
|
| --- a/services/service_manager/tests/lifecycle/package.cc
|
| +++ b/services/service_manager/tests/lifecycle/package.cc
|
| @@ -10,8 +10,8 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| #include "services/service_manager/public/c/main.h"
|
| +#include "services/service_manager/public/cpp/binder_registry.h"
|
| #include "services/service_manager/public/cpp/interface_factory.h"
|
| -#include "services/service_manager/public/cpp/interface_registry.h"
|
| #include "services/service_manager/public/cpp/service_context.h"
|
| #include "services/service_manager/public/cpp/service_runner.h"
|
| #include "services/service_manager/public/interfaces/service_factory.mojom.h"
|
| @@ -34,17 +34,19 @@ class PackagedApp
|
| destruct_callback_(destruct_callback) {
|
| bindings_.set_connection_error_handler(base::Bind(&PackagedApp::BindingLost,
|
| base::Unretained(this)));
|
| + registry_.AddInterface<service_manager::test::mojom::LifecycleControl>(
|
| + this);
|
| }
|
|
|
| ~PackagedApp() override {}
|
|
|
| private:
|
| // service_manager::Service:
|
| - bool OnConnect(const service_manager::ServiceInfo& remote_info,
|
| - service_manager::InterfaceRegistry* registry) override {
|
| - registry->AddInterface<service_manager::test::mojom::LifecycleControl>(
|
| - this);
|
| - return true;
|
| + void OnBindInterface(const service_manager::ServiceInfo& source_info,
|
| + const std::string& interface_name,
|
| + mojo::ScopedMessagePipeHandle interface_pipe) override {
|
| + registry_.BindInterface(source_info.identity, interface_name,
|
| + std::move(interface_pipe));
|
| }
|
|
|
| // service_manager::InterfaceFactory<LifecycleControl>
|
| @@ -87,6 +89,7 @@ class PackagedApp
|
| }
|
| }
|
|
|
| + service_manager::BinderRegistry registry_;
|
| mojo::BindingSet<service_manager::test::mojom::LifecycleControl> bindings_;
|
|
|
| // Run when this object's connection to the service manager is closed.
|
| @@ -102,15 +105,23 @@ class Package : public service_manager::ForwardingService,
|
| service_manager::mojom::ServiceFactory>,
|
| public service_manager::mojom::ServiceFactory {
|
| public:
|
| - Package() : ForwardingService(&app_client_) {}
|
| + Package() : ForwardingService(&app_client_) {
|
| + registry_.AddInterface<service_manager::mojom::ServiceFactory>(this);
|
| + }
|
| ~Package() override {}
|
|
|
| private:
|
| // ForwardingService:
|
| - bool OnConnect(const service_manager::ServiceInfo& remote_info,
|
| - service_manager::InterfaceRegistry* registry) override {
|
| - registry->AddInterface<service_manager::mojom::ServiceFactory>(this);
|
| - return ForwardingService::OnConnect(remote_info, registry);
|
| + void OnBindInterface(const service_manager::ServiceInfo& source_info,
|
| + const std::string& interface_name,
|
| + mojo::ScopedMessagePipeHandle interface_pipe) override {
|
| + if (registry_.CanBindInterface(interface_name)) {
|
| + registry_.BindInterface(source_info.identity, interface_name,
|
| + std::move(interface_pipe));
|
| + } else {
|
| + ForwardingService::OnBindInterface(source_info, interface_name,
|
| + std::move(interface_pipe));
|
| + }
|
| }
|
|
|
| // service_manager::InterfaceFactory<service_manager::mojom::ServiceFactory>:
|
| @@ -156,6 +167,7 @@ class Package : public service_manager::ForwardingService,
|
|
|
| service_manager::test::AppClient app_client_;
|
| int service_manager_connection_refcount_ = 0;
|
| + service_manager::BinderRegistry registry_;
|
| mojo::BindingSet<service_manager::mojom::ServiceFactory> bindings_;
|
|
|
| using ServiceContextMap =
|
|
|