From 6e93e526a35e8001a0ec46cc60e9230863be289c Mon Sep 17 00:00:00 2001 From: "rahulk@google.com" Date: Thu, 14 Aug 2008 19:28:17 +0000 Subject: 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 --- chrome/app/breakpad.cc | 2 +- chrome/app/chrome_exe.vcproj | 12 +---- chrome/app/google_update_settings.cc | 72 ------------------------- chrome/app/google_update_settings.h | 68 ----------------------- chrome/browser/browser_main.cc | 2 +- chrome/browser/metrics_service.cc | 2 +- chrome/browser/rlz/rlz.cc | 2 +- chrome/chrome.sln | 1 + chrome/installer/setup/uninstall.cc | 2 +- chrome/installer/util/google_update_settings.cc | 72 +++++++++++++++++++++++++ chrome/installer/util/google_update_settings.h | 68 +++++++++++++++++++++++ chrome/installer/util/util.vcproj | 16 +++--- 12 files changed, 156 insertions(+), 163 deletions(-) delete mode 100644 chrome/app/google_update_settings.cc delete mode 100644 chrome/app/google_update_settings.h create mode 100644 chrome/installer/util/google_update_settings.cc create mode 100644 chrome/installer/util/google_update_settings.h (limited to 'chrome') diff --git a/chrome/app/breakpad.cc b/chrome/app/breakpad.cc index bd66618..51e4950 100644 --- a/chrome/app/breakpad.cc +++ b/chrome/app/breakpad.cc @@ -41,8 +41,8 @@ #include "base/string_util.h" #include "base/win_util.h" #include "chrome/app/google_update_client.h" -#include "chrome/app/google_update_settings.h" #include "chrome/common/env_vars.h" +#include "chrome/installer/util/google_update_settings.h" #include "breakpad/src/client/windows/handler/exception_handler.h" namespace { diff --git a/chrome/app/chrome_exe.vcproj b/chrome/app/chrome_exe.vcproj index 321814d..a41ff41 100644 --- a/chrome/app/chrome_exe.vcproj +++ b/chrome/app/chrome_exe.vcproj @@ -21,7 +21,7 @@ - - - - diff --git a/chrome/app/google_update_settings.cc b/chrome/app/google_update_settings.cc deleted file mode 100644 index eb8eb4a..0000000 --- a/chrome/app/google_update_settings.cc +++ /dev/null @@ -1,72 +0,0 @@ -// 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/app/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/app/google_update_settings.h b/chrome/app/google_update_settings.h deleted file mode 100644 index 9307256..0000000 --- a/chrome/app/google_update_settings.h +++ /dev/null @@ -1,68 +0,0 @@ -// 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_APP_GOOGLE_UPDATE_SETTINGS_H__ -#define CHROME_APP_GOOGLE_UPDATE_SETTINGS_H__ - -#include - -#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_APP_GOOGLE_UPDATE_SETTINGS_H__ diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index c3531a2..24f07ce 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -40,7 +40,6 @@ #include "base/registry.h" #include "base/string_util.h" #include "base/tracked_objects.h" -#include "chrome/app/google_update_settings.h" #include "chrome/app/result_codes.h" #include "chrome/browser/automation/automation_provider.h" #include "chrome/browser/browser.h" @@ -73,6 +72,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/pref_service.h" #include "chrome/common/win_util.h" +#include "chrome/installer/util/google_update_settings.h" #include "chrome/views/accelerator_handler.h" #include "net/base/net_module.h" #include "net/base/net_resources.h" diff --git a/chrome/browser/metrics_service.cc b/chrome/browser/metrics_service.cc index 524b4eb..038ebf9 100644 --- a/chrome/browser/metrics_service.cc +++ b/chrome/browser/metrics_service.cc @@ -187,7 +187,6 @@ #include "base/path_service.h" #include "base/string_util.h" #include "base/task.h" -#include "chrome/app/google_update_settings.h" #include "chrome/browser/bookmark_bar_model.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_list.h" @@ -204,6 +203,7 @@ #include "chrome/common/libxml_utils.h" #include "chrome/common/pref_names.h" #include "chrome/common/pref_service.h" +#include "chrome/installer/util/google_update_settings.h" #include "googleurl/src/gurl.h" #include "net/base/load_flags.h" #include "third_party/bzip2/bzlib.h" diff --git a/chrome/browser/rlz/rlz.cc b/chrome/browser/rlz/rlz.cc index 00cee6d..9bf2600 100644 --- a/chrome/browser/rlz/rlz.cc +++ b/chrome/browser/rlz/rlz.cc @@ -41,13 +41,13 @@ #include "base/path_service.h" #include "base/task.h" #include "base/thread.h" -#include "chrome/app/google_update_settings.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/profile.h" #include "chrome/browser/profile_manager.h" #include "chrome/browser/template_url_model.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/env_vars.h" +#include "chrome/installer/util/google_update_settings.h" //#include "chrome/common/pref_names.h" //#include "chrome/common/pref_service.h" diff --git a/chrome/chrome.sln b/chrome/chrome.sln index 48d30e1..db50143 100644 --- a/chrome/chrome.sln +++ b/chrome/chrome.sln @@ -210,6 +210,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chrome_exe", "app\chrome_ex {B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {B55CA863-B374-4BAF-95AC-539E4FA4C90C} {C0A7EE2C-2A6D-45BE-BA78-6D006FDF52D9} = {C0A7EE2C-2A6D-45BE-BA78-6D006FDF52D9} {CAE2D1E6-3F19-492F-A35C-68AA7ACAD6D3} = {CAE2D1E6-3F19-492F-A35C-68AA7ACAD6D3} + {EFBB1436-A63F-4CD8-9E99-B89226E782EC} = {EFBB1436-A63F-4CD8-9E99-B89226E782EC} {FD683DD6-D9BF-4B1B-AB6D-A3AC03EDAA4D} = {FD683DD6-D9BF-4B1B-AB6D-A3AC03EDAA4D} EndProjectSection EndProject 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 + +#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 @@ - - - - @@ -81,6 +73,14 @@ > + + + + -- cgit v1.1