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