Index: mojo/application/public/cpp/lib/service_registry.h |
diff --git a/mojo/application/public/cpp/lib/service_registry.h b/mojo/application/public/cpp/lib/service_registry.h |
index dcca5a04c70bba2dc520deb274fa4babfd8b4eb3..c34ecede1b8f2654efcf5049d419f9585a908b90 100644 |
--- a/mojo/application/public/cpp/lib/service_registry.h |
+++ b/mojo/application/public/cpp/lib/service_registry.h |
@@ -5,6 +5,7 @@ |
#ifndef MOJO_APPLICATION_PUBLIC_CPP_LIB_SERVICE_REGISTRY_H_ |
#define MOJO_APPLICATION_PUBLIC_CPP_LIB_SERVICE_REGISTRY_H_ |
+#include <set> |
#include <string> |
#include "mojo/application/public/cpp/application_connection.h" |
@@ -24,20 +25,26 @@ namespace internal { |
class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
public: |
ServiceRegistry(); |
+ // |allowed_interfaces| are the set of interfaces that the shell has allowed |
+ // an application to expose to another application. If this set contains only |
+ // the string value "*" all interfaces may be exposed. |
ServiceRegistry(ApplicationImpl* application_impl, |
const std::string& connection_url, |
const std::string& remote_url, |
ServiceProviderPtr remote_services, |
- InterfaceRequest<ServiceProvider> local_services); |
+ InterfaceRequest<ServiceProvider> local_services, |
+ const std::set<std::string>& allowed_interfaces); |
// ApplicationConnection overrides. |
void SetServiceConnector(ServiceConnector* service_connector) override; |
- void SetServiceConnectorForName(ServiceConnector* service_connector, |
+ bool SetServiceConnectorForName(ServiceConnector* service_connector, |
const std::string& interface_name) override; |
const std::string& GetConnectionURL() override; |
const std::string& GetRemoteApplicationURL() override; |
ServiceProvider* GetServiceProvider() override; |
ServiceProvider* GetLocalServiceProvider() override; |
+ void SetRemoteServiceProviderConnectionErrorHandler( |
+ const Closure& handler) override; |
void RemoveServiceConnectorForName(const std::string& interface_name); |
@@ -57,6 +64,8 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
Binding<ServiceProvider> local_binding_; |
ServiceProviderPtr remote_service_provider_; |
ServiceConnectorRegistry service_connector_registry_; |
+ const std::set<std::string> allowed_interfaces_; |
+ const bool allow_all_interfaces_; |
MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceRegistry); |
}; |