Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1375)

Unified Diff: chrome/browser/metrics/metrics_services_manager.cc

Issue 1412113002: Componentize MetricsServicesManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@refactor_metrics_services_manager
Patch Set: Rebase Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index 277eb54fd6d81d3eed5fe280b2f541869531758f..0000000000000000000000000000000000000000
--- a/chrome/browser/metrics/metrics_services_manager.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/metrics/metrics_services_manager.h"
-
-#include "base/logging.h"
-#include "chrome/browser/metrics/metrics_services_manager_client.h"
-#include "components/metrics/metrics_service.h"
-#include "components/metrics/metrics_service_client.h"
-#include "components/metrics/metrics_state_manager.h"
-#include "components/rappor/rappor_service.h"
-#include "components/variations/service/variations_service.h"
-
-MetricsServicesManager::MetricsServicesManager(
- scoped_ptr<MetricsServicesManagerClient> client)
- : client_(client.Pass()), may_upload_(false), may_record_(false) {
- DCHECK(client_);
-}
-
-MetricsServicesManager::~MetricsServicesManager() {
-}
-
-metrics::MetricsService* MetricsServicesManager::GetMetricsService() {
- DCHECK(thread_checker_.CalledOnValidThread());
- return GetMetricsServiceClient()->GetMetricsService();
-}
-
-rappor::RapporService* MetricsServicesManager::GetRapporService() {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (!rappor_service_) {
- rappor_service_ = client_->CreateRapporService();
- rappor_service_->Initialize(client_->GetURLRequestContext());
- }
- return rappor_service_.get();
-}
-
-variations::VariationsService* MetricsServicesManager::GetVariationsService() {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (!variations_service_)
- variations_service_ = client_->CreateVariationsService();
- return variations_service_.get();
-}
-
-void MetricsServicesManager::OnPluginLoadingError(
- const base::FilePath& plugin_path) {
- GetMetricsServiceClient()->OnPluginLoadingError(plugin_path);
-}
-
-metrics::MetricsServiceClient*
-MetricsServicesManager::GetMetricsServiceClient() {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (!metrics_service_client_)
- metrics_service_client_ = client_->CreateMetricsServiceClient();
- return metrics_service_client_.get();
-}
-
-void MetricsServicesManager::UpdatePermissions(bool may_record,
- bool may_upload) {
- DCHECK(thread_checker_.CalledOnValidThread());
- // Stash the current permissions so that we can update the RapporService
- // correctly when the Rappor preference changes. The metrics recording
- // preference partially determines the initial rappor setting, and also
- // controls whether FINE metrics are sent.
- may_record_ = may_record;
- may_upload_ = may_upload;
- UpdateRunningServices();
-}
-
-void MetricsServicesManager::UpdateRunningServices() {
- DCHECK(thread_checker_.CalledOnValidThread());
- metrics::MetricsService* metrics = GetMetricsService();
-
- if (client_->OnlyDoMetricsRecording()) {
- metrics->StartRecordingForTests();
- GetRapporService()->Update(
- rappor::UMA_RAPPOR_GROUP | rappor::SAFEBROWSING_RAPPOR_GROUP,
- false);
- return;
- }
-
- if (may_record_) {
- if (!metrics->recording_active())
- metrics->Start();
-
- if (may_upload_)
- metrics->EnableReporting();
- else
- metrics->DisableReporting();
- } else {
- metrics->Stop();
- }
-
- int recording_groups = 0;
-#if defined(GOOGLE_CHROME_BUILD)
- if (may_record_)
- recording_groups |= rappor::UMA_RAPPOR_GROUP;
-
- // NOTE: It is safe to use a raw pointer to |this| because this object owns
- // |client_|, and the contract of
- // MetricsServicesManagerClient::IsSafeBrowsingEnabled() states that the
- // callback passed in must not be used beyond the lifetime of the client
- // instance.
- base::Closure on_safe_browsing_update_callback = base::Bind(
- &MetricsServicesManager::UpdateRunningServices, base::Unretained(this));
- if (client_->IsSafeBrowsingEnabled(on_safe_browsing_update_callback))
- recording_groups |= rappor::SAFEBROWSING_RAPPOR_GROUP;
-#endif // defined(GOOGLE_CHROME_BUILD)
- GetRapporService()->Update(recording_groups, may_upload_);
-}
-
-void MetricsServicesManager::UpdateUploadPermissions(bool may_upload) {
- return UpdatePermissions(client_->IsMetricsReportingEnabled(), may_upload);
-}

Powered by Google App Engine
This is Rietveld 408576698