Index: mojo/shell/application_manager/application_manager.h |
diff --git a/mojo/shell/application_manager/application_manager.h b/mojo/shell/application_manager/application_manager.h |
index 44e581da17a2e7114c167382e3fda5aed5eccaf5..d0d3a40d44c8a1a164c75c1d36b3850ed960ece4 100644 |
--- a/mojo/shell/application_manager/application_manager.h |
+++ b/mojo/shell/application_manager/application_manager.h |
@@ -83,6 +83,10 @@ class ApplicationManager { |
void RegisterContentHandler(const std::string& mime_type, |
const GURL& content_handler_url); |
+ void RegisterExternalApplication(const GURL& application_url, |
+ const std::vector<std::string>& args, |
+ ApplicationPtr application); |
+ |
// Sets the default Loader to be used if not overridden by SetLoaderForURL() |
// or SetLoaderForScheme(). |
void set_default_loader(scoped_ptr<ApplicationLoader> loader) { |
@@ -101,6 +105,11 @@ class ApplicationManager { |
// Sets a Loader to be used for a specific url scheme. |
void SetLoaderForScheme(scoped_ptr<ApplicationLoader> loader, |
const std::string& scheme); |
+ // These strings will be passed to the Initialize() method when an Application |
+ // is instantiated. |
+ // TODO(vtl): Maybe we should store/compare resolved URLs, like |
+ // SetNativeOptionsForURL() below? |
+ void SetArgsForURL(const std::vector<std::string>& args, const GURL& url); |
// These options will be used in running any native application at |url| |
// (which shouldn't contain a query string). (|url| will be mapped and |
// resolved, and any application whose base resolved URL matches it will have |
@@ -126,6 +135,7 @@ class ApplicationManager { |
typedef std::map<GURL, ApplicationLoader*> URLToLoaderMap; |
typedef std::map<Identity, ShellImpl*> IdentityToShellImplMap; |
typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap; |
+ typedef std::map<GURL, std::vector<std::string>> URLToArgsMap; |
typedef std::map<std::string, GURL> MimeTypeToURLMap; |
typedef std::map<GURL, NativeRunnerFactory::Options> URLToNativeOptionsMap; |
@@ -194,6 +204,9 @@ class ApplicationManager { |
// Removes a ContentHandler when it encounters an error. |
void OnContentHandlerError(ContentHandlerConnection* content_handler); |
+ // Returns the arguments for the given url. |
+ std::vector<std::string> GetArgsForURL(const GURL& url); |
+ |
void CleanupRunner(NativeRunner* runner); |
Delegate* const delegate_; |
@@ -206,6 +219,7 @@ class ApplicationManager { |
IdentityToShellImplMap identity_to_shell_impl_; |
URLToContentHandlerMap url_to_content_handler_; |
+ URLToArgsMap url_to_args_; |
// Note: The keys are URLs after mapping and resolving. |
URLToNativeOptionsMap url_to_native_options_; |