Index: apps/app_load_service.h |
diff --git a/apps/app_load_service.h b/apps/app_load_service.h |
index c7e75c6e1aaf767dfdd5f3df6db3e9754deb14b7..5c16804c2692985c349a6c9f751ffdabaec328a4 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_; |