diff options
author | rahulk@google.com <rahulk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-14 19:28:17 +0000 |
---|---|---|
committer | rahulk@google.com <rahulk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-14 19:28:17 +0000 |
commit | 6e93e526a35e8001a0ec46cc60e9230863be289c (patch) | |
tree | 8285fcbdf1aa0834f0d512e1991877b74e94b40d /chrome/installer | |
parent | 9eb977d2e0c7f8e074906edcad2cb1e0915e0c62 (diff) | |
download | chromium_src-6e93e526a35e8001a0ec46cc60e9230863be289c.zip chromium_src-6e93e526a35e8001a0ec46cc60e9230863be289c.tar.gz chromium_src-6e93e526a35e8001a0ec46cc60e9230863be289c.tar.bz2 |
Moving GoogleUpdateSettings to util. Installer as well as Chrome needs these settings.
BUG=1296800
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@877 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer')
-rw-r--r-- | chrome/installer/setup/uninstall.cc | 2 | ||||
-rw-r--r-- | chrome/installer/util/google_update_settings.cc | 72 | ||||
-rw-r--r-- | chrome/installer/util/google_update_settings.h | 68 | ||||
-rw-r--r-- | chrome/installer/util/util.vcproj | 16 |
4 files changed, 149 insertions, 9 deletions
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc index 0be9b04..c9b80ab 100644 --- a/chrome/installer/setup/uninstall.cc +++ b/chrome/installer/setup/uninstall.cc @@ -42,7 +42,6 @@ #include "base/string_util.h" #include "base/win_util.h" #include "base/wmi_util.h" -#include "chrome/app/google_update_settings.h" #include "chrome/app/result_codes.h" #include "chrome/common/chrome_constants.h" #include "chrome/installer/setup/setup_constants.h" @@ -51,6 +50,7 @@ #include "chrome/installer/util/l10n_string_util.h" #include "chrome/installer/util/logging_installer.h" #include "chrome/installer/util/google_update_constants.h" +#include "chrome/installer/util/google_update_settings.h" #include "chrome/installer/util/shell_util.h" #include "chrome/installer/util/util_constants.h" #include "chrome/installer/util/version.h" diff --git a/chrome/installer/util/google_update_settings.cc b/chrome/installer/util/google_update_settings.cc new file mode 100644 index 0000000..24ff326 --- /dev/null +++ b/chrome/installer/util/google_update_settings.cc @@ -0,0 +1,72 @@ +// Copyright 2008, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "chrome/installer/util/google_update_settings.h" + +#include "base/registry.h" + +namespace { + +const wchar_t kRegistryBase[] = + L"Software\\Google\\Update\\ClientState\\{8A69D345-D564-463c-AFF1-A69D9E530F96}"; +const wchar_t kUsageStatsFlag[] = L"usagestats"; +const wchar_t kBrowserUsed[] = L"browser"; +const wchar_t kSelectedLang[] = L"lang"; +const wchar_t kRLZBrand[] = L"brand"; + +} // namespace + +bool GoogleUpdateSettings::GetCollectStatsConsent() { + RegKey key(HKEY_CURRENT_USER, kRegistryBase, KEY_READ); + DWORD value; + if (!key.ReadValueDW(kUsageStatsFlag, &value)) + return false; + return (1 == value); +} + +bool GoogleUpdateSettings::SetCollectStatsConsent(bool consented) { + RegKey key(HKEY_CURRENT_USER, kRegistryBase, KEY_READ | KEY_WRITE); + DWORD value = consented ? 1 : 0; + return key.WriteValue(kUsageStatsFlag, value); +} + +bool GoogleUpdateSettings::GetBrowser(std::wstring* browser) { + RegKey key(HKEY_CURRENT_USER, kRegistryBase, KEY_READ); + return key.ReadValue(kBrowserUsed, browser); +} + +bool GoogleUpdateSettings::GetLanguage(std::wstring* language) { + RegKey key(HKEY_CURRENT_USER, kRegistryBase, KEY_READ); + return key.ReadValue(kSelectedLang, language); +} + +bool GoogleUpdateSettings::GetBrand(std::wstring* brand) { + RegKey key(HKEY_CURRENT_USER, kRegistryBase, KEY_READ); + return key.ReadValue(kRLZBrand, brand); +} diff --git a/chrome/installer/util/google_update_settings.h b/chrome/installer/util/google_update_settings.h new file mode 100644 index 0000000..6faea3e --- /dev/null +++ b/chrome/installer/util/google_update_settings.h @@ -0,0 +1,68 @@ +// Copyright 2008, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ +#define CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ + +#include <string> + +#include "base/basictypes.h" + +// This class provides accessors to the Google Update 'ClientState' information +// that recorded when the user downloads the chrome installer. It is +// google_update.exe responsability to write the initial values. +class GoogleUpdateSettings { + public: + // Returns whether the user has given consent to collect UMA data and send + // crash dumps to Google. This information is collected by the web server + // used to download the chrome installer. + static bool GetCollectStatsConsent(); + + // Sets the user consent to send UMA and crash dumps to Google. Returns + // false if the setting could not be recorded. + static bool SetCollectStatsConsent(bool consented); + + // Returns in 'browser' the browser used to download chrome as recorded + // Google Update. Returns false if the information is not available. + static bool GetBrowser(std::wstring* browser); + + // Returns in 'language' the language selected by the user when downloading + // chrome. This information is collected by the web server used to download + // the chrome installer. Returns false if the information is not available. + static bool GetLanguage(std::wstring* language); + + // Returns in 'brand' the RLZ brand code or distribution tag that has been + // assigned to a partner. Returns false if the information is not available. + static bool GetBrand(std::wstring* brand); + + private: + DISALLOW_IMPLICIT_CONSTRUCTORS(GoogleUpdateSettings); +}; + +#endif // CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_SETTINGS_H_ diff --git a/chrome/installer/util/util.vcproj b/chrome/installer/util/util.vcproj index a63254c..0eac40b 100644 --- a/chrome/installer/util/util.vcproj +++ b/chrome/installer/util/util.vcproj @@ -41,14 +41,6 @@ </Configurations> <Files> <File - RelativePath="..\..\app\google_update_settings.cc" - > - </File> - <File - RelativePath="..\..\app\google_update_settings.h" - > - </File> - <File RelativePath="copy_tree_work_item.cc" > </File> @@ -81,6 +73,14 @@ > </File> <File + RelativePath="google_update_settings.cc" + > + </File> + <File + RelativePath="google_update_settings.h" + > + </File> + <File RelativePath="helper.cc" > </File> |