Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Side by Side Diff: mojo/shell/application_manager.h

Issue 1738663002: Hook embedded shell up to MojoShellConnection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/mojo_shell.gyp ('k') | mojo/shell/application_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_SHELL_APPLICATION_MANAGER_H_ 5 #ifndef MOJO_SHELL_APPLICATION_MANAGER_H_
6 #define MOJO_SHELL_APPLICATION_MANAGER_H_ 6 #define MOJO_SHELL_APPLICATION_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // Provide a callback to be notified whenever an instance is destroyed. 73 // Provide a callback to be notified whenever an instance is destroyed.
74 // Typically the creator of the ApplicationManager will use this to determine 74 // Typically the creator of the ApplicationManager will use this to determine
75 // when some set of instances it created are destroyed, so it can shut down. 75 // when some set of instances it created are destroyed, so it can shut down.
76 void SetInstanceQuitCallback(base::Callback<void(const Identity&)> callback); 76 void SetInstanceQuitCallback(base::Callback<void(const Identity&)> callback);
77 77
78 // Completes a connection between a source and target application as defined 78 // Completes a connection between a source and target application as defined
79 // by |params|, exchanging InterfaceProviders between them. If no existing 79 // by |params|, exchanging InterfaceProviders between them. If no existing
80 // instance of the target application is running, one will be loaded. 80 // instance of the target application is running, one will be loaded.
81 void Connect(scoped_ptr<ConnectParams> params); 81 void Connect(scoped_ptr<ConnectParams> params);
82 82
83 // Creates a new ApplicationInstance identified as |url|. This is intended for
84 // use by the ApplicationManager's embedder to register itself with the shell.
85 // |url| is never resolves, there mmust not have an existing instance for the
Ben Goodger (Google) 2016/02/25 04:53:37 please re-read this sentence and fix all the typos
Ken Rockot(use gerrit already) 2016/02/25 05:08:24 yikes - fixed
86 // given URL. This must only be called once.
87 mojom::ShellClientRequest InitInstanceForEmbedder(const GURL& url);
88
83 // Sets the default Loader to be used if not overridden by SetLoaderForURL(). 89 // Sets the default Loader to be used if not overridden by SetLoaderForURL().
84 void set_default_loader(scoped_ptr<ApplicationLoader> loader) { 90 void set_default_loader(scoped_ptr<ApplicationLoader> loader) {
85 default_loader_ = std::move(loader); 91 default_loader_ = std::move(loader);
86 } 92 }
87 93
88 // Sets a Loader to be used for a specific url. 94 // Sets a Loader to be used for a specific url.
89 void SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, const GURL& url); 95 void SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, const GURL& url);
90 96
91 // Destroys all Shell-ends of connections established with Applications. 97 // Destroys all Shell-ends of connections established with Applications.
92 // Applications connected by this ApplicationManager will observe pipe errors 98 // Applications connected by this ApplicationManager will observe pipe errors
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 // Loaders are chosen in the order they are listed here. 180 // Loaders are chosen in the order they are listed here.
175 URLToLoaderMap url_to_loader_; 181 URLToLoaderMap url_to_loader_;
176 scoped_ptr<ApplicationLoader> default_loader_; 182 scoped_ptr<ApplicationLoader> default_loader_;
177 183
178 IdentityToInstanceMap identity_to_instance_; 184 IdentityToInstanceMap identity_to_instance_;
179 185
180 IdentityToShellClientFactoryMap shell_client_factories_; 186 IdentityToShellClientFactoryMap shell_client_factories_;
181 // Counter used to assign ids to content handlers. 187 // Counter used to assign ids to content handlers.
182 uint32_t shell_client_factory_id_counter_; 188 uint32_t shell_client_factory_id_counter_;
183 189
190 // The ApplicationInstance created by the shell embedder, if any.
191 ApplicationInstance* embedder_instance_ = nullptr;
192
184 WeakInterfacePtrSet<mojom::ApplicationManagerListener> listeners_; 193 WeakInterfacePtrSet<mojom::ApplicationManagerListener> listeners_;
185 194
186 base::Callback<void(const Identity&)> instance_quit_callback_; 195 base::Callback<void(const Identity&)> instance_quit_callback_;
187 base::TaskRunner* file_task_runner_; 196 base::TaskRunner* file_task_runner_;
188 scoped_ptr<NativeRunnerFactory> native_runner_factory_; 197 scoped_ptr<NativeRunnerFactory> native_runner_factory_;
189 std::vector<scoped_ptr<NativeRunner>> native_runners_; 198 std::vector<scoped_ptr<NativeRunner>> native_runners_;
190 scoped_ptr<ShellConnection> shell_connection_; 199 scoped_ptr<ShellConnection> shell_connection_;
191 WeakBindingSet<mojom::ApplicationManager> bindings_; 200 WeakBindingSet<mojom::ApplicationManager> bindings_;
192 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; 201 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_;
193 202
194 DISALLOW_COPY_AND_ASSIGN(ApplicationManager); 203 DISALLOW_COPY_AND_ASSIGN(ApplicationManager);
195 }; 204 };
196 205
197 mojom::Shell::ConnectCallback EmptyConnectCallback(); 206 mojom::Shell::ConnectCallback EmptyConnectCallback();
198 207
199 } // namespace shell 208 } // namespace shell
200 } // namespace mojo 209 } // namespace mojo
201 210
202 #endif // MOJO_SHELL_APPLICATION_MANAGER_H_ 211 #endif // MOJO_SHELL_APPLICATION_MANAGER_H_
OLDNEW
« no previous file with comments | « mojo/mojo_shell.gyp ('k') | mojo/shell/application_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698