| Index: shell/application_manager/application_manager.h
|
| diff --git a/shell/application_manager/application_manager.h b/shell/application_manager/application_manager.h
|
| index ab6b2f079792b2e06ba09badbe3bd11a5dfaa18a..e8858e1c2ef19d2f18d66482ec89ae73f7fad8cc 100644
|
| --- a/shell/application_manager/application_manager.h
|
| +++ b/shell/application_manager/application_manager.h
|
| @@ -79,6 +79,10 @@ class MOJO_APPLICATION_MANAGER_EXPORT ApplicationManager {
|
| void set_default_loader(scoped_ptr<ApplicationLoader> loader) {
|
| default_loader_ = loader.Pass();
|
| }
|
| + void set_native_application_loader(
|
| + scoped_ptr<NativeApplicationLoader> loader) {
|
| + native_application_loader_ = loader.Pass();
|
| + }
|
| // Sets a Loader to be used for a specific url.
|
| void SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, const GURL& url);
|
| // Sets a Loader to be used for a specific url scheme.
|
| @@ -97,11 +101,6 @@ class MOJO_APPLICATION_MANAGER_EXPORT ApplicationManager {
|
| void OnShellImplError(ShellImpl* shell_impl);
|
|
|
| private:
|
| - enum IncludeDefaultLoader {
|
| - INCLUDE_DEFAULT_LOADER,
|
| - DONT_INCLUDE_DEFAULT_LOADER,
|
| - };
|
| -
|
| class ContentHandlerConnection;
|
|
|
| typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap;
|
| @@ -110,12 +109,25 @@ class MOJO_APPLICATION_MANAGER_EXPORT ApplicationManager {
|
| typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap;
|
| typedef std::map<GURL, std::vector<std::string>> URLToArgsMap;
|
|
|
| - void ConnectToApplicationImpl(const GURL& requested_url,
|
| - const GURL& resolved_url,
|
| - const GURL& requestor_url,
|
| - InterfaceRequest<ServiceProvider> services,
|
| - ServiceProviderPtr exposed_services,
|
| - ApplicationLoader* loader);
|
| + bool ConnectToRunningApplication(const GURL& application_url,
|
| + const GURL& requestor_url,
|
| + InterfaceRequest<ServiceProvider>* services,
|
| + ServiceProviderPtr* exposed_services);
|
| +
|
| + bool ConnectToApplicationWithLoader(
|
| + const GURL& requested_url,
|
| + const GURL& resolved_url,
|
| + const GURL& requestor_url,
|
| + InterfaceRequest<ServiceProvider>* services,
|
| + ServiceProviderPtr* exposed_services,
|
| + ApplicationLoader* loader);
|
| +
|
| + InterfaceRequest<Application> RegisterShell(
|
| + const GURL& requested_url,
|
| + const GURL& resolved_url,
|
| + const GURL& requestor_url,
|
| + InterfaceRequest<ServiceProvider> services,
|
| + ServiceProviderPtr exposed_services);
|
|
|
| ShellImpl* GetShellImpl(const GURL& url);
|
|
|
| @@ -130,9 +142,8 @@ class MOJO_APPLICATION_MANAGER_EXPORT ApplicationManager {
|
| URLResponsePtr url_response);
|
|
|
| // Return the appropriate loader for |url|. This can return NULL if there is
|
| - // no default loader configured.
|
| - ApplicationLoader* GetLoaderForURL(const GURL& url,
|
| - IncludeDefaultLoader fallback);
|
| + // no loader configured for the URL.
|
| + ApplicationLoader* GetLoaderForURL(const GURL& url);
|
|
|
| // Removes a ContentHandler when it encounters an error.
|
| void OnContentHandlerError(ContentHandlerConnection* content_handler);
|
| @@ -142,9 +153,11 @@ class MOJO_APPLICATION_MANAGER_EXPORT ApplicationManager {
|
|
|
| Delegate* delegate_;
|
| // Loader management.
|
| + // Loaders are chosen in the order they are listed here.
|
| URLToLoaderMap url_to_loader_;
|
| SchemeToLoaderMap scheme_to_loader_;
|
| scoped_ptr<ApplicationLoader> default_loader_;
|
| + scoped_ptr<NativeApplicationLoader> native_application_loader_;
|
|
|
| URLToShellImplMap url_to_shell_impl_;
|
| URLToContentHandlerMap url_to_content_handler_;
|
|
|