Home | History | Annotate | Download | only in launcher_support
      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