summaryrefslogtreecommitdiffstats
path: root/apps/app_load_service.h
diff options
context:
space:
mode:
authorbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-11 12:20:17 +0000
committerbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-11 12:20:17 +0000
commit7b9faeb78d74cab7464edbd9fe4abf7f6fc9d976 (patch)
tree48af523ca6128173b876296b1852ccfc264be3fb /apps/app_load_service.h
parent9f0ebb6594e76046aa661acdda3aff45dd729c60 (diff)
downloadchromium_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.h28
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_;