// Copyright (c) 2012 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_ #include "base/basictypes.h" namespace installer { // Return status of installer. Values in this enum must not change. Always add // to the end. When removing an unused value, retain the deprecated name and // value in a comment for posterity's sake, but take the liberty of removing the // old doc string. enum InstallStatus { FIRST_INSTALL_SUCCESS = 0, // First install of Chrome succeeded. 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; 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, // MULTI_INSTALLATION_EXISTS = 35, // READY_MODE_OPT_IN_FAILED = 36, // READY_MODE_TEMP_OPT_OUT_FAILED = 37, // READY_MODE_END_TEMP_OPT_OUT_FAILED = 38, // CONFLICTING_CHANNEL_EXISTS = 39, // READY_MODE_REQUIRES_CHROME = 40, // APP_HOST_REQUIRES_MULTI_INSTALL = 41, APPLY_DIFF_PATCH_FAILED = 42, // Failed to apply a diff patch. // INCONSISTENT_UPDATE_POLICY = 43, // APP_HOST_REQUIRES_USER_LEVEL = 44, // APP_HOST_REQUIRES_BINARIES = 45, // INSTALL_OF_GOOGLE_UPDATE_FAILED = 46, INVALID_STATE_FOR_OPTION = 47, // A non-install option was called with an // invalid installer state. WAIT_FOR_EXISTING_FAILED = 48, // OS error waiting for existing setup.exe. PATCH_INVALID_ARGUMENTS = 49, // The arguments of --patch were missing or // they were invalid for any reason. DIFF_PATCH_SOURCE_MISSING = 50, // No previous version archive found for // differential update. UNUSED_BINARIES = 51, // No multi-install products to update. The // binaries will be uninstalled if they are not // in use. UNUSED_BINARIES_UNINSTALLED = 52, // The binaries were uninstalled. UNSUPPORTED_OPTION = 53, // An unsupported legacy option was given. CPU_NOT_SUPPORTED = 54, // Current OS not supported REENABLE_UPDATES_SUCCEEDED = 55, // Autoupdates are now enabled. REENABLE_UPDATES_FAILED = 56, // Autoupdates could not be enabled. UNPACKING_FAILED = 57, // Unpacking the (possibly patched) uncompressed // archive failed. }; // 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. // The order and value of existing enums must not change. Please add new // values to the end (before NUM_STAGES) and update the compile assert below // to assert on the last value added. 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. CONFIGURE_AUTO_LAUNCH, // 16: Configuring Chrome to auto-launch. CREATING_VISUAL_MANIFEST, // 17: Creating VisualElementsManifest.xml DEFERRING_TO_HIGHER_VERSION, // 18: Deferring to an installed higher version. UNINSTALLING_BINARIES, // 19: Uninstalling unused binaries. UNINSTALLING_CHROME_FRAME, // 20: Uninstalling multi-install Chrome Frame. NUM_STAGES // 21: The number of stages. }; // When we start reporting the numerical values from the enum, the order // above MUST be preserved. COMPILE_ASSERT(UNINSTALLING_CHROME_FRAME == 20, never_ever_ever_change_InstallerStage_values_bang); namespace switches { extern const char kAutoLaunchChrome[]; extern const char kChrome[]; extern const char kChromeFrame[]; extern const char kChromeSxS[]; extern const char kConfigureUserSettings[]; extern const char kCriticalUpdateVersion[]; extern const char kDeleteProfile[]; extern const char kDisableLogging[]; extern const char kDoNotLaunchChrome[]; extern const char kDoNotRegisterForUpdateLaunch[]; extern const char kDoNotRemoveSharedItems[]; extern const char kEnableLogging[]; extern const char kForceConfigureUserSettings[]; 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 kOnOsUpgrade[]; extern const char kPreviousVersion[]; extern const char kReenableAutoupdates[]; extern const char kRegisterChromeBrowser[]; extern const char kRegisterChromeBrowserSuffix[]; extern const char kRegisterDevChrome[]; extern const char kRegisterURLProtocol[]; extern const char kRenameChromeExe[]; extern const char kRemoveChromeRegistration[]; extern const char kRunAsAdmin[]; extern const char kSelfDestruct[]; extern const char kSystemLevel[]; extern const char kTriggerActiveSetup[]; extern const char kUninstall[]; extern const char kUpdateSetupExe[]; extern const char kUncompressedArchive[]; extern const char kVerboseLogging[]; extern const char kShowEula[]; extern const char kShowEulaForMetro[]; extern const char kInactiveUserToast[]; extern const char kSystemLevelToast[]; extern const char kExperimentGroup[]; extern const char kToastResultsKey[]; extern const char kPatch[]; extern const char kInputFile[]; extern const char kPatchFile[]; extern const char kOutputFile[]; } // namespace switches namespace env_vars { extern const char kGoogleUpdateIsMachineEnvVar[]; } // namespace env_vars extern const wchar_t kActiveSetupExe[]; extern const wchar_t kAppLauncherGuid[]; extern const wchar_t kChromeDll[]; extern const wchar_t kChromeChildDll[]; extern const wchar_t kChromeExe[]; extern const wchar_t kChromeFrameDll[]; extern const wchar_t kChromeFrameHelperDll[]; extern const wchar_t kChromeFrameHelperExe[]; extern const wchar_t kChromeFrameHelperWndClass[]; extern const wchar_t kChromeLauncherExe[]; extern const wchar_t kChromeMetroDll[]; extern const wchar_t kChromeNewExe[]; extern const wchar_t kChromeOldExe[]; extern const wchar_t kCmdOnOsUpgrade[]; extern const wchar_t kCmdQuickEnableCf[]; extern const wchar_t kDelegateExecuteExe[]; extern const wchar_t kEULASentinelFile[]; 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 kLnkExt[]; 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[]; // Product options. extern const wchar_t kOptionMultiInstall[]; // Chrome channel display names. // NOTE: Canary is not strictly a 'channel', but rather a separate product // installed side-by-side. However, GoogleUpdateSettings::GetChromeChannel // will return "canary" for that product. extern const wchar_t kChromeChannelUnknown[]; extern const wchar_t kChromeChannelCanary[]; extern const wchar_t kChromeChannelDev[]; extern const wchar_t kChromeChannelBeta[]; extern const wchar_t kChromeChannelStable[]; extern const wchar_t kChromeChannelStableExplicit[]; extern const size_t kMaxAppModelIdLength; // The range of error values for the installer, Courgette, and bsdiff is // overlapping. These offset values disambiguate between different sets // of errors by shifting the values up with the specified offset. const int kCourgetteErrorOffset = 300; const int kBsdiffErrorOffset = 600; // Arguments to --patch switch extern const char kCourgette[]; extern const char kBsdiff[]; } // namespace installer #endif // CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_