15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Defines all install related constants that need to be used by Chrome as 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// well as Chrome Installer. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace installer { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Return status of installer 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum InstallStatus { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FIRST_INSTALL_SUCCESS, // 0. Successfully installed Chrome for the first time 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INSTALL_REPAIRED, // 1. Same version reinstalled for repair 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEW_VERSION_UPDATED, // 2. Chrome successfully updated to new version 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXISTING_VERSION_LAUNCHED, // 3. No work done, just launched existing chrome 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HIGHER_VERSION_EXISTS, // 4. Higher version of Chrome already exists 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) USER_LEVEL_INSTALL_EXISTS, // 5. User level install already exists 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SYSTEM_LEVEL_INSTALL_EXISTS, // 6. Machine level install already exists 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INSTALL_FAILED, // 7. Install/update failed 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SETUP_PATCH_FAILED, // 8. Failed to patch setup.exe 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS_NOT_SUPPORTED, // 9. Current OS not supported 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OS_ERROR, // 10. OS API call failed 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TEMP_DIR_FAILED, // 11. Unable to get Temp directory 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNCOMPRESSION_FAILED, // 12. Failed to uncompress Chrome archive 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INVALID_ARCHIVE, // 13. Something wrong with the installer archive 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INSUFFICIENT_RIGHTS, // 14. User trying system level install is not Admin 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CHROME_NOT_INSTALLED, // 15. Chrome not installed (returned in case of 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uninstall) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CHROME_RUNNING, // 16. Chrome currently running (when trying to 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uninstall) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_CONFIRMED, // 17. User has confirmed Chrome uninstall 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_DELETE_PROFILE, // 18. User okayed uninstall and profile deletion. 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_SUCCESSFUL, // 19. Chrome successfully uninstalled 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_FAILED, // 20. Chrome uninstallation failed 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_CANCELLED, // 21. User cancelled Chrome uninstallation 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNKNOWN_STATUS, // 22. Unknown status (this should never happen) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RENAME_SUCCESSFUL, // 23. Rename of new_chrome.exe to chrome.exe worked 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RENAME_FAILED, // 24. Rename of new_chrome.exe failed 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EULA_REJECTED, // 25. EULA dialog was not accepted by user. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EULA_ACCEPTED, // 26. EULA dialog was accepted by user. 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EULA_ACCEPTED_OPT_IN, // 27. EULA accepted with the crash option selected. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INSTALL_DIR_IN_USE, // 28. Installation directory is in use by another 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // process 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNINSTALL_REQUIRES_REBOOT, // 29. Uninstallation required a reboot. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IN_USE_UPDATED, // 30. Chrome successfully updated but old version 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // running 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SAME_VERSION_REPAIR_FAILED, // 31. Chrome repair failed as Chrome was running 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) REENTRY_SYS_UPDATE, // 32. Setup has been re-launched as the interactive 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // user 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SXS_OPTION_NOT_SUPPORTED, // 33. The chrome-sxs option provided does not work 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // with other command line options. 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NON_MULTI_INSTALLATION_EXISTS, // 34. We tried to do a multi-install but 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // failed because there's an existing 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // installation of the same product on the 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // system, but in 'single' mode. 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MULTI_INSTALLATION_EXISTS, // 35. We tried to do a 'single' install but 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // failed because there's an existing 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // multi-install installation of the same product 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // on the system. 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) READY_MODE_OPT_IN_FAILED, // 36. Failed to opt-into Chrome Frame. 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) READY_MODE_TEMP_OPT_OUT_FAILED, // 37. Failed to temporarily opt-out of 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Chrome Frame. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) READY_MODE_END_TEMP_OPT_OUT_FAILED, // 38. Failed to end temporary opt-out 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of Chrome Frame. 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONFLICTING_CHANNEL_EXISTS, // 39. A multi-install product on a different 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // update channel exists. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) READY_MODE_REQUIRES_CHROME, // 40. Chrome Frame in ready-mode requires Chrome 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) APP_HOST_REQUIRES_MULTI_INSTALL, // 41. --multi-install was missing from the 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // command line. 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) APPLY_DIFF_PATCH_FAILED, // 42. Failed to apply a diff patch. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INCONSISTENT_UPDATE_POLICY, // 43. Inconsistent update policy GP settings. 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) APP_HOST_REQUIRES_USER_LEVEL, // 44. --system-level is forbidden. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) APP_HOST_REQUIRES_BINARIES, // 45. No Chrome binaries at either level. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INSTALL_OF_GOOGLE_UPDATE_FAILED, // 46. Failed to install Google Update. 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INVALID_STATE_FOR_OPTION, // 47. A non-install option was called with an 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // invalid installer state. 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WAIT_FOR_EXISTING_FAILED, // 48. OS error waiting for existing setup.exe. 83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch PATCH_INVALID_ARGUMENTS, // 49. The arguments of --patch were missing or 84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // they were invalid for any reason. 85ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch DIFF_PATCH_SOURCE_MISSING, // 50. No previous version archive found for 86ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // differential update. 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Friendly reminder: note the COMPILE_ASSERT below. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Existing InstallStatus values must not change. Always add to the end. 92ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochCOMPILE_ASSERT(installer::DIFF_PATCH_SOURCE_MISSING == 50, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dont_change_enum); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The type of an update archive. 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum ArchiveType { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNKNOWN_ARCHIVE_TYPE, // Unknown or uninitialized. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FULL_ARCHIVE_TYPE, // Full chrome.7z archive. 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) INCREMENTAL_ARCHIVE_TYPE // Incremental or differential archive. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Stages of an installation reported through Google Update on failure. 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The order and value of existing enums must not change. Please add new 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// values to the end (before NUM_STAGES) and update the compile assert below 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to assert on the last value added. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum InstallerStage { 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NO_STAGE, // 0: No stage to report. 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PRECONDITIONS, // 1: Evaluating pre-install conditions. 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNCOMPRESSING, // 2: Uncompressing chrome.packed.7z. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ENSEMBLE_PATCHING, // 3: Patching chrome.7z using courgette. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BINARY_PATCHING, // 4: Patching chrome.7z using bspatch. 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNPACKING, // 5: Unpacking chrome.7z. 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BUILDING, // 6: Building the install work item list. 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXECUTING, // 7: Executing the install work item list. 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLLINGBACK, // 8: Rolling-back the install work item list. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) REFRESHING_POLICY, // 9: Refreshing the elevation policy. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UPDATING_CHANNELS, // 10: Updating channel information. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) COPYING_PREFERENCES_FILE, // 11: Copying preferences file. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CREATING_SHORTCUTS, // 12: Creating shortcuts. 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) REGISTERING_CHROME, // 13: Performing Chrome registration. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) REMOVING_OLD_VERSIONS, // 14: Deleting old version directories. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FINISHING, // 15: Finishing the install. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONFIGURE_AUTO_LAUNCH, // 16: Configuring Chrome to auto-launch. 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CREATING_VISUAL_MANIFEST, // 17: Creating VisualElementsManifest.xml 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DEFERRING_TO_HIGHER_VERSION, // 18: Deferring to an installed higher version. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NUM_STAGES // 19: The number of stages. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When we start reporting the numerical values from the enum, the order 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// above MUST be preserved. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)COMPILE_ASSERT(DEFERRING_TO_HIGHER_VERSION == 18, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) never_ever_ever_change_InstallerStage_values_bang); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace switches { 135eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kAutoLaunchChrome[]; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChrome[]; 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const char kChromeAppHostDeprecated[]; // TODO(huangs): Remove by M27. 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeAppLauncher[]; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrame[]; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrameQuickEnable[]; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrameReadyMode[]; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrameReadyModeOptIn[]; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrameReadyModeTempOptOut[]; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeFrameReadyModeEndTempOptOut[]; 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kChromeSxS[]; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kConfigureUserSettings[]; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kCriticalUpdateVersion[]; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDeleteProfile[]; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDisableLogging[]; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDoNotLaunchChrome[]; 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDoNotRegisterForUpdateLaunch[]; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kDoNotRemoveSharedItems[]; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kEnableLogging[]; 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kEnsureGoogleUpdatePresent[]; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kForceConfigureUserSettings[]; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kForceUninstall[]; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kInstallArchive[]; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kInstallerData[]; 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kLogFile[]; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kMakeChromeDefault[]; 162558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochextern const char kMigrateChromeFrame[]; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kMsi[]; 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kMultiInstall[]; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kNewSetupExe[]; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kOnOsUpgrade[]; 1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const char kQueryEULAAcceptance[]; 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRegisterChromeBrowser[]; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRegisterChromeBrowserSuffix[]; 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRegisterDevChrome[]; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRegisterURLProtocol[]; 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRenameChromeExe[]; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRemoveChromeRegistration[]; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kRunAsAdmin[]; 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const char kSelfDestruct[]; 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kSystemLevel[]; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kUninstall[]; 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kUpdateSetupExe[]; 179ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochextern const char kUncompressedArchive[]; 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kVerboseLogging[]; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kShowEula[]; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kShowEulaForMetro[]; 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kInactiveUserToast[]; 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kSystemLevelToast[]; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kExperimentGroup[]; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kToastResultsKey[]; 187eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kPatch[]; 188eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kInputFile[]; 189eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kPatchFile[]; 190eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kOutputFile[]; 191eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace switches 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const wchar_t kActiveSetupExe[]; 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeAppHostExe[]; 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeDll[]; 197ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochextern const wchar_t kChromeChildDll[]; 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeExe[]; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeFrameDll[]; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeFrameHelperExe[]; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeFrameHelperWndClass[]; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeFrameReadyModeField[]; 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeLauncherExe[]; 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeOldExe[]; 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeNewExe[]; 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kCmdInstallApp[]; 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const wchar_t kCmdInstallExtension[]; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kCmdOnOsUpgrade[]; 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern const wchar_t kCmdQueryEULAAcceptance[]; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kCmdQuickEnableApplicationHost[]; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kCmdQuickEnableCf[]; 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kDelegateExecuteExe[]; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kEULASentinelFile[]; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kGoogleChromeInstallSubDir1[]; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kGoogleChromeInstallSubDir2[]; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallBinaryDir[]; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerDir[]; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallTempDir[]; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallUserDataDir[]; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kLnkExt[]; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kNaClExe[]; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kSetupExe[]; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kSxSSuffix[]; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kUninstallArgumentsField[]; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kUninstallDisplayNameField[]; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kUninstallInstallationDate[]; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const char kUninstallMetricsName[]; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kUninstallStringField[]; 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Google Update installer result API 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerError[]; 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerExtraCode1[]; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerResult[]; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerResultUIString[]; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kInstallerSuccessLaunchCmdLine[]; 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Product options. 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kOptionMultiInstall[]; 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kOptionReadyMode[]; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Chrome channel display names. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NOTE: Canary is not strictly a 'channel', but rather a separate product 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// installed side-by-side. However, GoogleUpdateSettings::GetChromeChannel 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// will return "canary" for that product. 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeChannelUnknown[]; 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeChannelCanary[]; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeChannelDev[]; 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeChannelBeta[]; 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const wchar_t kChromeChannelStable[]; 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern const size_t kMaxAppModelIdLength; 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 253eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// The range of error values for the installer, Courgette, and bsdiff is 254eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// overlapping. These offset values disambiguate between different sets 255eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// of errors by shifting the values up with the specified offset. 256eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst int kCourgetteErrorOffset = 300; 257eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst int kBsdiffErrorOffset = 600; 258eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 259eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Arguments to --patch switch 260eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kCourgette[]; 261eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochextern const char kBsdiff[]; 262eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace installer 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 266