Index: services/service_manager/public/cpp/interface_registry.h |
diff --git a/services/service_manager/public/cpp/interface_registry.h b/services/service_manager/public/cpp/interface_registry.h |
index e1813ead8cd09e6a43f06cfa85e4310d38f3ea95..fa7b898226a528c2445a6706bd2088c7d4cc0199 100644 |
--- a/services/service_manager/public/cpp/interface_registry.h |
+++ b/services/service_manager/public/cpp/interface_registry.h |
@@ -5,6 +5,7 @@ |
#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_REGISTRY_H_ |
#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_REGISTRY_H_ |
+#include <list> |
#include <memory> |
#include <queue> |
#include <set> |
@@ -150,7 +151,7 @@ class InterfaceRegistry : public mojom::InterfaceProvider { |
void GetInterfaceNames(std::set<std::string>* interface_names); |
// Sets a closure to be run when the InterfaceProvider pipe is closed. |
- void SetConnectionLostClosure(const base::Closure& connection_lost_closure); |
+ void AddConnectionLostClosure(const base::Closure& connection_lost_closure); |
private: |
using InterfaceNameToBinderMap = |
@@ -173,6 +174,8 @@ class InterfaceRegistry : public mojom::InterfaceProvider { |
// contents of |exposed_interfaces_| and |expose_all_interfaces_|. |
void RebuildExposedInterfaces(); |
+ void OnConnectionError(); |
+ |
mojom::InterfaceProviderRequest pending_request_; |
mojo::Binding<mojom::InterfaceProvider> binding_; |
@@ -209,6 +212,8 @@ class InterfaceRegistry : public mojom::InterfaceProvider { |
std::queue<std::pair<std::string, mojo::ScopedMessagePipeHandle>> |
pending_interface_requests_; |
+ std::list<base::Closure> connection_lost_closures_; |
+ |
base::WeakPtrFactory<InterfaceRegistry> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(InterfaceRegistry); |