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 |