| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 module mojo.shell.mojom; |
| 6 |
| 7 // Mojo Capabilities ----------------------------------------------------------- |
| 8 // |
| 9 // Mojo applications expose interfaces and capability classes to one another. |
| 10 // |
| 11 // An interface is just a Mojo interface, defined in a mojom file like this one. |
| 12 // In a CapabilitySpec, an interface is represented by its fully qualified name, |
| 13 // which is serialized based on the interface name and module: |
| 14 // module::path::InterfaceName. |
| 15 // |
| 16 // A class is an alias to something, either a set of interface names granted |
| 17 // with that class, or some behavior specific to the application that provides |
| 18 // it. |
| 19 |
| 20 // Describes the set of classes and interfaces required by an application. |
| 21 // Note that there may be overlap between the interfaces implied by the |
| 22 // resolution of classes and those specified in |interfaces|. The set of |
| 23 // interfaces granted to the requestor is the union of these sets. |
| 24 struct CapabilityRequest { |
| 25 // An array of class names required. |
| 26 array<string> classes; |
| 27 // An array of interface names required. |
| 28 array<string> interfaces; |
| 29 }; |
| 30 |
| 31 // Describes the capabilities offered and requested by an application. |
| 32 // This struct is populated from the application manifest. |
| 33 struct CapabilitySpec { |
| 34 // The classes offered by this application, and for each class an array of |
| 35 // interfaces. If no interfaces are granted with a class, the array will be |
| 36 // empty. |
| 37 // A map of class name -> array of interfaces. The array can be empty, |
| 38 // non-empty, or ["*"], which means allow access to all interfaces. |
| 39 map<string, array<string>> provided; |
| 40 |
| 41 // The applications this application needs to speak to, and the classes and |
| 42 // interfaces it requests. |
| 43 // A map of application name -> spec. "*" is also supported as the key, which |
| 44 // supplies a CapabilityRequest for all applications in addition to specific |
| 45 // ones specified. |
| 46 map<string, CapabilityRequest> required; |
| 47 }; |
| OLD | NEW |