-
Notifications
You must be signed in to change notification settings - Fork 6.6k
/
util_constants.cc
272 lines (211 loc) · 11.6 KB
/
util_constants.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/installer/util/util_constants.h"
namespace installer {
namespace switches {
// Allow an update of Chrome from a higher version to a lower version.
// Ordinarily, such downgrades are disallowed. An administrator may wish to
// allow them in circumstances where the potential loss of user data is
// permissible.
const char kAllowDowngrade[] = "allow-downgrade";
// A channel name specified via administrative policy. This switch sets the
// channel both of the installer and of the version of Chrome being installed.
// This switch has no effect for secondary install modes (i.e., installs that
// use --chrome-sxs or another mode switch).
const char kChannel[] = "channel";
// Create shortcuts for this user to point to a system-level install (which
// must already be installed on the machine). The shortcuts created will
// match the preferences of the already present system-level install as such
// this option is not compatible with any other installer options.
const char kConfigureUserSettings[] = "configure-user-settings";
// Create shortcuts with the installer operation arg.
const char kCreateShortcuts[] = "create-shortcuts";
// The version number of an update containing critical fixes, for which an
// in-use Chrome should be restarted ASAP.
const char kCriticalUpdateVersion[] = "critical-update-version";
// Deletes any existing DMToken from the registry.
const char kDeleteDMToken[] = "delete-dmtoken";
// Delete files that belong to old versions of Chrome from the install
// directory.
const char kDeleteOldVersions[] = "delete-old-versions";
// Delete user profile data. This param is useful only when specified with
// kUninstall, otherwise it is silently ignored.
const char kDeleteProfile[] = "delete-profile";
// Disable logging.
const char kDisableLogging[] = "disable-logging";
// Specifies the DM server URL to use with the rotate device key command.
const char kDmServerUrl[] = "dm-server-url";
// Prevent installer from launching Chrome after a successful first install.
const char kDoNotLaunchChrome[] = "do-not-launch-chrome";
// Prevents installer from writing the Google Update key that causes Google
// Update to launch Chrome after a first install.
const char kDoNotRegisterForUpdateLaunch[] =
"do-not-register-for-update-launch";
// By default we remove all shared (between users) files, registry entries etc
// during uninstall. If this option is specified together with kUninstall option
// we do not clean up shared entries otherwise this option is ignored.
const char kDoNotRemoveSharedItems[] = "do-not-remove-shared-items";
// Enable logging at the error level. This is the default behavior.
const char kEnableLogging[] = "enable-logging";
// Same as kConfigureUserSettings above; except the checks to know whether
// first run already occurred are bypassed and shortcuts are created either way
// (kConfigureUserSettings also needs to be on the command-line for this to have
// any effect).
const char kForceConfigureUserSettings[] = "force-configure-user-settings";
// If present, setup will uninstall chrome without asking for any
// confirmation from user.
const char kForceUninstall[] = "force-uninstall";
// See description for kPatch.
const char kInputFile[] = "input-file";
// Specify the path to the compressed Chrome archive for install. If not
// specified, chrome.packed.7z or chrome.7z in the same directory as setup.exe
// is used.
const char kInstallArchive[] = "install-archive";
// Specify the file path of Chrome initial preference file.
const char kInstallerData[] = "installerdata";
// What install level to create shortcuts for, if "create-shortcuts" is present.
const char kInstallLevel[] = "install-level";
// If present, specify file path to write logging info.
const char kLogFile[] = "log-file";
// Register Chrome as default browser on the system. Usually this will require
// that setup is running as admin. If running as admin we try to register
// as default browser at system level, if running as non-admin we try to
// register as default browser only for the current user.
const char kMakeChromeDefault[] = "make-chrome-default";
// Tells installer to expect to be run as a subsidiary to an MSI.
const char kMsi[] = "msi";
// Useful only when used with --update-setup-exe; otherwise ignored. Specifies
// the full path where the updated setup.exe will be written. Any other files
// created in the indicated directory may be deleted by the caller after process
// termination.
const char kNewSetupExe[] = "new-setup-exe";
// Specifies a nonce to use with the rotate device key command.
const char kNonce[] = "nonce";
// Notify the installer that the OS has been upgraded.
const char kOnOsUpgrade[] = "on-os-upgrade";
// Applies a binary patch to a file. The input, patch, and the output file are
// specified as command line arguments following the --patch switch.
// Ex: --patch=courgette --input_file='input' --patch_file='patch'
// --output_file='output'
const char kOutputFile[] = "output-file";
const char kPatch[] = "patch";
const char kPatchFile[] = "patch-file";
// Provide the previous version that patch is for.
const char kPreviousVersion[] = "previous-version";
// Requests that setup attempt to reenable autoupdates for Chrome.
const char kReenableAutoupdates[] = "reenable-autoupdates";
// Register Chrome as a valid browser on the current system. This option
// requires that setup.exe is running as admin. If this option is specified,
// options kInstallArchive and kUninstall are ignored.
const char kRegisterChromeBrowser[] = "register-chrome-browser";
// Used by the installer to forward the registration suffix of the
// (un)installation in progress when launching an elevated setup.exe to finish
// registration work.
const char kRegisterChromeBrowserSuffix[] = "register-chrome-browser-suffix";
// Specify the path to the dev build of chrome.exe the user wants to install
// (register and install Start menu shortcut for) on the system. This will
// always result in a user-level install and will make this install default
// browser.
const char kRegisterDevChrome[] = "register-dev-chrome";
// Switch to allow an extra URL protocol to be registered. This option is used
// in conjunction with kRegisterChromeBrowser to specify an extra protocol
// in addition to the standard set of protocols.
const char kRegisterURLProtocol[] = "register-url-protocol";
// Removes Chrome registration from current machine. Requires admin rights.
const char kRemoveChromeRegistration[] = "remove-chrome-registration";
// Renames chrome.exe to old_chrome.exe and renames new_chrome.exe to chrome.exe
// to support in-use updates. Also deletes opv key.
const char kRenameChromeExe[] = "rename-chrome-exe";
// Rotate the stored device trust signing key.
const char kRotateDeviceTrustKey[] = "rotate-dtkey";
// When we try to relaunch setup.exe as admin on Vista, we append this command
// line flag so that we try the launch only once.
const char kRunAsAdmin[] = "run-as-admin";
// Combined with --uninstall, signals to setup.exe that this uninstall was
// triggered by a self-destructing Chrome.
const char kSelfDestruct[] = "self-destruct";
// Show the embedded EULA dialog.
const char kShowEula[] = "show-eula";
// Saves the specified device management token to the registry.
const char kStoreDMToken[] = "store-dmtoken";
// Install Chrome to system wise location. The default is per user install.
const char kSystemLevel[] = "system-level";
// Signals to setup.exe that it should trigger the active setup command.
const char kTriggerActiveSetup[] = "trigger-active-setup";
// If present, setup will uninstall chrome.
const char kUninstall[] = "uninstall";
// Also see --new-setup-exe. This command line option specifies a diff patch
// that setup.exe will apply to itself and store the resulting binary in the
// path given by --new-setup-exe.
const char kUpdateSetupExe[] = "update-setup-exe";
// Enable verbose logging (info level).
const char kVerboseLogging[] = "verbose-logging";
} // namespace switches
namespace env_vars {
// The presence of this environment variable with a value of 1 implies that
// setup.exe should run as a system installation regardless of what is on the
// command line.
const char kGoogleUpdateIsMachineEnvVar[] = "GoogleUpdateIsMachine";
} // namespace env_vars
// The Active Setup executable will be an identical copy of setup.exe; this is
// necessary because Windows' installer detection heuristics (which include
// things like process name being "setup.exe") will otherwise force elevation
// for non-admin users when setup.exe is launched. This is mitigated by adding
// requestedExecutionLevel="asInvoker" to setup.exe's manifest on Vista+, but
// there is no such manifest entry on Windows XP (which results in
// crbug.com/166473).
// TODO(gab): Rename setup.exe itself altogether and use the same binary for
// Active Setup.
const wchar_t kActiveSetupExe[] = L"chrmstp.exe";
const wchar_t kChromeDll[] = L"chrome.dll";
const wchar_t kChromeExe[] = L"chrome.exe";
const wchar_t kChromeNewExe[] = L"new_chrome.exe";
const wchar_t kChromeOldExe[] = L"old_chrome.exe";
const wchar_t kChromeProxyExe[] = L"chrome_proxy.exe";
const wchar_t kChromeProxyNewExe[] = L"new_chrome_proxy.exe";
const wchar_t kChromeProxyOldExe[] = L"old_chrome_proxy.exe";
const wchar_t kCmdAlternateRenameChromeExe[] = L"rename-chrome-exe";
const wchar_t kCmdRenameChromeExe[] = L"cmd";
const wchar_t kCmdOnOsUpgrade[] = L"on-os-upgrade";
const wchar_t kCmdRotateDeviceTrustKey[] = L"rotate-dtkey";
const wchar_t kCmdStoreDMToken[] = L"store-dmtoken";
const wchar_t kCmdDeleteDMToken[] = L"delete-dmtoken";
const wchar_t kEulaSentinelFile[] = L"EULA Accepted";
const wchar_t kInstallBinaryDir[] = L"Application";
const wchar_t kInstallerDir[] = L"Installer";
const wchar_t kInstallTempDir[] = L"Temp";
const wchar_t kLnkExt[] = L".lnk";
const wchar_t kNaClExe[] = L"nacl64.exe";
const wchar_t kNotificationHelperExe[] = L"notification_helper.exe";
const wchar_t kWerDll[] = L"chrome_wer.dll";
// DowngradeVersion holds the version from which Chrome was downgraded. In case
// of multiple downgrades (e.g., 75->74->73), it retains the highest version
// installed prior to any downgrades. DowngradeVersion is deleted on upgrade
// once Chrome reaches the version from which it was downgraded.
const wchar_t kRegDowngradeVersion[] = L"DowngradeVersion";
const wchar_t kSetupExe[] = L"setup.exe";
const wchar_t kUninstallStringField[] = L"UninstallString";
const wchar_t kUninstallArgumentsField[] = L"UninstallArguments";
const wchar_t kUninstallDisplayNameField[] = L"DisplayName";
const wchar_t kUninstallInstallationDate[] = L"installation_date";
// Elevation Service constants.
const base::FilePath::CharType kElevationServiceExe[] =
FILE_PATH_LITERAL("elevation_service.exe");
// Google Update installer result API.
const wchar_t kInstallerError[] = L"InstallerError";
const wchar_t kInstallerExtraCode1[] = L"InstallerExtraCode1";
const wchar_t kInstallerResult[] = L"InstallerResult";
const wchar_t kInstallerResultUIString[] = L"InstallerResultUIString";
const wchar_t kInstallerSuccessLaunchCmdLine[] =
L"InstallerSuccessLaunchCmdLine";
// Chrome channel display names.
const wchar_t kChromeChannelUnknown[] = L"unknown";
const wchar_t kChromeChannelCanary[] = L"canary";
const wchar_t kChromeChannelDev[] = L"dev";
const wchar_t kChromeChannelBeta[] = L"beta";
const wchar_t kChromeChannelStable[] = L"";
const wchar_t kChromeChannelStableExplicit[] = L"stable";
const size_t kMaxAppModelIdLength = 64U;
const char kSetupHistogramAllocatorName[] = "SetupMetrics";
} // namespace installer