summaryrefslogtreecommitdiffstats
path: root/mojo/shell/public/interfaces/shell_resolver.mojom
blob: 090bf838b1fd9286872ada841fe06f59d57d6357 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module mojo.shell.mojom;

import "mojo/shell/public/interfaces/capabilities.mojom";

// 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);
};