OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ | 5 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ |
6 #define CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ | 6 #define CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/macros.h" | 12 #include "base/macros.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/strings/string16.h" | 14 #include "base/strings/string16.h" |
15 #include "base/time/time.h" | 15 #include "base/time/time.h" |
16 #include "base/version.h" | 16 #include "base/version.h" |
17 #include "build/build_config.h" | 17 #include "build/build_config.h" |
18 #include "chrome/installer/util/util_constants.h" | 18 #include "chrome/installer/util/util_constants.h" |
19 #include "components/metrics/client_info.h" | 19 #include "components/metrics/client_info.h" |
20 | 20 |
21 class AppRegistrationData; | 21 class AppRegistrationData; |
22 class BrowserDistribution; | 22 class BrowserDistribution; |
23 | 23 |
24 namespace installer { | 24 namespace installer { |
25 class ChannelInfo; | 25 class ChannelInfo; |
26 class InstallationState; | 26 class InstallationState; |
27 } | 27 } |
28 | 28 |
29 // This class provides accessors to the Google Update 'ClientState' information | 29 // This class provides accessors to the Google Update group policies and |
30 // that recorded when the user downloads the chrome installer. It is | 30 // 'ClientState' information. The group policies are set using specific |
31 // google_update.exe responsibility to write the initial values. | 31 // administrative templates. The 'ClientState' information is recorded when the |
32 // user downloads the Chrome installer. It is google_update.exe responsibility | |
33 // to write the initial values. | |
32 class GoogleUpdateSettings { | 34 class GoogleUpdateSettings { |
33 public: | 35 public: |
34 // Update policy constants defined by Google Update; do not change these. | 36 // Update policy constants defined by Google Update; do not change these. |
35 enum UpdatePolicy { | 37 enum UpdatePolicy { |
36 UPDATES_DISABLED = 0, | 38 UPDATES_DISABLED = 0, |
37 AUTOMATIC_UPDATES = 1, | 39 AUTOMATIC_UPDATES = 1, |
38 MANUAL_UPDATES_ONLY = 2, | 40 MANUAL_UPDATES_ONLY = 2, |
39 AUTO_UPDATES_ONLY = 3, | 41 AUTO_UPDATES_ONLY = 3, |
40 UPDATE_POLICIES_COUNT | 42 UPDATE_POLICIES_COUNT |
41 }; | 43 }; |
42 | 44 |
43 static const wchar_t kPoliciesKey[]; | 45 static const wchar_t kPoliciesKey[]; |
44 static const wchar_t kUpdatePolicyValue[]; | 46 static const wchar_t kUpdatePolicyValue[]; |
45 static const wchar_t kUpdateOverrideValuePrefix[]; | 47 static const wchar_t kUpdateOverrideValuePrefix[]; |
46 static const wchar_t kCheckPeriodOverrideMinutes[]; | 48 static const wchar_t kCheckPeriodOverrideMinutes[]; |
49 static const wchar_t kDownloadPreferencePolicyValue[]; | |
47 static const int kCheckPeriodOverrideMinutesDefault; | 50 static const int kCheckPeriodOverrideMinutesDefault; |
48 static const int kCheckPeriodOverrideMinutesMax; | 51 static const int kCheckPeriodOverrideMinutesMax; |
49 static const GoogleUpdateSettings::UpdatePolicy kDefaultUpdatePolicy; | 52 static const GoogleUpdateSettings::UpdatePolicy kDefaultUpdatePolicy; |
50 | 53 |
51 // Defines product data that is tracked/used by Google Update. | 54 // Defines product data that is tracked/used by Google Update. |
52 struct ProductData { | 55 struct ProductData { |
53 // The currently installed version. | 56 // The currently installed version. |
54 std::string version; | 57 std::string version; |
55 // The time that Google Update last updated this product. (This means | 58 // The time that Google Update last updated this product. (This means |
56 // either running an updater successfully, or doing an update check that | 59 // either running an updater successfully, or doing an update check that |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
259 // settings that would block updates from occurring. This is a superset of the | 262 // settings that would block updates from occurring. This is a superset of the |
260 // things checked by GetAppUpdatePolicy() as GetAppUpdatePolicy() does not | 263 // things checked by GetAppUpdatePolicy() as GetAppUpdatePolicy() does not |
261 // check Omaha's AutoUpdateCheckPeriodMinutes setting which will be reset by | 264 // check Omaha's AutoUpdateCheckPeriodMinutes setting which will be reset by |
262 // this method. Will need to be called from an elevated process since those | 265 // this method. Will need to be called from an elevated process since those |
263 // settings live in HKLM. Returns true if there is a reasonable belief that | 266 // settings live in HKLM. Returns true if there is a reasonable belief that |
264 // updates are not disabled by policy when this method returns, false | 267 // updates are not disabled by policy when this method returns, false |
265 // otherwise. Note that for Chromium builds, this returns true since Chromium | 268 // otherwise. Note that for Chromium builds, this returns true since Chromium |
266 // is assumed not to autoupdate. | 269 // is assumed not to autoupdate. |
267 static bool ReenableAutoupdates(); | 270 static bool ReenableAutoupdates(); |
268 | 271 |
272 // Returns a string if the corresponding Google Update group policy is set. | |
273 // Returns an empty string if no policy or an invalid policy is set. | |
274 // A valid policy for DownloadPreference is a string that matches the | |
275 // following regex: `[a-zA-z]{0-32}`. | |
gab
2016/01/26 03:44:55
So a policy of "abc12345" means something? Or are
Sorin Jianu
2016/01/26 18:09:48
Done.
| |
276 static base::string16 GetDownloadPreference(); | |
277 | |
269 // Records UMA stats about Chrome's update policy. | 278 // Records UMA stats about Chrome's update policy. |
270 static void RecordChromeUpdatePolicyHistograms(); | 279 static void RecordChromeUpdatePolicyHistograms(); |
271 | 280 |
272 // Returns Google Update's uninstall command line, or an empty string if none | 281 // Returns Google Update's uninstall command line, or an empty string if none |
273 // is found. | 282 // is found. |
274 static base::string16 GetUninstallCommandLine(bool system_install); | 283 static base::string16 GetUninstallCommandLine(bool system_install); |
275 | 284 |
276 // Returns the version of Google Update that is installed. | 285 // Returns the version of Google Update that is installed. |
277 static Version GetGoogleUpdateVersion(bool system_install); | 286 static Version GetGoogleUpdateVersion(bool system_install); |
278 | 287 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
317 // this will do nothing to |experiment_labels|. This will return true if the | 326 // this will do nothing to |experiment_labels|. This will return true if the |
318 // label did not exist, or was successfully read. | 327 // label did not exist, or was successfully read. |
319 static bool ReadExperimentLabels(bool system_install, | 328 static bool ReadExperimentLabels(bool system_install, |
320 base::string16* experiment_labels); | 329 base::string16* experiment_labels); |
321 | 330 |
322 private: | 331 private: |
323 DISALLOW_IMPLICIT_CONSTRUCTORS(GoogleUpdateSettings); | 332 DISALLOW_IMPLICIT_CONSTRUCTORS(GoogleUpdateSettings); |
324 }; | 333 }; |
325 | 334 |
326 #endif // CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ | 335 #endif // CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ |
OLD | NEW |