• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 CHROME_INSTALLER_LAUNCHER_SUPPORT_CHROME_LAUNCHER_SUPPORT_H_
6 #define CHROME_INSTALLER_LAUNCHER_SUPPORT_CHROME_LAUNCHER_SUPPORT_H_
7 
8 namespace base {
9 class FilePath;
10 }
11 
12 namespace chrome_launcher_support {
13 
14 enum InstallationLevel {
15   USER_LEVEL_INSTALLATION,
16   SYSTEM_LEVEL_INSTALLATION,
17 };
18 
19 enum InstallationState {
20   NOT_INSTALLED,
21   INSTALLED_AT_USER_LEVEL,
22   INSTALLED_AT_SYSTEM_LEVEL,
23 };
24 
25 // Returns the path to an existing setup.exe at the specified level, if it can
26 // be found via Omaha client state.
27 base::FilePath GetSetupExeForInstallationLevel(InstallationLevel level);
28 
29 // Returns the path to an installed chrome.exe at the specified level, if it can
30 // be found via Omaha client state. Prefers the installer from a multi-install,
31 // but may also return that of a single-install of Chrome if no multi-install
32 // exists.
33 base::FilePath GetChromePathForInstallationLevel(InstallationLevel level);
34 
35 // Returns the path to an installed app_host.exe at the specified level, if
36 // it can be found via Omaha client state.
37 base::FilePath GetAppHostPathForInstallationLevel(InstallationLevel level);
38 
39 // Returns the path to an installed SxS chrome.exe at the specified level, if
40 // it can be found via Omaha client state.
41 base::FilePath GetChromeSxSPathForInstallationLevel(InstallationLevel level);
42 
43 // Returns the path to an installed chrome.exe, or an empty path. Prefers a
44 // system-level installation to a user-level installation. Uses Omaha client
45 // state to identify a Chrome installation location.
46 // The file path returned (if any) is guaranteed to exist.
47 base::FilePath GetAnyChromePath();
48 
49 // Returns the path to an installed app_host.exe, or an empty path. Prefers a
50 // system-level installation to a user-level installation. Uses Omaha client
51 // state to identify a App Host installation location.
52 // The file path returned (if any) is guaranteed to exist.
53 base::FilePath GetAnyAppHostPath();
54 
55 // Returns the path to an installed SxS chrome.exe, or an empty path. Prefers a
56 // user-level installation to a system-level installation. Uses Omaha client
57 // state to identify a Chrome Canary installation location.
58 // The file path returned (if any) is guaranteed to exist.
59 base::FilePath GetAnyChromeSxSPath();
60 
61 // Uninstalls the legacy app launcher by launching setup.exe with the uninstall
62 // arguments from the App Launcher ClientState registry key. The uninstall will
63 // run asynchronously.
64 void UninstallLegacyAppLauncher(InstallationLevel level);
65 
66 // Returns true if App Host is installed (system-level or user-level),
67 // or in the same directory as the current executable.
68 bool IsAppHostPresent();
69 
70 // Returns the app launcher installation state. If the launcher is installed
71 // at both system level and user level, system level is returned.
72 InstallationState GetAppLauncherInstallationState();
73 
74 // Returns true if App Launcher is installed (system-level or user-level).
75 bool IsAppLauncherPresent();
76 
77 // Returns true if the Chrome browser is installed (system-level or user-level).
78 // If this is running in an official build, it will check if a non-canary build
79 // if installed. If it is not an official build, it will always return true.
80 bool IsChromeBrowserPresent();
81 
82 }  // namespace chrome_launcher_support
83 
84 #endif  // CHROME_INSTALLER_LAUNCHER_SUPPORT_CHROME_LAUNCHER_SUPPORT_H_
85