Index: services/service_manager/public/interfaces/connector.mojom |
diff --git a/services/service_manager/public/interfaces/connector.mojom b/services/service_manager/public/interfaces/connector.mojom |
index 63168e4a15ac5f6ae04d0991307068eda41d03de..d403bd5a6f66b23234c23ce89a1cea081c8d77aa 100644 |
--- a/services/service_manager/public/interfaces/connector.mojom |
+++ b/services/service_manager/public/interfaces/connector.mojom |
@@ -164,4 +164,20 @@ interface Connector { |
// Clones this Connector so it can be passed to another thread. |
Clone(Connector& request); |
+ |
+ // Filter interface requests received from |source| according to the policy |
+ // specified in this service's manifest in an InterfaceProviderSpec named |
+ // |spec|. |
+ // |
+ // The flow is basically - remote service wishes to (generically) request |
+ // interfaces from this service, and so sends us an InterfaceProvider request |
+ // (|source_request|) which it would like us to bind. We forward this request |
+ // to the Service Manager, passing our actual InterfaceProvider implementation |
+ // in |target|. The Service Manager will only forward interface requests that |
+ // were permitted by intersecting |source|'s manifest requirements with the |
+ // contents of |spec|. |
+ FilterInterfaces(string spec, |
+ Identity source, |
+ InterfaceProvider& source_request, |
+ InterfaceProvider target); |
}; |