diff options
author | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-11 12:20:17 +0000 |
---|---|---|
committer | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-11 12:20:17 +0000 |
commit | 7b9faeb78d74cab7464edbd9fe4abf7f6fc9d976 (patch) | |
tree | 48af523ca6128173b876296b1852ccfc264be3fb /apps/app_load_service.h | |
parent | 9f0ebb6594e76046aa661acdda3aff45dd729c60 (diff) | |
download | chromium_src-7b9faeb78d74cab7464edbd9fe4abf7f6fc9d976.zip chromium_src-7b9faeb78d74cab7464edbd9fe4abf7f6fc9d976.tar.gz chromium_src-7b9faeb78d74cab7464edbd9fe4abf7f6fc9d976.tar.bz2 |
Pass command line arguments through with --load-and-launch-app.
This lets uninstalled unpacked apps be started via this flag and passed
files to process.
BUG=246510
Review URL: https://chromiumcodereview.appspot.com/16357005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205503 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps/app_load_service.h')
-rw-r--r-- | apps/app_load_service.h | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/apps/app_load_service.h b/apps/app_load_service.h index c7e75c6..5c16804 100644 --- a/apps/app_load_service.h +++ b/apps/app_load_service.h @@ -8,6 +8,8 @@ #include <map> #include <string> +#include "base/command_line.h" +#include "base/files/file_path.h" #include "components/browser_context_keyed_service/browser_context_keyed_service.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -21,6 +23,20 @@ namespace apps { class AppLoadService : public BrowserContextKeyedService, public content::NotificationObserver { public: + enum PostReloadActionType { + LAUNCH, + RESTART, + LAUNCH_WITH_COMMAND_LINE, + }; + + struct PostReloadAction { + PostReloadAction(); + + PostReloadActionType action_type; + CommandLine command_line; + base::FilePath current_dir; + }; + explicit AppLoadService(Profile* profile); virtual ~AppLoadService(); @@ -28,9 +44,13 @@ class AppLoadService : public BrowserContextKeyedService, // event. void RestartApplication(const std::string& extension_id); - // Schedule a launch to happen for the extension with id |extension_id| - // when it loads next. This does not cause the extension to be reloaded. - void ScheduleLaunchOnLoad(const std::string& extension_id); + // Loads (or reloads) the app with |extension_path|, then launches it. Any + // command line parameters from |command_line| will be passed along via + // launch parameters. Returns true if loading the extension has begun + // successfully. + bool LoadAndLaunch(const base::FilePath& extension_path, + const CommandLine& command_line, + const base::FilePath& current_dir); static AppLoadService* Get(Profile* profile); @@ -42,7 +62,7 @@ class AppLoadService : public BrowserContextKeyedService, // Map of extension id to reload action. Absence from the map implies // no action. - std::map<std::string, int> reload_actions_; + std::map<std::string, PostReloadAction> post_reload_actions_; content::NotificationRegistrar registrar_; Profile* profile_; |