| // 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 <stddef.h> |
| |
| #include "base/files/file_path.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, |
| 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, |
| // UNUSED_BINARIES_UNINSTALLED = 52, |
| 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. |
| IN_USE_DOWNGRADE = 58, // Successfully downgrade chrome but current |
| // version is still running. |
| OLD_VERSION_DOWNGRADE = 59, // Successfully downgrade chrome to an older |
| // version. |
| SETUP_SINGLETON_ACQUISITION_FAILED = 60, // The setup process could not |
| // acquire the exclusive right to |
| // modify the Chrome installation. |
| SETUP_SINGLETON_RELEASED = 61, // The task did not complete because |
| // another process asked this |
| // process to release the exclusive |
| // right to modify the Chrome |
| // installation. |
| DELETE_OLD_VERSIONS_SUCCESS = 62, // All files that belong to old |
| // versions of Chrome were |
| // successfully deleted. |
| DELETE_OLD_VERSIONS_TOO_MANY_ATTEMPTS = 63, // A --delete-old-versions |
| // process exited after trying to |
| // delete all files that belong |
| // to old versions of Chrome too |
| // many times without success. |
| STORE_DMTOKEN_FAILED = 64, // Failed to write the specified DMToken to the |
| // registry. |
| STORE_DMTOKEN_SUCCESS = 65, // Writing the specified DMToken to the registry |
| // succeeded. |
| MAX_INSTALL_STATUS = 66, // When adding a new result, bump this and update |
| // the InstallStatus enum in histograms.xml. |
| }; |
| |
| // 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 from which a progress indication is derived. |
| // Generally listed in the order in which they are reached. The exceptions to |
| // this are the fork-and-join for diff vs. full installers (where there are |
| // additional (costly) stages for the former) and rollback in case of error. |
| enum InstallerStage { |
| NO_STAGE, // No stage to report. |
| UPDATING_SETUP, // Patching setup.exe with differential update. |
| PRECONDITIONS, // Evaluating pre-install conditions. |
| UNCOMPRESSING, // Uncompressing chrome.packed.7z. |
| PATCHING, // Patching chrome.7z with differential update. |
| UNPACKING, // Unpacking chrome.7z. |
| CREATING_VISUAL_MANIFEST, // Creating VisualElementsManifest.xml. |
| BUILDING, // Building the install work item list. |
| EXECUTING, // Executing the install work item list. |
| UPDATING_CHANNELS, // Updating channel information. |
| COPYING_PREFERENCES_FILE, // Copying preferences file. |
| CREATING_SHORTCUTS, // Creating shortcuts. |
| REGISTERING_CHROME, // Performing Chrome registration. |
| REMOVING_OLD_VERSIONS, // Deleting old version directories. |
| ROLLINGBACK, // Rolling-back the install work item list. |
| FINISHING, // Finishing the install. |
| NUM_STAGES // The number of stages. |
| }; |
| |
| namespace switches { |
| |
| extern const char kAllowDowngrade[]; |
| extern const char kChromeSxS[]; |
| extern const char kConfigureUserSettings[]; |
| extern const char kCriticalUpdateVersion[]; |
| extern const char kDeleteOldVersions[]; |
| 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 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 kStoreDMToken[]; |
| 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 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 kChromeDll[]; |
| extern const wchar_t kChromeChildDll[]; |
| extern const wchar_t kChromeExe[]; |
| extern const wchar_t kChromeNewExe[]; |
| extern const wchar_t kChromeOldExe[]; |
| extern const wchar_t kChromeProxyExe[]; |
| extern const wchar_t kChromeProxyNewExe[]; |
| extern const wchar_t kChromeProxyOldExe[]; |
| extern const wchar_t kCmdOnOsUpgrade[]; |
| extern const wchar_t kCmdStoreDMToken[]; |
| extern const wchar_t kEulaSentinelFile[]; |
| 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 kNotificationHelperExe[]; |
| extern const wchar_t kSetupExe[]; |
| extern const wchar_t kUninstallArgumentsField[]; |
| extern const wchar_t kUninstallDisplayNameField[]; |
| extern const wchar_t kUninstallInstallationDate[]; |
| extern const wchar_t kUninstallStringField[]; |
| |
| // Elevation Service constants. |
| extern const base::FilePath::CharType kElevationServiceExe[]; |
| |
| // 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[]; |
| |
| // 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; |
| enum : size_t { kMaxDMTokenLength = 4096 }; |
| |
| // Name of the allocator (and associated file) for storing histograms to be |
| // reported by Chrome during its next upload. |
| extern const char kSetupHistogramAllocatorName[]; |
| |
| } // namespace installer |
| |
| #endif // CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ |