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)#include "chrome/installer/util/util_constants.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace installer { 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace switches { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Whether to set Chrome to launch at computer startup. 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAutoLaunchChrome[] = "auto-launch-chrome"; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Install Chrome. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Currently this is only required when used in combination with kMultiInstall. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kChrome[] = "chrome"; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Install Chrome App Host. This is now interpreted as kChromeAppLauncher. 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TODO(huangs): Remove by M27. 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kChromeAppHostDeprecated[] = "app-host"; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Install Chrome App Launcher, which subsumes Chrome App Host, i.e., 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// App Launcher install converts App Host to App Launcher, and all subsequent 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// App Host updates/uninstalls become App Launcher updates/uninstalls. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kChromeAppLauncher[] = "app-launcher"; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Install Chrome Frame. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kChromeFrame[] = "chrome-frame"; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Run the installer for Chrome SxS. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kChromeSxS[] = "chrome-sxs"; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Create shortcuts for this user to point to a system-level install (which 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// must already be installed on the machine). The shortcuts created will 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// match the preferences of the already present system-level install as such 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// this option is not compatible with any other installer options. 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kConfigureUserSettings[] = "configure-user-settings"; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The version number of an update containing critical fixes, for which an 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in-use Chrome should be restarted ASAP. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kCriticalUpdateVersion[] = "critical-update-version"; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Delete user profile data. This param is useful only when specified with 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// kUninstall, otherwise it is silently ignored. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kDeleteProfile[] = "delete-profile"; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Disable logging 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kDisableLogging[] = "disable-logging"; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Prevent installer from launching Chrome after a successful first install. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kDoNotLaunchChrome[] = "do-not-launch-chrome"; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Prevents installer from writing the Google Update key that causes Google 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Update to launch Chrome after a first install. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kDoNotRegisterForUpdateLaunch[] = 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "do-not-register-for-update-launch"; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// By default we remove all shared (between users) files, registry entries etc 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// during uninstall. If this option is specified together with kUninstall option 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// we do not clean up shared entries otherwise this option is ignored. 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kDoNotRemoveSharedItems[] = "do-not-remove-shared-items"; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable logging at the error level. This is the default behavior. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kEnableLogging[] = "enable-logging"; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Ensures that Google Update is present at the current level of installation. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kEnsureGoogleUpdatePresent[] = "ensure-google-update-present"; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Same as kConfigureUserSettings above; except the checks to know whether 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// first run already occured are bypassed and shortcuts are created either way 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (kConfigureUserSettings also needs to be on the command-line for this to have 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// any effect). 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kForceConfigureUserSettings[] = "force-configure-user-settings"; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If present, setup will uninstall chrome without asking for any 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// confirmation from user. 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kForceUninstall[] = "force-uninstall"; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 79ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Specify the path to the compressed Chrome archive for install. If not 80ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// specified, chrome.packed.7z or chrome.7z in the same directory as setup.exe 81ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// is used (the packed file is preferred; see kUncompressedArchive to force use 82ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// of an uncompressed archive). 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kInstallArchive[] = "install-archive"; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Specify the file path of Chrome master preference file. 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kInstallerData[] = "installerdata"; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If present, specify file path to write logging info. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kLogFile[] = "log-file"; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Register Chrome as default browser on the system. Usually this will require 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that setup is running as admin. If running as admin we try to register 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// as default browser at system level, if running as non-admin we try to 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// register as default browser only for the current user. 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kMakeChromeDefault[] = "make-chrome-default"; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells installer to expect to be run as a subsidiary to an MSI. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kMsi[] = "msi"; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells installer to install multiple products specified on the command line. 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (e.g. Chrome Frame, Chrome) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kMultiInstall[] = "multi-install"; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Useful only when used with --update-setup-exe, otherwise ignored. It 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// specifies the full path where updated setup.exe will be stored. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kNewSetupExe[] = "new-setup-exe"; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the installer that the OS has been upgraded. 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kOnOsUpgrade[] = "on-os-upgrade"; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Determines whether or not EULA has been accepted at some point. Returns via 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// exit code: 0 if EULA not accepted, 1 if EULA accepted, and E_FAIL on error. 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kQueryEULAAcceptance[] = "query-eula-acceptance"; 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 115effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Requests that setup attempt to reenable autoupdates for Chrome. 116effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst char kReenableAutoupdates[] = "reenable-autoupdates"; 117effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 118effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Register Chrome as a valid browser on the current system. This option 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// requires that setup.exe is running as admin. If this option is specified, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// options kInstallArchive and kUninstall are ignored. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRegisterChromeBrowser[] = "register-chrome-browser"; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used by the installer to forward the registration suffix of the 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (un)installation in progress when launching an elevated setup.exe to finish 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// registration work. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRegisterChromeBrowserSuffix[] = "register-chrome-browser-suffix"; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Specify the path to the dev build of chrome.exe the user wants to install 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (register and install Start menu shortcut for) on the system. This will 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// always result in a user-level install and will make this install default 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// browser. 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRegisterDevChrome[] = "register-dev-chrome"; 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switch to allow an extra URL protocol to be registered. This option is used 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in conjunction with kRegisterChromeBrowser to specify an extra protocol 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in addition to the standard set of protocols. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRegisterURLProtocol[] = "register-url-protocol"; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Renames chrome.exe to old_chrome.exe and renames new_chrome.exe to chrome.exe 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to support in-use updates. Also deletes opv key. 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRenameChromeExe[] = "rename-chrome-exe"; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Removes Chrome registration from current machine. Requires admin rights. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRemoveChromeRegistration[] = "remove-chrome-registration"; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When we try to relaunch setup.exe as admin on Vista, we append this command 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// line flag so that we try the launch only once. 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kRunAsAdmin[] = "run-as-admin"; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Combined with --uninstall, signals to setup.exe that this uninstall was 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// triggered by a self-destructing Chrome. 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kSelfDestruct[] = "self-destruct"; 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Install Chrome to system wise location. The default is per user install. 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kSystemLevel[] = "system-level"; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 157a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Signals to setup.exe that it should trigger the active setup command. 158a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)const char kTriggerActiveSetup[] = "trigger-active-setup"; 159a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If present, setup will uninstall chrome. 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kUninstall[] = "uninstall"; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Also see --new-setup-exe. This command line option specifies a diff patch 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that setup.exe will apply to itself and store the resulting binary in the 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// path given by --new-setup-exe. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kUpdateSetupExe[] = "update-setup-exe"; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 168ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use the given uncompressed chrome.7z archive as the source of files to 169ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// install. 170ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochconst char kUncompressedArchive[] = "uncompressed-archive"; 171ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable verbose logging (info level). 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kVerboseLogging[] = "verbose-logging"; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Show the embedded EULA dialog. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kShowEula[] = "show-eula"; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Show the embedded EULA dialog, relaunch metro Chrome on acceptance. 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kShowEulaForMetro[] = "show-eula-for-metro"; 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Perform the inactive user toast experiment. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kInactiveUserToast[] = "inactive-user-toast"; 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// User toast experiment switch from system context to user context. 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kSystemLevelToast[] = "system-level-toast"; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The group this experiment belongs to. 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kExperimentGroup[] = "experiment-group"; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A handle value of the key to write the results of the toast experiment 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to. See DuplicateGoogleUpdateSystemClientKey for details. 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kToastResultsKey[] = "toast-results-key"; 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 194eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Applies a binary patch to a file. The input, patch, and the output file are 195eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// specified as command line arguments following the --patch switch. 196eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Ex: --patch=courgette --input_file='input' --patch_file='patch' 197eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// --output_file='output' 198eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kPatch[] = "patch"; 199eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kInputFile[] = "input-file"; 200eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kPatchFile[] = "patch-file"; 201eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kOutputFile[] = "output-file"; 202eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace switches 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The Active Setup executable will be an identical copy of setup.exe; this is 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// necessary because Windows' installer detection heuristics (which include 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// things like process name being "setup.exe") will otherwise force elevation 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// for non-admin users when setup.exe is launched. This is mitigated by adding 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// requestedExecutionLevel="asInvoker" to setup.exe's manifest on Vista+, but 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// there is no such manifest entry on Windows XP (which results in 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// crbug.com/166473). 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TODO(gab): Rename setup.exe itself altogether and use the same binary for 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Active Setup. 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const wchar_t kActiveSetupExe[] = L"chrmstp.exe"; 2155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)const wchar_t kAppLauncherGuid[] = L"{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}"; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeAppHostExe[] = L"app_host.exe"; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeDll[] = L"chrome.dll"; 218ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochconst wchar_t kChromeChildDll[] = L"chrome_child.dll"; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeExe[] = L"chrome.exe"; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeFrameDll[] = L"npchrome_frame.dll"; 221a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)const wchar_t kChromeFrameHelperDll[] = L"chrome_frame_helper.dll"; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeFrameHelperExe[] = L"chrome_frame_helper.exe"; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeFrameHelperWndClass[] = L"ChromeFrameHelperWindowClass"; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeLauncherExe[] = L"chrome_launcher.exe"; 225a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)const wchar_t kChromeMetroDll[] = L"metro_driver.dll"; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeNewExe[] = L"new_chrome.exe"; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeOldExe[] = L"old_chrome.exe"; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kCmdOnOsUpgrade[] = L"on-os-upgrade"; 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const wchar_t kCmdQueryEULAAcceptance[] = L"query-eula-acceptance"; 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kCmdQuickEnableApplicationHost[] = 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) L"quick-enable-application-host"; 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kCmdQuickEnableCf[] = L"quick-enable-cf"; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kDelegateExecuteExe[] = L"delegate_execute.exe"; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kEULASentinelFile[] = L"EULA Accepted"; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kGoogleChromeInstallSubDir1[] = L"Google"; 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kGoogleChromeInstallSubDir2[] = L"Chrome"; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallBinaryDir[] = L"Application"; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerDir[] = L"Installer"; 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallTempDir[] = L"Temp"; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kLnkExt[] = L".lnk"; 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kNaClExe[] = L"nacl64.exe"; 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kSetupExe[] = L"setup.exe"; 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kSxSSuffix[] = L" SxS"; 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kUninstallStringField[] = L"UninstallString"; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kUninstallArgumentsField[] = L"UninstallArguments"; 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kUninstallDisplayNameField[] = L"DisplayName"; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kUninstallMetricsName[] = "uninstall_metrics"; 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kUninstallInstallationDate[] = L"installation_date"; 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerError[] = L"InstallerError"; 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerExtraCode1[] = L"InstallerExtraCode1"; 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerResult[] = L"InstallerResult"; 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerResultUIString[] = L"InstallerResultUIString"; 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kInstallerSuccessLaunchCmdLine[] = 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) L"InstallerSuccessLaunchCmdLine"; 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kOptionMultiInstall[] = L"multi-install"; 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Chrome channel display names. 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeChannelUnknown[] = L"unknown"; 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeChannelCanary[] = L"canary"; 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeChannelDev[] = L"dev"; 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeChannelBeta[] = L"beta"; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kChromeChannelStable[] = L""; 2641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst wchar_t kChromeChannelStableExplicit[] = L"stable"; 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const size_t kMaxAppModelIdLength = 64U; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 268eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kCourgette[] = "courgette"; 269eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kBsdiff[] = "bsdiff"; 270eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace installer 272