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

Side by Side Diff: chrome/browser/metrics/metrics_services_manager.cc

Issue 293393010: Move initial metrics gathering tasks out of MetricsService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/metrics/metrics_services_manager.h" 5 #include "chrome/browser/metrics/metrics_services_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/metrics/chrome_metrics_service_client.h" 9 #include "chrome/browser/metrics/chrome_metrics_service_client.h"
10 #include "chrome/browser/metrics/extensions_metrics_provider.h"
11 #include "chrome/browser/metrics/metrics_service.h" 10 #include "chrome/browser/metrics/metrics_service.h"
12 #include "chrome/browser/metrics/variations/variations_service.h" 11 #include "chrome/browser/metrics/variations/variations_service.h"
13 #include "chrome/common/chrome_switches.h" 12 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/pref_names.h" 13 #include "chrome/common/pref_names.h"
15 #include "components/metrics/metrics_state_manager.h" 14 #include "components/metrics/metrics_state_manager.h"
16 #include "components/rappor/rappor_service.h" 15 #include "components/rappor/rappor_service.h"
17 16
18 #if defined(OS_CHROMEOS) 17 #if defined(OS_CHROMEOS)
19 #include "chrome/browser/chromeos/settings/cros_settings.h" 18 #include "chrome/browser/chromeos/settings/cros_settings.h"
20 #endif 19 #endif
21 20
22 MetricsServicesManager::MetricsServicesManager(PrefService* local_state) 21 MetricsServicesManager::MetricsServicesManager(PrefService* local_state)
23 : local_state_(local_state) { 22 : local_state_(local_state) {
24 DCHECK(local_state); 23 DCHECK(local_state);
25 } 24 }
26 25
27 MetricsServicesManager::~MetricsServicesManager() { 26 MetricsServicesManager::~MetricsServicesManager() {
28 } 27 }
29 28
30 MetricsService* MetricsServicesManager::GetMetricsService() { 29 MetricsService* MetricsServicesManager::GetMetricsService() {
31 DCHECK(thread_checker_.CalledOnValidThread()); 30 DCHECK(thread_checker_.CalledOnValidThread());
32 if (!metrics_service_client_) { 31 return GetChromeMetricsServiceClient()->metrics_service();
33 metrics_service_client_ =
34 ChromeMetricsServiceClient::Create(GetMetricsStateManager(),
35 local_state_);
36 metrics_service_client_->metrics_service()->RegisterMetricsProvider(
37 scoped_ptr<metrics::MetricsProvider>(
38 new ExtensionsMetricsProvider(GetMetricsStateManager())));
39 }
40 return metrics_service_client_->metrics_service();
41 } 32 }
42 33
43 rappor::RapporService* MetricsServicesManager::GetRapporService() { 34 rappor::RapporService* MetricsServicesManager::GetRapporService() {
44 DCHECK(thread_checker_.CalledOnValidThread()); 35 DCHECK(thread_checker_.CalledOnValidThread());
45 if (!rappor_service_) 36 if (!rappor_service_)
46 rappor_service_.reset(new rappor::RapporService); 37 rappor_service_.reset(new rappor::RapporService);
47 return rappor_service_.get(); 38 return rappor_service_.get();
48 } 39 }
49 40
50 chrome_variations::VariationsService* 41 chrome_variations::VariationsService*
51 MetricsServicesManager::GetVariationsService() { 42 MetricsServicesManager::GetVariationsService() {
52 DCHECK(thread_checker_.CalledOnValidThread()); 43 DCHECK(thread_checker_.CalledOnValidThread());
53 if (!variations_service_) { 44 if (!variations_service_) {
54 variations_service_ = 45 variations_service_ =
55 chrome_variations::VariationsService::Create(local_state_, 46 chrome_variations::VariationsService::Create(local_state_,
56 GetMetricsStateManager()); 47 GetMetricsStateManager());
57 } 48 }
58 return variations_service_.get(); 49 return variations_service_.get();
59 } 50 }
60 51
61 void MetricsServicesManager::OnPluginLoadingError( 52 void MetricsServicesManager::OnPluginLoadingError(
62 const base::FilePath& plugin_path) { 53 const base::FilePath& plugin_path) {
63 GetMetricsService()->LogPluginLoadingError(plugin_path); 54 GetChromeMetricsServiceClient()->LogPluginLoadingError(plugin_path);
55 }
56
57 ChromeMetricsServiceClient*
58 MetricsServicesManager::GetChromeMetricsServiceClient() {
59 DCHECK(thread_checker_.CalledOnValidThread());
60 if (!metrics_service_client_) {
61 metrics_service_client_ = ChromeMetricsServiceClient::Create(
62 GetMetricsStateManager(), local_state_);
63 }
64 return metrics_service_client_.get();
64 } 65 }
65 66
66 metrics::MetricsStateManager* MetricsServicesManager::GetMetricsStateManager() { 67 metrics::MetricsStateManager* MetricsServicesManager::GetMetricsStateManager() {
67 DCHECK(thread_checker_.CalledOnValidThread()); 68 DCHECK(thread_checker_.CalledOnValidThread());
68 if (!metrics_state_manager_) { 69 if (!metrics_state_manager_) {
69 metrics_state_manager_ = metrics::MetricsStateManager::Create( 70 metrics_state_manager_ = metrics::MetricsStateManager::Create(
70 local_state_, 71 local_state_,
71 base::Bind(&MetricsServicesManager::IsMetricsReportingEnabled, 72 base::Bind(&MetricsServicesManager::IsMetricsReportingEnabled,
72 base::Unretained(this))); 73 base::Unretained(this)));
73 } 74 }
(...skipping 13 matching lines...) Expand all
87 #if defined(GOOGLE_CHROME_BUILD) 88 #if defined(GOOGLE_CHROME_BUILD)
88 #if defined(OS_CHROMEOS) 89 #if defined(OS_CHROMEOS)
89 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref, 90 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref,
90 &enabled); 91 &enabled);
91 #else 92 #else
92 enabled = local_state_->GetBoolean(prefs::kMetricsReportingEnabled); 93 enabled = local_state_->GetBoolean(prefs::kMetricsReportingEnabled);
93 #endif // #if defined(OS_CHROMEOS) 94 #endif // #if defined(OS_CHROMEOS)
94 #endif // defined(GOOGLE_CHROME_BUILD) 95 #endif // defined(GOOGLE_CHROME_BUILD)
95 return enabled; 96 return enabled;
96 } 97 }
OLDNEW
« no previous file with comments | « chrome/browser/metrics/metrics_services_manager.h ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698