Chromium Code Reviews| Index: chrome/browser/metrics/metrics_services_manager.cc |
| diff --git a/chrome/browser/metrics/metrics_services_manager.cc b/chrome/browser/metrics/metrics_services_manager.cc |
| index f64ee5f86f4deaa9ef008a11648a61990a6815fc..44fad5949a1b78fe14d3b985fcfc4a6cf396f90d 100644 |
| --- a/chrome/browser/metrics/metrics_services_manager.cc |
| +++ b/chrome/browser/metrics/metrics_services_manager.cc |
| @@ -18,6 +18,7 @@ |
| #include "chrome/installer/util/google_update_settings.h" |
| #include "components/metrics/metrics_service.h" |
| #include "components/metrics/metrics_state_manager.h" |
| +#include "components/rappor/rappor_pref_names.h" |
| #include "components/rappor/rappor_service.h" |
| #if defined(OS_CHROMEOS) |
| @@ -86,6 +87,15 @@ metrics::MetricsStateManager* MetricsServicesManager::GetMetricsStateManager() { |
| return metrics_state_manager_.get(); |
| } |
| +bool MetricsServicesManager::IsRapporEnabled() const { |
| + if (!local_state_->HasPrefPath(rappor::prefs::kRapporEnabled)) { |
| + // For upgrading users, derive a default setting from safe browsing. |
| + //bool sb_enabled = local_state_->GetBoolean(prefs::kSafeBrowsingEnabled); |
|
Steven Holte
2015/02/06 00:15:46
I'm not actually sure what the correct way to get
Alexei Svitkine (slow)
2015/02/06 16:43:33
Yes, prefs work everywhere. You need to call Regis
|
| + local_state_->SetBoolean(rappor::prefs::kRapporEnabled, true); |
| + } |
| + return local_state_->GetBoolean(rappor::prefs::kRapporEnabled); |
| +} |
| + |
| void MetricsServicesManager::UpdatePermissions(bool may_record, |
| bool may_upload) { |
| metrics::MetricsService* metrics = GetMetricsService(); |
| @@ -114,8 +124,18 @@ void MetricsServicesManager::UpdatePermissions(bool may_record, |
| metrics->Stop(); |
| } |
| - rappor::RecordingLevel recording_level = may_record ? |
| - rappor::FINE_LEVEL : rappor::RECORDING_DISABLED; |
| + rappor::RecordingLevel recording_level = rappor::RECORDING_DISABLED; |
| +#if defined(GOOGLE_CHROME_BUILD) |
| +#if defined(OS_IOS) || defined(OS_ANDROID) |
| + if (may_record) { |
| + recording_level = rappor::FINE_LEVEL; |
| + } |
| +#else // defined(OS_IOS) || defined(OS_ANDROID) |
| + if (IsRapporEnabled()) { |
| + recording_level = may_record ? rappor::FINE_LEVEL : rappor::COARSE_LEVEL; |
| + } |
| +#endif // defined(OS_IOS) || defined(OS_ANDROID) |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| GetRapporService()->Update(recording_level, may_upload); |
| } |