| 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 #include "remoting/host/usage_stats_consent.h" | 5 #include "remoting/host/usage_stats_consent.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/stringprintf.h" | 11 #include "base/stringprintf.h" |
| 12 #include "base/win/registry.h" | 12 #include "base/win/registry.h" |
| 13 #include "remoting/host/win/omaha.h" | 13 #include "remoting/host/win/omaha.h" |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 // The following strings are used to construct the registry key names where | 17 // The following strings are used to construct the registry key names where |
| 18 // we record whether the user has consented to crash dump collection. | 18 // we record whether the user has consented to crash dump collection. |
| 19 // the user's consent to collect crash dumps is recorded. | 19 // the user's consent to collect crash dumps is recorded. |
| 20 const wchar_t kOmahaClientStateKeyFormat[] = | 20 const wchar_t kOmahaClientStateKeyFormat[] = |
| 21 L"Software\\Google\\Update\\%ls\\%ls"; | 21 L"Software\\Google\\Update\\%ls\\%ls"; |
| 22 const wchar_t kOmahaClientState[] = L"ClientState"; | 22 const wchar_t kOmahaClientState[] = L"ClientState"; |
| 23 const wchar_t kOmahaClientStateMedium[] = L"ClientStateMedium"; | 23 const wchar_t kOmahaClientStateMedium[] = L"ClientStateMedium"; |
| 24 const wchar_t kOmahaUsagestatsValue[] = L"usagestats"; | 24 const wchar_t kOmahaUsagestatsValue[] = L"usagestats"; |
| 25 | 25 |
| 26 LONG ReadUsageStatsValue(const wchar_t* state_key, DWORD* usagestats_out) { | 26 LONG ReadUsageStatsValue(const wchar_t* state_key, DWORD* usagestats_out) { |
| 27 // presubmit: allow wstring | 27 // presubmit: allow wstring |
| 28 std::wstring client_state = StringPrintf(kOmahaClientStateKeyFormat, | 28 std::wstring client_state = base::StringPrintf(kOmahaClientStateKeyFormat, |
| 29 state_key, | 29 state_key, |
| 30 remoting::kHostOmahaAppid); | 30 remoting::kHostOmahaAppid); |
| 31 base::win::RegKey key; | 31 base::win::RegKey key; |
| 32 LONG result = key.Open(HKEY_LOCAL_MACHINE, client_state.c_str(), KEY_READ); | 32 LONG result = key.Open(HKEY_LOCAL_MACHINE, client_state.c_str(), KEY_READ); |
| 33 if (result != ERROR_SUCCESS) { | 33 if (result != ERROR_SUCCESS) { |
| 34 return result; | 34 return result; |
| 35 } | 35 } |
| 36 | 36 |
| 37 return key.ReadValueDW(kOmahaUsagestatsValue, usagestats_out); | 37 return key.ReadValueDW(kOmahaUsagestatsValue, usagestats_out); |
| 38 } | 38 } |
| 39 | 39 |
| 40 } // namespace | 40 } // namespace |
| (...skipping 25 matching lines...) Expand all Loading... |
| 66 | 66 |
| 67 bool IsUsageStatsAllowed() { | 67 bool IsUsageStatsAllowed() { |
| 68 bool allowed; | 68 bool allowed; |
| 69 bool set_by_policy; | 69 bool set_by_policy; |
| 70 return GetUsageStatsConsent(&allowed, &set_by_policy) && allowed; | 70 return GetUsageStatsConsent(&allowed, &set_by_policy) && allowed; |
| 71 } | 71 } |
| 72 | 72 |
| 73 bool SetUsageStatsConsent(bool allowed) { | 73 bool SetUsageStatsConsent(bool allowed) { |
| 74 DWORD value = allowed; | 74 DWORD value = allowed; |
| 75 // presubmit: allow wstring | 75 // presubmit: allow wstring |
| 76 std::wstring client_state = StringPrintf(kOmahaClientStateKeyFormat, | 76 std::wstring client_state = base::StringPrintf(kOmahaClientStateKeyFormat, |
| 77 kOmahaClientStateMedium, | 77 kOmahaClientStateMedium, |
| 78 kHostOmahaAppid); | 78 kHostOmahaAppid); |
| 79 base::win::RegKey key; | 79 base::win::RegKey key; |
| 80 LONG result = key.Create(HKEY_LOCAL_MACHINE, client_state.c_str(), | 80 LONG result = key.Create(HKEY_LOCAL_MACHINE, client_state.c_str(), |
| 81 KEY_SET_VALUE); | 81 KEY_SET_VALUE); |
| 82 if (result == ERROR_SUCCESS) { | 82 if (result == ERROR_SUCCESS) { |
| 83 result = key.WriteValue(kOmahaUsagestatsValue, value); | 83 result = key.WriteValue(kOmahaUsagestatsValue, value); |
| 84 if (result == ERROR_SUCCESS) { | 84 if (result == ERROR_SUCCESS) { |
| 85 return true; | 85 return true; |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| 89 LOG_GETLASTERROR(ERROR) | 89 LOG_GETLASTERROR(ERROR) |
| 90 << "Failed to record the user's consent to crash dump reporting"; | 90 << "Failed to record the user's consent to crash dump reporting"; |
| 91 return false; | 91 return false; |
| 92 } | 92 } |
| 93 | 93 |
| 94 } // namespace remoting | 94 } // namespace remoting |
| OLD | NEW |