| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef APPS_LAUNCHER_H_ |
| #define APPS_LAUNCHER_H_ |
| |
| #include <memory> |
| #include <string> |
| #include <vector> |
| |
| #include "extensions/common/api/app_runtime.h" |
| #include "extensions/common/constants.h" |
| |
| class GURL; |
| |
| namespace base { |
| class CommandLine; |
| class FilePath; |
| } |
| |
| namespace content { |
| class BrowserContext; |
| } |
| |
| namespace extensions { |
| class Extension; |
| namespace api { |
| namespace app_runtime { |
| struct ActionData; |
| } |
| } |
| } |
| |
| namespace apps { |
| |
| // Launches the platform app |app|. Creates appropriate launch data for the |
| // |command_line| fields present. |app| and |context| must not be NULL. An empty |
| // |command_line| means there is no launch data. If non-empty, |
| // |current_directory| is used to expand any relative paths on the command line. |
| // |source| is one of the enumerated values which trace how the app is launched. |
| void LaunchPlatformAppWithCommandLine(content::BrowserContext* context, |
| const extensions::Extension* app, |
| const base::CommandLine& command_line, |
| const base::FilePath& current_directory, |
| extensions::AppLaunchSource source); |
| |
| // As above but includes |launch_id|, an id that can be passed to |
| // an app when launched in order to support multiple shelf items per app. |
| void LaunchPlatformAppWithCommandLineAndLaunchId( |
| content::BrowserContext* context, |
| const extensions::Extension* app, |
| const std::string& launch_id, |
| const base::CommandLine& command_line, |
| const base::FilePath& current_directory, |
| extensions::AppLaunchSource source); |
| |
| // Launches the platform app |app| by issuing an onLaunched event with the |
| // contents of |file_path| available through the launch data. |
| void LaunchPlatformAppWithPath(content::BrowserContext* context, |
| const extensions::Extension* app, |
| const base::FilePath& file_path); |
| |
| // Launches the platform app |app| with the specific |action_data|. |file_path| |
| // is an optional argument and if present contains the file that the app should |
| // open w.r.t. the given action. |
| void LaunchPlatformAppWithAction( |
| content::BrowserContext* context, |
| const extensions::Extension* app, |
| std::unique_ptr<extensions::api::app_runtime::ActionData> action_data, |
| const base::FilePath& file_path); |
| |
| // Launches the platform app |app|. |source| tells us how the app is launched. |
| void LaunchPlatformApp(content::BrowserContext* context, |
| const extensions::Extension* app, |
| extensions::AppLaunchSource source); |
| |
| // Launches the platform app |app| with |handler_id| and the contents of |
| // |file_paths| available through the launch data. |handler_id| corresponds to |
| // the id of the file_handlers item in the manifest that resulted in a match |
| // that triggered this launch. |
| void LaunchPlatformAppWithFileHandler( |
| content::BrowserContext* context, |
| const extensions::Extension* app, |
| const std::string& handler_id, |
| const std::vector<base::FilePath>& file_paths); |
| |
| // Launches the platform app |app| with |handler_id|, |url| and |referrer_url| |
| // available through the launch data. |handler_id| corresponds to the id of the |
| // file_handlers item in the manifest that resulted in a match that triggered |
| // this launch. |
| void LaunchPlatformAppWithUrl(content::BrowserContext* context, |
| const extensions::Extension* app, |
| const std::string& handler_id, |
| const GURL& url, |
| const GURL& referrer_url); |
| |
| void RestartPlatformApp(content::BrowserContext* context, |
| const extensions::Extension* app); |
| |
| } // namespace apps |
| |
| #endif // APPS_LAUNCHER_H_ |