util_constants.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file. 453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)// 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Defines all install related constants that need to be used by Chrome as 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// well as Chrome Installer. 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "base/basictypes.h" 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace installer { 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Return status of installer 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum InstallStatus { 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) FIRST_INSTALL_SUCCESS, // 0. Successfully installed Chrome for the first time 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INSTALL_REPAIRED, // 1. Same version reinstalled for repair 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) NEW_VERSION_UPDATED, // 2. Chrome successfully updated to new version 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) EXISTING_VERSION_LAUNCHED, // 3. No work done, just launched existing chrome 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) HIGHER_VERSION_EXISTS, // 4. Higher version of Chrome already exists 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) USER_LEVEL_INSTALL_EXISTS, // 5. User level install already exists 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) SYSTEM_LEVEL_INSTALL_EXISTS, // 6. Machine level install already exists 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INSTALL_FAILED, // 7. Install/update failed 2502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch SETUP_PATCH_FAILED, // 8. Failed to patch setup.exe 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) OS_NOT_SUPPORTED, // 9. Current OS not supported 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) OS_ERROR, // 10. OS API call failed 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) TEMP_DIR_FAILED, // 11. Unable to get Temp directory 291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) UNCOMPRESSION_FAILED, // 12. Failed to uncompress Chrome archive 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INVALID_ARCHIVE, // 13. Something wrong with the installer archive 3176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) INSUFFICIENT_RIGHTS, // 14. User trying system level install is not Admin 321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) CHROME_NOT_INSTALLED, // 15. Chrome not installed (returned in case of 331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) // uninstall) 341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) CHROME_RUNNING, // 16. Chrome currently running (when trying to 351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) // uninstall) 361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) UNINSTALL_CONFIRMED, // 17. User has confirmed Chrome uninstall 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNINSTALL_DELETE_PROFILE, // 18. User okayed uninstall and profile deletion. 387757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch UNINSTALL_SUCCESSFUL, // 19. Chrome successfully uninstalled 397757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch UNINSTALL_FAILED, // 20. Chrome uninstallation failed 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNINSTALL_CANCELLED, // 21. User cancelled Chrome uninstallation 41926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) UNKNOWN_STATUS, // 22. Unknown status (this should never happen) 42926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RENAME_SUCCESSFUL, // 23. Rename of new_chrome.exe to chrome.exe worked 43926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RENAME_FAILED, // 24. Rename of new_chrome.exe failed 44926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) EULA_REJECTED, // 25. EULA dialog was not accepted by user. 45c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) EULA_ACCEPTED, // 26. EULA dialog was accepted by user. 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) EULA_ACCEPTED_OPT_IN, // 27. EULA accepted with the crash option selected. 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INSTALL_DIR_IN_USE, // 28. Installation directory is in use by another 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // process 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNINSTALL_REQUIRES_REBOOT, // 29. Uninstallation required a reboot. 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) IN_USE_UPDATED, // 30. Chrome successfully updated but old version 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // running 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) SAME_VERSION_REPAIR_FAILED, // 31. Chrome repair failed as Chrome was running 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REENTRY_SYS_UPDATE, // 32. Setup has been re-launched as the interactive 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // user 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) SXS_OPTION_NOT_SUPPORTED, // 33. The chrome-sxs option provided does not work 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // with other command line options. 5702772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch NON_MULTI_INSTALLATION_EXISTS, // 34. We tried to do a multi-install but 5802772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch // failed because there's an existing 5902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch // installation of the same product on the 6002772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch // system, but in 'single' mode. 6102772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch MULTI_INSTALLATION_EXISTS, // 35. We tried to do a 'single' install but 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // failed because there's an existing 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // multi-install installation of the same product 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // on the system. 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) READY_MODE_OPT_IN_FAILED, // 36. Failed to opt-into Chrome Frame. 6602772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch READY_MODE_TEMP_OPT_OUT_FAILED, // 37. Failed to temporarily opt-out of 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Chrome Frame. 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) READY_MODE_END_TEMP_OPT_OUT_FAILED, // 38. Failed to end temporary opt-out 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // of Chrome Frame. 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CONFLICTING_CHANNEL_EXISTS, // 39. A multi-install product on a different 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // update channel exists. 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) READY_MODE_REQUIRES_CHROME, // 40. Chrome Frame in ready-mode requires Chrome 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) APP_HOST_REQUIRES_MULTI_INSTALL, // 41. --multi-install was missing from the 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // command line. 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) APPLY_DIFF_PATCH_FAILED, // 42. Failed to apply a diff patch. 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INCONSISTENT_UPDATE_POLICY, // 43. Inconsistent update policy GP settings. 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) APP_HOST_REQUIRES_USER_LEVEL, // 44. --system-level is forbidden. 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) APP_HOST_REQUIRES_BINARIES, // 45. No Chrome binaries at either level. 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INSTALL_OF_GOOGLE_UPDATE_FAILED, // 46. Failed to install Google Update. 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INVALID_STATE_FOR_OPTION, // 47. A non-install option was called with an 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // invalid installer state. 8202772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch WAIT_FOR_EXISTING_FAILED, // 48. OS error waiting for existing setup.exe. 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PATCH_INVALID_ARGUMENTS, // 49. The arguments of --patch were missing or 8402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch // they were invalid for any reason. 8502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch DIFF_PATCH_SOURCE_MISSING, // 50. No previous version archive found for 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // differential update. 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNUSED_BINARIES, // 51. No multi-install products to update. The 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // binaries will be uninstalled if they are not 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // in use. 9002772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch UNUSED_BINARIES_UNINSTALLED, // 52. The binaries were uninstalled. 915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNSUPPORTED_OPTION, // 53. An unsupported legacy option was given. 925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CPU_NOT_SUPPORTED, // 54. Current OS not supported 935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REENABLE_UPDATES_SUCCEEDED, // 55. Autoupdates are now enabled. 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REENABLE_UPDATES_FAILED, // 56. Autoupdates could not be enabled. 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNPACKING_FAILED, // 57. Unpacking the (possibly patched) 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // uncompressed archive failed. 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Friendly reminder: note the COMPILE_ASSERT below. 9902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch}; 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10202772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch// Existing InstallStatus values must not change. Always add to the end. 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)COMPILE_ASSERT(installer::UNPACKING_FAILED == 57, 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) dont_change_enum); 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The type of an update archive. 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ArchiveType { 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNKNOWN_ARCHIVE_TYPE, // Unknown or uninitialized. 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) FULL_ARCHIVE_TYPE, // Full chrome.7z archive. 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) INCREMENTAL_ARCHIVE_TYPE // Incremental or differential archive. 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Stages of an installation reported through Google Update on failure. 1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The order and value of existing enums must not change. Please add new 11502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch// values to the end (before NUM_STAGES) and update the compile assert below 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// to assert on the last value added. 1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum InstallerStage { 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) NO_STAGE, // 0: No stage to report. 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PRECONDITIONS, // 1: Evaluating pre-install conditions. 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNCOMPRESSING, // 2: Uncompressing chrome.packed.7z. 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ENSEMBLE_PATCHING, // 3: Patching chrome.7z using courgette. 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) BINARY_PATCHING, // 4: Patching chrome.7z using bspatch. 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNPACKING, // 5: Unpacking chrome.7z. 12402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch BUILDING, // 6: Building the install work item list. 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) EXECUTING, // 7: Executing the install work item list. 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ROLLINGBACK, // 8: Rolling-back the install work item list. 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REFRESHING_POLICY, // 9: Refreshing the elevation policy. 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UPDATING_CHANNELS, // 10: Updating channel information. 12902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch COPYING_PREFERENCES_FILE, // 11: Copying preferences file. 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CREATING_SHORTCUTS, // 12: Creating shortcuts. 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REGISTERING_CHROME, // 13: Performing Chrome registration. 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) REMOVING_OLD_VERSIONS, // 14: Deleting old version directories. 13302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch FINISHING, // 15: Finishing the install. 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CONFIGURE_AUTO_LAUNCH, // 16: Configuring Chrome to auto-launch. 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CREATING_VISUAL_MANIFEST, // 17: Creating VisualElementsManifest.xml 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DEFERRING_TO_HIGHER_VERSION, // 18: Deferring to an installed higher version. 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNINSTALLING_BINARIES, // 19: Uninstalling unused binaries. 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UNINSTALLING_CHROME_FRAME, // 20: Uninstalling multi-install Chrome Frame. 13902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch NUM_STAGES // 21: The number of stages. 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// When we start reporting the numerical values from the enum, the order 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// above MUST be preserved. 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)COMPILE_ASSERT(UNINSTALLING_CHROME_FRAME == 20, 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) never_ever_ever_change_InstallerStage_values_bang); 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace switches { 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kAutoLaunchChrome[]; 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kChrome[]; 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kChromeAppHostDeprecated[]; // TODO(huangs): Remove by M27. 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kChromeAppLauncher[]; 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kChromeFrame[]; 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kChromeSxS[]; 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kConfigureUserSettings[]; 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kCriticalUpdateVersion[]; 15702772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kDeleteProfile[]; 1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kDisableLogging[]; 1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kDoNotLaunchChrome[]; 1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kDoNotRegisterForUpdateLaunch[]; 16102772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kDoNotRemoveSharedItems[]; 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kEnableLogging[]; 1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kEnsureGoogleUpdatePresent[]; 1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kForceConfigureUserSettings[]; 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kForceUninstall[]; 1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kInstallArchive[]; 1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kInstallerData[]; 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kLogFile[]; 1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kMakeChromeDefault[]; 17002772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kMsi[]; 1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kMultiInstall[]; 1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kNewSetupExe[]; 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kOnOsUpgrade[]; 1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kQueryEULAAcceptance[]; 17502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kReenableAutoupdates[]; 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRegisterChromeBrowser[]; 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRegisterChromeBrowserSuffix[]; 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRegisterDevChrome[]; 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRegisterURLProtocol[]; 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRenameChromeExe[]; 1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRemoveChromeRegistration[]; 1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kRunAsAdmin[]; 1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kSelfDestruct[]; 1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kSystemLevel[]; 18502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kTriggerActiveSetup[]; 1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kUninstall[]; 1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kUpdateSetupExe[]; 1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kUncompressedArchive[]; 1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kVerboseLogging[]; 1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kShowEula[]; 1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kShowEulaForMetro[]; 1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kInactiveUserToast[]; 1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kSystemLevelToast[]; 19402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kExperimentGroup[]; 1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kToastResultsKey[]; 1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kPatch[]; 1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kInputFile[]; 1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kPatchFile[]; 19902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const char kOutputFile[]; 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace switches 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kActiveSetupExe[]; 20402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const wchar_t kAppLauncherGuid[]; 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeAppHostExe[]; 2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeDll[]; 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChildDll[]; 2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeExe[]; 2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeFrameDll[]; 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeFrameHelperDll[]; 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeFrameHelperExe[]; 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeFrameHelperWndClass[]; 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeLauncherExe[]; 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeMetroDll[]; 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeNewExe[]; 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeOldExe[]; 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kCmdInstallApp[]; 21802772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdochextern const wchar_t kCmdInstallExtension[]; 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kCmdOnOsUpgrade[]; 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kCmdQueryEULAAcceptance[]; 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kCmdQuickEnableApplicationHost[]; 2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kCmdQuickEnableCf[]; 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kDelegateExecuteExe[]; 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kEULASentinelFile[]; 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kGoogleChromeInstallSubDir1[]; 2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kGoogleChromeInstallSubDir2[]; 2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallBinaryDir[]; 2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerDir[]; 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallTempDir[]; 2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kLnkExt[]; 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kNaClExe[]; 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kSetupExe[]; 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kSxSSuffix[]; 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kUninstallArgumentsField[]; 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kUninstallDisplayNameField[]; 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kUninstallInstallationDate[]; 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kUninstallMetricsName[]; 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kUninstallStringField[]; 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Google Update installer result API 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerError[]; 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerExtraCode1[]; 2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerResult[]; 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerResultUIString[]; 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kInstallerSuccessLaunchCmdLine[]; 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Product options. 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kOptionMultiInstall[]; 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Chrome channel display names. 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// NOTE: Canary is not strictly a 'channel', but rather a separate product 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// installed side-by-side. However, GoogleUpdateSettings::GetChromeChannel 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// will return "canary" for that product. 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelUnknown[]; 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelCanary[]; 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelDev[]; 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelBeta[]; 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelStable[]; 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const wchar_t kChromeChannelStableExplicit[]; 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const size_t kMaxAppModelIdLength; 2627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The range of error values for the installer, Courgette, and bsdiff is 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// overlapping. These offset values disambiguate between different sets 26502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch// of errors by shifting the values up with the specified offset. 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const int kCourgetteErrorOffset = 300; 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const int kBsdiffErrorOffset = 600; 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Arguments to --patch switch 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kCourgette[]; 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const char kBsdiff[]; 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace installer 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // CHROME_INSTALLER_UTIL_UTIL_CONSTANTS_H_ 27602772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch