Chromium Code Reviews| Index: mojo/shell/application_manager.h |
| diff --git a/mojo/shell/application_manager.h b/mojo/shell/application_manager.h |
| index 76b5482be3dc9d1507f6d54f38bf13ce457b6264..1b746729451d09268c9703760ffa17b0e32d7d03 100644 |
| --- a/mojo/shell/application_manager.h |
| +++ b/mojo/shell/application_manager.h |
| @@ -13,6 +13,7 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "mojo/application/public/interfaces/application.mojom.h" |
| #include "mojo/application/public/interfaces/service_provider.mojom.h" |
| +#include "mojo/application/public/interfaces/shell.mojom.h" |
| #include "mojo/public/cpp/bindings/interface_ptr_info.h" |
| #include "mojo/public/cpp/bindings/interface_request.h" |
| #include "mojo/services/network/public/interfaces/network_service.mojom.h" |
| @@ -75,6 +76,8 @@ class ApplicationManager { |
| DISALLOW_COPY_AND_ASSIGN(TestAPI); |
| }; |
| + static const uint32_t kInvalidContentHandlerID; |
| + |
| explicit ApplicationManager(Delegate* delegate); |
| ~ApplicationManager(); |
| @@ -82,14 +85,21 @@ class ApplicationManager { |
| // |originator| can be NULL (e.g. for the first application or in tests), but |
| // typically is non-NULL and identifies the instance initiating the |
| // connection. |
| - void ConnectToApplication(ApplicationInstance* originator, |
| - URLRequestPtr requested_url, |
| - const std::string& qualifier, |
| - const GURL& requestor_url, |
| - InterfaceRequest<ServiceProvider> services, |
| - ServiceProviderPtr exposed_services, |
| - const CapabilityFilter& capability_filter, |
| - const base::Closure& on_application_end); |
| + // If this request is from a content handler then |
|
Ben Goodger (Google)
2015/08/31 17:41:07
what does this mean?
sky
2015/08/31 19:46:07
I've nuked this. It isn't needed.
|
| + // |requesting_content_handler_id| is the id of the content handler. If this |
| + // request is not from a content handler, |requesting_content_handler_id| is |
| + // kInvalidContentHandlerID. |
| + void ConnectToApplication( |
| + ApplicationInstance* originator, |
| + URLRequestPtr requested_url, |
| + const std::string& qualifier, |
| + const GURL& requestor_url, |
| + uint32_t requesting_content_handler_id, |
| + InterfaceRequest<ServiceProvider> services, |
| + ServiceProviderPtr exposed_services, |
| + const CapabilityFilter& capability_filter, |
| + const base::Closure& on_application_end, |
| + const Shell::ConnectToApplicationCallback& connect_callback); |
| // Must only be used by shell internals and test code as it does not forward |
| // capability filters. |
| @@ -167,13 +177,15 @@ class ApplicationManager { |
| using URLToLoaderMap = std::map<GURL, ApplicationLoader*>; |
| using URLToNativeOptionsMap = std::map<GURL, NativeRunnerFactory::Options>; |
| - bool ConnectToRunningApplication(ApplicationInstance* originator, |
| - const GURL& resolved_url, |
| - const std::string& qualifier, |
| - const GURL& requestor_url, |
| - InterfaceRequest<ServiceProvider>* services, |
| - ServiceProviderPtr* exposed_services, |
| - const CapabilityFilter& filter); |
| + bool ConnectToRunningApplication( |
| + ApplicationInstance* originator, |
| + const GURL& resolved_url, |
| + const std::string& qualifier, |
| + const GURL& requestor_url, |
| + InterfaceRequest<ServiceProvider>* services, |
| + ServiceProviderPtr* exposed_services, |
| + const CapabilityFilter& filter, |
| + const Shell::ConnectToApplicationCallback& connect_callback); |
| bool ConnectToApplicationWithLoader( |
| ApplicationInstance* originator, |
| @@ -181,10 +193,12 @@ class ApplicationManager { |
| const std::string& qualifier, |
| const GURL& resolved_url, |
| const GURL& requestor_url, |
| + uint32_t requesting_content_handler_id, |
| InterfaceRequest<ServiceProvider>* services, |
| ServiceProviderPtr* exposed_services, |
| const CapabilityFilter& filter, |
| const base::Closure& on_application_end, |
| + const Shell::ConnectToApplicationCallback& connect_callback, |
| ApplicationLoader* loader); |
| InterfaceRequest<Application> RegisterInstance( |
| @@ -192,23 +206,29 @@ class ApplicationManager { |
| const GURL& app_url, |
| const std::string& qualifier, |
| const GURL& requestor_url, |
| + const uint32_t requesting_content_handler_id, |
| InterfaceRequest<ServiceProvider> services, |
| ServiceProviderPtr exposed_services, |
| const CapabilityFilter& filter, |
| - const base::Closure& on_application_end); |
| + const base::Closure& on_application_end, |
| + const Shell::ConnectToApplicationCallback& connect_callback, |
| + ApplicationInstance** resulting_instance); |
| // Called once |fetcher| has found app. |requested_url| is the url of the |
| // requested application before any mappings/resolution have been applied. |
| - void HandleFetchCallback(ApplicationInstance* originator, |
| - const GURL& requested_url, |
| - const std::string& qualifier, |
| - const GURL& requestor_url, |
| - InterfaceRequest<ServiceProvider> services, |
| - ServiceProviderPtr exposed_services, |
| - const CapabilityFilter& filter, |
| - const base::Closure& on_application_end, |
| - NativeApplicationCleanup cleanup, |
| - scoped_ptr<Fetcher> fetcher); |
| + void HandleFetchCallback( |
| + ApplicationInstance* originator, |
| + const GURL& requested_url, |
| + const std::string& qualifier, |
| + const GURL& requestor_url, |
| + uint32_t requesting_content_handler_id, |
| + InterfaceRequest<ServiceProvider> services, |
| + ServiceProviderPtr exposed_services, |
| + const CapabilityFilter& filter, |
| + const base::Closure& on_application_end, |
| + const Shell::ConnectToApplicationCallback& connect_callback, |
| + NativeApplicationCleanup cleanup, |
| + scoped_ptr<Fetcher> fetcher); |
| void RunNativeApplication(InterfaceRequest<Application> application_request, |
| bool start_sandboxed, |
| @@ -218,13 +238,16 @@ class ApplicationManager { |
| const base::FilePath& file_path, |
| bool path_exists); |
| - void LoadWithContentHandler(ApplicationInstance* originator, |
| - const GURL& content_handler_url, |
| - const GURL& requestor_url, |
| - const std::string& qualifier, |
| - const CapabilityFilter& filter, |
| - InterfaceRequest<Application> application_request, |
| - URLResponsePtr url_response); |
| + void LoadWithContentHandler( |
| + ApplicationInstance* originator, |
| + const GURL& content_handler_url, |
| + const GURL& requestor_url, |
| + const std::string& qualifier, |
| + const CapabilityFilter& filter, |
| + const Shell::ConnectToApplicationCallback& connect_callback, |
| + ApplicationInstance* app, |
| + InterfaceRequest<Application> application_request, |
| + URLResponsePtr url_response); |
| // Returns the appropriate loader for |url|, or null if there is no loader |
| // configured for the URL. |
| @@ -257,11 +280,15 @@ class ApplicationManager { |
| MimeTypeToURLMap mime_type_to_url_; |
| ScopedVector<NativeRunner> native_runners_; |
| bool disable_cache_; |
| + // Counter used to assign ids to content_handlers. |
| + uint32_t content_handler_id_counter_; |
| base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; |
| DISALLOW_COPY_AND_ASSIGN(ApplicationManager); |
| }; |
| +Shell::ConnectToApplicationCallback EmptyConnectCallback(); |
| + |
| } // namespace shell |
| } // namespace mojo |