blob: 591170110685641ab55af6aee79feaaf6815cdf1 [file] [log] [blame]
// Copyright (c) 2011 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.
//
// Defines all install related constants that need to be used by Chrome as
// well as Chrome Installer.
#ifndef CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_
#define CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_
#pragma once
#include "base/basictypes.h"
namespace installer {
// Return status of installer
enum InstallStatus {
FIRST_INSTALL_SUCCESS, // 0. Successfully installed Chrome for the first time
INSTALL_REPAIRED, // 1. Same version reinstalled for repair
NEW_VERSION_UPDATED, // 2. Chrome successfully updated to new version
EXISTING_VERSION_LAUNCHED, // 3. No work done, just launched existing chrome
HIGHER_VERSION_EXISTS, // 4. Higher version of Chrome already exists
USER_LEVEL_INSTALL_EXISTS, // 5. User level install already exists
SYSTEM_LEVEL_INSTALL_EXISTS, // 6. Machine level install already exists
INSTALL_FAILED, // 7. Install/update failed
SETUP_PATCH_FAILED, // 8. Failed to patch setup.exe
OS_NOT_SUPPORTED, // 9. Current OS not supported
OS_ERROR, // 10. OS API call failed
TEMP_DIR_FAILED, // 11. Unable to get Temp directory
UNCOMPRESSION_FAILED, // 12. Failed to uncompress Chrome archive
INVALID_ARCHIVE, // 13. Something wrong with the installer archive
INSUFFICIENT_RIGHTS, // 14. User trying system level install is not Admin
CHROME_NOT_INSTALLED, // 15. Chrome not installed (returned in case of
// uninstall)
CHROME_RUNNING, // 16. Chrome currently running (when trying to
// uninstall)
UNINSTALL_CONFIRMED, // 17. User has confirmed Chrome uninstall
UNINSTALL_DELETE_PROFILE, // 18. User okayed uninstall and profile deletion.
UNINSTALL_SUCCESSFUL, // 19. Chrome successfully uninstalled
UNINSTALL_FAILED, // 20. Chrome uninstallation failed
UNINSTALL_CANCELLED, // 21. User cancelled Chrome uninstallation
UNKNOWN_STATUS, // 22. Unknown status (this should never happen)
RENAME_SUCCESSFUL, // 23. Rename of new_chrome.exe to chrome.exe worked
RENAME_FAILED, // 24. Rename of new_chrome.exe failed
EULA_REJECTED, // 25. EULA dialog was not accepted by user.
EULA_ACCEPTED, // 26. EULA dialog was accepted by user.
EULA_ACCEPTED_OPT_IN, // 27. EULA accepted with the crash option selected.
INSTALL_DIR_IN_USE, // 28. Installation directory is in use by another
// process
UNINSTALL_REQUIRES_REBOOT, // 29. Uninstallation required a reboot.
IN_USE_UPDATED, // 30. Chrome successfully updated but old version
// running
SAME_VERSION_REPAIR_FAILED, // 31. Chrome repair failed as Chrome was running
REENTRY_SYS_UPDATE, // 32. Setup has been re-launched as the interactive
// user
SXS_OPTION_NOT_SUPPORTED, // 33. The chrome-sxs option provided does not work
// with other command line options.
NON_MULTI_INSTALLATION_EXISTS, // 34. We tried to do a multi-install but
// failed because there's an existing
// installation of the same product on the
// system, but in 'single' mode.
MULTI_INSTALLATION_EXISTS, // 35. We tried to do a 'single' install but
// failed because there's an existing
// multi-install installation of the same product
// on the system.
READY_MODE_OPT_IN_FAILED, // 36. Failed to opt-into Chrome Frame.
READY_MODE_TEMP_OPT_OUT_FAILED, // 37. Failed to temporarily opt-out of
// Chrome Frame.
READY_MODE_END_TEMP_OPT_OUT_FAILED, // 38. Failed to end temporary opt-out
// of Chrome Frame.
CONFLICTING_CHANNEL_EXISTS, // 39. A multi-install product on a different
// update channel exists.
READY_MODE_REQUIRES_CHROME, // 40. Chrome Frame in ready-mode requires Chrome
REQUIRES_MULTI_INSTALL, // 41. --multi-install was missing from the
// command line.
APPLY_DIFF_PATCH_FAILED, // 42. Failed to apply a diff patch.
INCONSISTENT_UPDATE_POLICY, // 43. Inconsistent update policy GP settings.
};
// If the following compile assert fires it means that the InstallStatus
// enumeration changed which will break the contract between the old
// chrome installed and the new setup.exe that is trying to upgrade.
COMPILE_ASSERT(installer::INCONSISTENT_UPDATE_POLICY == 43,
dont_change_enum);
// The type of an update archive.
enum ArchiveType {
UNKNOWN_ARCHIVE_TYPE, // Unknown or uninitialized.
FULL_ARCHIVE_TYPE, // Full chrome.7z archive.
INCREMENTAL_ARCHIVE_TYPE // Incremental or differential archive.
};
// Stages of an installation reported through Google Update on failure.
enum InstallerStage {
NO_STAGE, // 0: No stage to report.
PRECONDITIONS, // 1: Evaluating pre-install conditions.
UNCOMPRESSING, // 2: Uncompressing chrome.packed.7z.
ENSEMBLE_PATCHING, // 3: Patching chrome.7z using courgette.
BINARY_PATCHING, // 4: Patching chrome.7z using bspatch.
UNPACKING, // 5: Unpacking chrome.7z.
BUILDING, // 6: Building the install work item list.
EXECUTING, // 7: Executing the install work item list.
ROLLINGBACK, // 8: Rolling-back the install work item list.
REFRESHING_POLICY, // 9: Refreshing the elevation policy.
UPDATING_CHANNELS, // 10: Updating channel information.
COPYING_PREFERENCES_FILE, // 11: Copying preferences file.
CREATING_SHORTCUTS, // 12: Creating shortcuts.
REGISTERING_CHROME, // 13: Performing Chrome registration.
REMOVING_OLD_VERSIONS, // 14: Deleting old version directories.
FINISHING, // 15: Finishing the install.
NUM_STAGES // 16: The number of stages.
};
// When we start reporting the numerical values from the enum, the order
// above MUST be preserved.
COMPILE_ASSERT(FINISHING == 15,
never_ever_ever_change_InstallerStage_values_bang);
namespace switches {
extern const char kCeee[];
extern const char kChrome[];
extern const char kChromeFrame[];
extern const char kChromeFrameQuickEnable[];
extern const char kChromeFrameReadyMode[];
extern const char kChromeFrameReadyModeOptIn[];
extern const char kChromeFrameReadyModeTempOptOut[];
extern const char kChromeFrameReadyModeEndTempOptOut[];
extern const char kChromeSxS[];
extern const char kCreateAllShortcuts[];
extern const char kCriticalUpdateVersion[];
extern const char kDeleteProfile[];
extern const char kDisableLogging[];
extern const char kDoNotCreateShortcuts[];
extern const char kDoNotLaunchChrome[];
extern const char kDoNotRegisterForUpdateLaunch[];
extern const char kDoNotRemoveSharedItems[];
extern const char kEnableLogging[];
extern const char kForceUninstall[];
extern const char kInstallArchive[];
extern const char kInstallerData[];
extern const char kLogFile[];
extern const char kMakeChromeDefault[];
extern const char kMsi[];
extern const char kMultiInstall[];
extern const char kNewSetupExe[];
extern const char kRegisterChromeBrowser[];
extern const char kRegisterChromeBrowserSuffix[];
extern const char kRegisterURLProtocol[];
extern const char kRenameChromeExe[];
extern const char kRemoveChromeRegistration[];
extern const char kRunAsAdmin[];
extern const char kSystemLevel[];
extern const char kUninstall[];
extern const char kUpdateSetupExe[];
extern const char kVerboseLogging[];
extern const char kShowEula[];
extern const char kAltDesktopShortcut[];
extern const char kInactiveUserToast[];
extern const char kSystemLevelToast[];
extern const char kExperimentGroup[];
extern const char kToastResultsKey[];
} // namespace switches
extern const wchar_t kChromeDll[];
extern const wchar_t kChromeExe[];
extern const wchar_t kChromeFrameDll[];
extern const wchar_t kChromeFrameHelperExe[];
extern const wchar_t kChromeFrameHelperWndClass[];
extern const wchar_t kChromeFrameReadyModeField[];
extern const wchar_t kChromeLauncherExe[];
extern const wchar_t kChromeOldExe[];
extern const wchar_t kChromeNewExe[];
extern const wchar_t kCmdQuickEnableCf[];
extern const wchar_t kGoogleChromeInstallSubDir1[];
extern const wchar_t kGoogleChromeInstallSubDir2[];
extern const wchar_t kInstallBinaryDir[];
extern const wchar_t kInstallerDir[];
extern const wchar_t kInstallTempDir[];
extern const wchar_t kInstallUserDataDir[];
extern const wchar_t kNaClExe[];
extern const wchar_t kSetupExe[];
extern const wchar_t kSxSSuffix[];
extern const wchar_t kUninstallArgumentsField[];
extern const wchar_t kUninstallDisplayNameField[];
extern const wchar_t kUninstallInstallationDate[];
extern const char kUninstallMetricsName[];
extern const wchar_t kUninstallStringField[];
// Google Update installer result API
extern const wchar_t kInstallerError[];
extern const wchar_t kInstallerExtraCode1[];
extern const wchar_t kInstallerResult[];
extern const wchar_t kInstallerResultUIString[];
extern const wchar_t kInstallerSuccessLaunchCmdLine[];
// Google Update named environment variable that implies kSystemLevel.
extern const char kGoogleUpdateIsMachineEnvVar[];
// Product options.
extern const wchar_t kOptionMultiInstall[];
extern const wchar_t kOptionReadyMode[];
} // namespace installer
#endif // CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_