summaryrefslogtreecommitdiffstats
path: root/chrome/browser/metrics/metrics_services_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/metrics/metrics_services_manager.cc')
-rw-r--r--chrome/browser/metrics/metrics_services_manager.cc27
1 files changed, 5 insertions, 22 deletions
diff --git a/chrome/browser/metrics/metrics_services_manager.cc b/chrome/browser/metrics/metrics_services_manager.cc
index 8f9384f..4fdcf3f 100644
--- a/chrome/browser/metrics/metrics_services_manager.cc
+++ b/chrome/browser/metrics/metrics_services_manager.cc
@@ -10,6 +10,7 @@
#include "base/logging.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "chrome/browser/metrics/chrome_metrics_service_client.h"
#include "chrome/browser/metrics/variations/variations_service.h"
#include "chrome/browser/profiles/profile.h"
@@ -109,8 +110,7 @@ metrics::MetricsStateManager* MetricsServicesManager::GetMetricsStateManager() {
if (!metrics_state_manager_) {
metrics_state_manager_ = metrics::MetricsStateManager::Create(
local_state_,
- base::Bind(&MetricsServicesManager::IsMetricsReportingEnabled,
- base::Unretained(this)),
+ base::Bind(&ChromeMetricsServiceAccessor::IsMetricsReportingEnabled),
base::Bind(&PostStoreMetricsClientInfo),
base::Bind(&GoogleUpdateSettings::LoadMetricsClientInfo));
}
@@ -178,24 +178,7 @@ void MetricsServicesManager::UpdatePermissions(bool may_record,
GetRapporService()->Update(GetRapporRecordingLevel(may_record), may_upload);
}
-// TODO(asvitkine): This function does not report the correct value on Android,
-// see http://crbug.com/362192.
-bool MetricsServicesManager::IsMetricsReportingEnabled() const {
- // If the user permits metrics reporting with the checkbox in the
- // prefs, we turn on recording. We disable metrics completely for
- // non-official builds, or when field trials are forced.
- if (base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kForceFieldTrials))
- return false;
-
- bool enabled = false;
-#if defined(GOOGLE_CHROME_BUILD)
-#if defined(OS_CHROMEOS)
- chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref,
- &enabled);
-#else
- enabled = local_state_->GetBoolean(prefs::kMetricsReportingEnabled);
-#endif // #if defined(OS_CHROMEOS)
-#endif // defined(GOOGLE_CHROME_BUILD)
- return enabled;
+void MetricsServicesManager::UpdateUploadPermissions(bool may_upload) {
+ return UpdatePermissions(
+ ChromeMetricsServiceAccessor::IsMetricsReportingEnabled(), may_upload);
}