Index: services/service_manager/public/interfaces/service.mojom |
diff --git a/services/service_manager/public/interfaces/service.mojom b/services/service_manager/public/interfaces/service.mojom |
index e5f8d681928bc6b713d660a1647405f0872eca47..207da8cd96e2534cc12a84dc579459160005593f 100644 |
--- a/services/service_manager/public/interfaces/service.mojom |
+++ b/services/service_manager/public/interfaces/service.mojom |
@@ -67,4 +67,32 @@ interface Service { |
// seek to bind interface implementations exported by the target. |
// |
OnConnect(ServiceInfo source_info, InterfaceProvider&? interfaces) => (); |
+ |
+ // Called when a request to bind an interface is received from another |
+ // ("source") service. This is the result of that service calling |
+ // BindInterface() on a Connector. By the time this method is called, the |
+ // service manager has already completed a policy check to determine that this |
+ // interface can be bound. |
+ // |
+ // The Service must respond to acknowledge receipt of the request. |
+ // |
+ // Parameters: |
+ // |
+ // source_info |
+ // Contains the source identity and interface provider specs. |
+ // |
+ // interface_name |
+ // The name of the interface to be bound. |
+ // |
+ // interface_pipe |
+ // The message pipe to bind the interface implementation to. |
+ // |
+ // TODO(beng): It occurs to me that |source_info| leaks all metadata about |
+ // the source's capability requirements to the target. This seems |
+ // undesirable. The metadata supplied here should be germane to |
+ // fulfilling this request and no more. |
+ // TODO(beng): This should replace OnConnect(). |
+ OnBindInterface(ServiceInfo source_info, |
+ string interface_name, |
+ handle<message_pipe> interface_pipe) => (); |
}; |