1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef APPS_LAUNCHER_H_
6#define APPS_LAUNCHER_H_
7
8#include <string>
9#include <vector>
10
11class GURL;
12class Profile;
13
14namespace base {
15class CommandLine;
16class FilePath;
17}
18
19namespace extensions {
20class Extension;
21}
22
23namespace apps {
24
25// Launches the platform app |extension|. Creates appropriate launch data for
26// the |command_line| fields present. |extension| and |profile| must not be
27// NULL. An empty |command_line| means there is no launch data. If non-empty,
28// |current_directory| is used to expand any relative paths on the command line.
29void LaunchPlatformAppWithCommandLine(Profile* profile,
30                                      const extensions::Extension* extension,
31                                      const base::CommandLine& command_line,
32                                      const base::FilePath& current_directory);
33
34// Launches the platform app |extension| by issuing an onLaunched event
35// with the contents of |file_path| available through the launch data.
36void LaunchPlatformAppWithPath(Profile* profile,
37                               const extensions::Extension* extension,
38                               const base::FilePath& file_path);
39
40// Launches the platform app |extension| with no launch data.
41void LaunchPlatformApp(Profile* profile,
42                       const extensions::Extension* extension);
43
44// Launches the platform app |extension| with |handler_id| and the contents of
45// |file_paths| available through the launch data. |handler_id| corresponds to
46// the id of the file_handlers item in the manifest that resulted in a match
47// that triggered this launch.
48void LaunchPlatformAppWithFileHandler(
49    Profile* profile,
50    const extensions::Extension* extension,
51    const std::string& handler_id,
52    const std::vector<base::FilePath>& file_paths);
53
54// Launches the platform app |extension| with |handler_id|, |url| and
55// |referrer_url| available through the launch data. |handler_id| corresponds to
56// the id of the file_handlers item in the manifest that resulted in a match
57// that triggered this launch.
58void LaunchPlatformAppWithUrl(Profile* profile,
59                              const extensions::Extension* extension,
60                              const std::string& handler_id,
61                              const GURL& url,
62                              const GURL& referrer_url);
63
64void RestartPlatformApp(Profile* profile,
65                        const extensions::Extension* extension);
66
67}  // namespace apps
68
69#endif  // APPS_LAUNCHER_H_
70