| Index: services/shell/shell.h
|
| diff --git a/services/shell/shell.h b/services/shell/shell.h
|
| index f336025f562ea9efaf3d89aa95a8aecad586e669..5a3cc71e6e7fca75f26a81d328e7ab6ea3a68a0c 100644
|
| --- a/services/shell/shell.h
|
| +++ b/services/shell/shell.h
|
| @@ -81,6 +81,12 @@ class Shell : public ShellClient {
|
|
|
| void InitCatalog(mojom::ShellClientPtr catalog);
|
|
|
| + // Returns the resolver to use for the specified identity.
|
| + // NOTE: ShellResolvers are cached to ensure we service requests in order. If
|
| + // we use a separate ShellResolver for each request ordering is not
|
| + // guaranteed and can lead to random flake.
|
| + mojom::ShellResolver* GetResolver(const Identity& identity);
|
| +
|
| // Destroys all Shell-ends of connections established with Applications.
|
| // Applications connected by this Shell will observe pipe errors and have a
|
| // chance to shutdown.
|
| @@ -131,8 +137,7 @@ class Shell : public ShellClient {
|
| // |client| if provided is a ShellClientPtr which should be used to manage the
|
| // new application instance. This may be null.
|
| // |result| contains the result of the resolve operation.
|
| - void OnGotResolvedName(mojom::ShellResolverPtr resolver,
|
| - std::unique_ptr<ConnectParams> params,
|
| + void OnGotResolvedName(std::unique_ptr<ConnectParams> params,
|
| mojom::ShellClientPtr client,
|
| mojom::ResolveResultPtr result);
|
|
|
| @@ -150,6 +155,8 @@ class Shell : public ShellClient {
|
| // Counter used to assign ids to client factories.
|
| uint32_t shell_client_factory_id_counter_;
|
|
|
| + std::map<Identity, mojom::ShellResolverPtr> identity_to_resolver_;
|
| +
|
| mojo::InterfacePtrSet<mojom::InstanceListener> instance_listeners_;
|
|
|
| base::Callback<void(const Identity&)> instance_quit_callback_;
|
|
|