| 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 |