summaryrefslogtreecommitdiffstats
path: root/mojo/shell/public/interfaces/shell_resolver.mojom
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/shell/public/interfaces/shell_resolver.mojom')
-rw-r--r--mojo/shell/public/interfaces/shell_resolver.mojom53
1 files changed, 26 insertions, 27 deletions
diff --git a/mojo/shell/public/interfaces/shell_resolver.mojom b/mojo/shell/public/interfaces/shell_resolver.mojom
index 090bf83..0c4e841 100644
--- a/mojo/shell/public/interfaces/shell_resolver.mojom
+++ b/mojo/shell/public/interfaces/shell_resolver.mojom
@@ -6,34 +6,33 @@ module mojo.shell.mojom;
import "mojo/shell/public/interfaces/capabilities.mojom";
+// The result of a Resolve operation via ShellResolver.
+struct ResolveResult {
+ // The mojo: name that was requested to be resolved.
+ string name;
+
+ // The mojo: name of the physical package supplying the requested name. This
+ // could be the same name that was passed, or the name of a package that
+ // contains it.
+ string resolved_name;
+
+ // An additional piece of metadata that identifies what instance |name| should
+ // be run in. It's possible that |name| may provide several services that
+ // should be run as different instances.
+ string qualifier;
+
+ // The set of capabilities provided and required by |name|.
+ CapabilitySpec capabilities;
+
+ // A file URL to the package specified by |name|.
+ // TODO(beng): What if resolved_mojo_name needs to be re-resolved?
+ string package_url;
+};
+
// Implemented exclusively for the Mojo Shell's use in resolving mojo: names
// and reading static manifest information.
interface ShellResolver {
- // Resolves |mojo_name| to the following metadata:
- //
- // resolved_mojo_name
- // another mojo: name of an application implementing mojo::ShellClientFactory
- // that can handle connections to |mojo_name|.
- //
- // qualifier
- // an additional piece of metadata that identifies what instance
- // |resolved_mojo_name| should be run in. It's possible that
- // |resolved_mojo_name| may provide several services that should be run as
- // different instances.
- //
- // mojo_file_url
- // a file URL to the application specified in |resolved_mojo_name|
- // TODO(beng): what if |resolved_mojo_name| needs to be re-resolved??
- //
- // filter
- // the base CapabilityFilter within which an instance of |resolved_mojo_name|
- // must be run for |mojo_name|.
- //
- // If |mojo_name| can't be resolved (i.e. not a mojo: or exe: scheme), then
- // the callback will be run with null |mojo_file_url|, and |filter|.
- ResolveMojoName(string mojo_name) =>
- (string resolved_mojo_name,
- string qualifier,
- CapabilitySpec? capability_spec,
- string? mojo_file_url);
+ // Resolves |mojo_name| and returns a ResolveResult containing metadata from
+ // the catalog that the Shell uses to run an instance of it.
+ ResolveMojoName(string mojo_name) => (ResolveResult result);
};