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

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

Issue 1126393006: core_services: Run different services in different processes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit tests by never having an empty qualifier. Created 5 years, 7 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/runner/switches.cc ('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 SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ 5 #ifndef SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
6 #define SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ 6 #define SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 ScopedMessagePipeHandle ConnectToServiceByName( 85 ScopedMessagePipeHandle ConnectToServiceByName(
86 const GURL& application_url, 86 const GURL& application_url,
87 const std::string& interface_name); 87 const std::string& interface_name);
88 88
89 void RegisterContentHandler(const std::string& mime_type, 89 void RegisterContentHandler(const std::string& mime_type,
90 const GURL& content_handler_url); 90 const GURL& content_handler_url);
91 91
92 // Registers a package alias. When attempting to load |alias|, it will 92 // Registers a package alias. When attempting to load |alias|, it will
93 // instead redirect to |content_handler_package|, which is a content handler 93 // instead redirect to |content_handler_package|, which is a content handler
94 // which will be passed the |alias| as the URLResponse::url. 94 // which will be passed the |alias| as the URLResponse::url. Different values
95 // of |alias| with the same |qualifier| that are in the same
96 // |content_handler_package| will run in the same process in multi-process
97 // mode.
95 void RegisterApplicationPackageAlias(const GURL& alias, 98 void RegisterApplicationPackageAlias(const GURL& alias,
96 const GURL& content_handler_package); 99 const GURL& content_handler_package,
100 const std::string& qualifier);
97 101
98 // Sets the default Loader to be used if not overridden by SetLoaderForURL() 102 // Sets the default Loader to be used if not overridden by SetLoaderForURL()
99 // or SetLoaderForScheme(). 103 // or SetLoaderForScheme().
100 void set_default_loader(scoped_ptr<ApplicationLoader> loader) { 104 void set_default_loader(scoped_ptr<ApplicationLoader> loader) {
101 default_loader_ = loader.Pass(); 105 default_loader_ = loader.Pass();
102 } 106 }
103 void set_native_runner_factory( 107 void set_native_runner_factory(
104 scoped_ptr<NativeRunnerFactory> runner_factory) { 108 scoped_ptr<NativeRunnerFactory> runner_factory) {
105 native_runner_factory_ = runner_factory.Pass(); 109 native_runner_factory_ = runner_factory.Pass();
106 } 110 }
(...skipping 20 matching lines...) Expand all
127 // Applications connected by this ApplicationManager will observe pipe errors 131 // Applications connected by this ApplicationManager will observe pipe errors
128 // and have a chance to shutdown. 132 // and have a chance to shutdown.
129 void TerminateShellConnections(); 133 void TerminateShellConnections();
130 134
131 // Removes a ShellImpl when it encounters an error. 135 // Removes a ShellImpl when it encounters an error.
132 void OnShellImplError(ShellImpl* shell_impl); 136 void OnShellImplError(ShellImpl* shell_impl);
133 137
134 private: 138 private:
135 class ContentHandlerConnection; 139 class ContentHandlerConnection;
136 140
137 using ApplicationPackagedAlias = std::map<GURL, GURL>; 141 using ApplicationPackagedAlias = std::map<GURL, std::pair<GURL, std::string>>;
138 using IdentityToShellImplMap = std::map<Identity, ShellImpl*>; 142 using IdentityToShellImplMap = std::map<Identity, ShellImpl*>;
139 using MimeTypeToURLMap = std::map<std::string, GURL>; 143 using MimeTypeToURLMap = std::map<std::string, GURL>;
140 using SchemeToLoaderMap = std::map<std::string, ApplicationLoader*>; 144 using SchemeToLoaderMap = std::map<std::string, ApplicationLoader*>;
141 using URLToContentHandlerMap = std::map<GURL, ContentHandlerConnection*>; 145 using URLToContentHandlerMap =
146 std::map<std::pair<GURL, std::string>, ContentHandlerConnection*>;
142 using URLToLoaderMap = std::map<GURL, ApplicationLoader*>; 147 using URLToLoaderMap = std::map<GURL, ApplicationLoader*>;
143 using URLToNativeOptionsMap = std::map<GURL, NativeRunnerFactory::Options>; 148 using URLToNativeOptionsMap = std::map<GURL, NativeRunnerFactory::Options>;
144 149
145 void ConnectToApplicationWithParameters( 150 void ConnectToApplicationWithParameters(
146 const GURL& application_url, 151 const GURL& application_url,
152 const std::string& qualifier,
147 const GURL& requestor_url, 153 const GURL& requestor_url,
148 InterfaceRequest<ServiceProvider> services, 154 InterfaceRequest<ServiceProvider> services,
149 ServiceProviderPtr exposed_services, 155 ServiceProviderPtr exposed_services,
150 const base::Closure& on_application_end, 156 const base::Closure& on_application_end,
151 const std::vector<std::string>& pre_redirect_parameters); 157 const std::vector<std::string>& pre_redirect_parameters);
152 158
153 bool ConnectToRunningApplication(const GURL& resolved_url, 159 bool ConnectToRunningApplication(const GURL& resolved_url,
160 const std::string& qualifier,
154 const GURL& requestor_url, 161 const GURL& requestor_url,
155 InterfaceRequest<ServiceProvider>* services, 162 InterfaceRequest<ServiceProvider>* services,
156 ServiceProviderPtr* exposed_services); 163 ServiceProviderPtr* exposed_services);
157 164
158 bool ConnectToApplicationWithLoader( 165 bool ConnectToApplicationWithLoader(
159 const GURL& requested_url, 166 const GURL& requested_url,
167 const std::string& qualifier,
160 const GURL& resolved_url, 168 const GURL& resolved_url,
161 const GURL& requestor_url, 169 const GURL& requestor_url,
162 InterfaceRequest<ServiceProvider>* services, 170 InterfaceRequest<ServiceProvider>* services,
163 ServiceProviderPtr* exposed_services, 171 ServiceProviderPtr* exposed_services,
164 const base::Closure& on_application_end, 172 const base::Closure& on_application_end,
165 const std::vector<std::string>& parameters, 173 const std::vector<std::string>& parameters,
166 ApplicationLoader* loader); 174 ApplicationLoader* loader);
167 175
168 InterfaceRequest<Application> RegisterShell( 176 InterfaceRequest<Application> RegisterShell(
169 const GURL& app_url, 177 const GURL& app_url,
178 const std::string& qualifier,
170 const GURL& requestor_url, 179 const GURL& requestor_url,
171 InterfaceRequest<ServiceProvider> services, 180 InterfaceRequest<ServiceProvider> services,
172 ServiceProviderPtr exposed_services, 181 ServiceProviderPtr exposed_services,
173 const base::Closure& on_application_end, 182 const base::Closure& on_application_end,
174 const std::vector<std::string>& parameters); 183 const std::vector<std::string>& parameters);
175 184
176 ShellImpl* GetShellImpl(const GURL& url); 185 ShellImpl* GetShellImpl(const GURL& url, const std::string& qualifier);
177 186
178 void ConnectToClient(ShellImpl* shell_impl, 187 void ConnectToClient(ShellImpl* shell_impl,
179 const GURL& resolved_url, 188 const GURL& resolved_url,
180 const GURL& requestor_url, 189 const GURL& requestor_url,
181 InterfaceRequest<ServiceProvider> services, 190 InterfaceRequest<ServiceProvider> services,
182 ServiceProviderPtr exposed_services); 191 ServiceProviderPtr exposed_services);
183 192
184 // Called once |fetcher| has found app. |requested_url| is the url of the 193 // Called once |fetcher| has found app. |requested_url| is the url of the
185 // requested application before any mappings/resolution have been applied. 194 // requested application before any mappings/resolution have been applied.
186 void HandleFetchCallback(const GURL& requested_url, 195 void HandleFetchCallback(const GURL& requested_url,
196 const std::string& qualifier,
187 const GURL& requestor_url, 197 const GURL& requestor_url,
188 InterfaceRequest<ServiceProvider> services, 198 InterfaceRequest<ServiceProvider> services,
189 ServiceProviderPtr exposed_services, 199 ServiceProviderPtr exposed_services,
190 const base::Closure& on_application_end, 200 const base::Closure& on_application_end,
191 const std::vector<std::string>& parameters, 201 const std::vector<std::string>& parameters,
192 NativeApplicationCleanup cleanup, 202 NativeApplicationCleanup cleanup,
193 scoped_ptr<Fetcher> fetcher); 203 scoped_ptr<Fetcher> fetcher);
194 204
195 void RunNativeApplication(InterfaceRequest<Application> application_request, 205 void RunNativeApplication(InterfaceRequest<Application> application_request,
196 const NativeRunnerFactory::Options& options, 206 const NativeRunnerFactory::Options& options,
197 NativeApplicationCleanup cleanup, 207 NativeApplicationCleanup cleanup,
198 scoped_ptr<Fetcher> fetcher, 208 scoped_ptr<Fetcher> fetcher,
199 const base::FilePath& file_path, 209 const base::FilePath& file_path,
200 bool path_exists); 210 bool path_exists);
201 211
202 void LoadWithContentHandler(const GURL& content_handler_url, 212 void LoadWithContentHandler(const GURL& content_handler_url,
213 const std::string& qualifier,
203 InterfaceRequest<Application> application_request, 214 InterfaceRequest<Application> application_request,
204 URLResponsePtr url_response); 215 URLResponsePtr url_response);
205 216
206 // Returns the appropriate loader for |url|, or null if there is no loader 217 // Returns the appropriate loader for |url|, or null if there is no loader
207 // configured for the URL. 218 // configured for the URL.
208 ApplicationLoader* GetLoaderForURL(const GURL& url); 219 ApplicationLoader* GetLoaderForURL(const GURL& url);
209 220
210 // Removes a ContentHandler when it encounters an error. 221 // Removes a ContentHandler when it encounters an error.
211 void OnContentHandlerError(ContentHandlerConnection* content_handler); 222 void OnContentHandlerError(ContentHandlerConnection* content_handler);
212 223
(...skipping 20 matching lines...) Expand all
233 bool disable_cache_; 244 bool disable_cache_;
234 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; 245 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_;
235 246
236 DISALLOW_COPY_AND_ASSIGN(ApplicationManager); 247 DISALLOW_COPY_AND_ASSIGN(ApplicationManager);
237 }; 248 };
238 249
239 } // namespace shell 250 } // namespace shell
240 } // namespace mojo 251 } // namespace mojo
241 252
242 #endif // SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ 253 #endif // SHELL_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
OLDNEW
« no previous file with comments | « mojo/runner/switches.cc ('k') | mojo/shell/application_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698