Index: chrome/browser/metrics/chrome_metrics_service_client.cc |
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc |
index b1af4ef6ecbcb0294a9c5476fb4f538339abfe9b..46e896742dda24789373875ef8eeee5081158cb4 100644 |
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc |
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc |
@@ -40,6 +40,7 @@ |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/crash_keys.h" |
#include "chrome/common/features.h" |
+#include "chrome/common/pref_names.h" |
#include "chrome/installer/util/util_constants.h" |
#include "components/metrics/call_stack_profile_metrics_provider.h" |
#include "components/metrics/drive_metrics_provider.h" |
@@ -115,20 +116,6 @@ const int kMaxHistogramGatheringWaitDuration = 60000; // 60 seconds. |
// third_party/crashpad/crashpad/handler/handler_main.cc. |
const char kCrashpadHistogramAllocatorName[] = "CrashpadMetrics"; |
-// Checks whether it is the first time that cellular uploads logic should be |
-// enabled based on whether the the preference for that logic is initialized. |
-// This should happen only once as the used preference will be initialized |
-// afterwards in |UmaSessionStats.java|. |
-bool ShouldClearSavedMetrics() { |
-#if BUILDFLAG(ANDROID_JAVA_UI) |
- PrefService* local_state = g_browser_process->local_state(); |
- return !local_state->HasPrefPath(metrics::prefs::kMetricsReportingEnabled) && |
- metrics::IsCellularLogicEnabled(); |
-#else |
- return false; |
-#endif |
-} |
- |
void RegisterFileMetricsPreferences(PrefRegistrySimple* registry) { |
metrics::FileMetricsProvider::RegisterPrefs( |
registry, ChromeMetricsServiceClient::kBrowserMetricsName); |
@@ -416,17 +403,17 @@ ChromeMetricsServiceClient::GetMetricsReportingDefaultState() { |
} |
void ChromeMetricsServiceClient::Initialize() { |
- // Clear metrics reports if it is the first time cellular upload logic should |
- // apply to avoid sudden bulk uploads. It needs to be done before initializing |
- // metrics service so that metrics log manager is initialized correctly. |
- if (ShouldClearSavedMetrics()) { |
- PrefService* local_state = g_browser_process->local_state(); |
- local_state->ClearPref(metrics::prefs::kMetricsInitialLogs); |
- local_state->ClearPref(metrics::prefs::kMetricsOngoingLogs); |
- } |
+ PrefService* local_state = g_browser_process->local_state(); |
+ |
+ // Clear deprecated metrics preference for Android. |
+ // TODO(gayane): Cleanup this code after M60 when the pref would be cleared |
+ // from clients. |
+#if BUILDFLAG(ANDROID_JAVA_UI) |
+ local_state->ClearPref(prefs::kCrashReportingEnabled); |
+#endif |
- metrics_service_.reset(new metrics::MetricsService( |
- metrics_state_manager_, this, g_browser_process->local_state())); |
+ metrics_service_.reset( |
+ new metrics::MetricsService(metrics_state_manager_, this, local_state)); |
// Gets access to persistent metrics shared by sub-processes. |
metrics_service_->RegisterMetricsProvider( |
@@ -452,8 +439,7 @@ void ChromeMetricsServiceClient::Initialize() { |
base::Bind(&chrome::IsIncognitoSessionActive)))); |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>( |
- new ChromeStabilityMetricsProvider( |
- g_browser_process->local_state()))); |
+ new ChromeStabilityMetricsProvider(local_state))); |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>( |
new metrics::GPUMetricsProvider)); |
@@ -471,8 +457,7 @@ void ChromeMetricsServiceClient::Initialize() { |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>(drive_metrics_provider_)); |
- profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider( |
- base::Bind(&metrics::IsCellularLogicEnabled)); |
+ profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider(); |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); |
@@ -487,7 +472,7 @@ void ChromeMetricsServiceClient::Initialize() { |
#if BUILDFLAG(ANDROID_JAVA_UI) |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>( |
- new AndroidMetricsProvider(g_browser_process->local_state()))); |
+ new AndroidMetricsProvider(local_state))); |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>(new PageLoadMetricsProvider())); |
#endif // BUILDFLAG(ANDROID_JAVA_UI) |
@@ -514,8 +499,7 @@ void ChromeMetricsServiceClient::Initialize() { |
#endif // defined(OS_WIN) |
#if defined(ENABLE_PLUGINS) |
- plugin_metrics_provider_ = |
- new PluginMetricsProvider(g_browser_process->local_state()); |
+ plugin_metrics_provider_ = new PluginMetricsProvider(local_state); |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>(plugin_metrics_provider_)); |
#endif // defined(ENABLE_PLUGINS) |
@@ -534,7 +518,6 @@ void ChromeMetricsServiceClient::Initialize() { |
// Record default UMA state as opt-out for all Chrome OS users, if not |
// recorded yet. |
- PrefService* local_state = g_browser_process->local_state(); |
if (metrics::GetMetricsReportingDefaultState(local_state) == |
metrics::EnableMetricsDefault::DEFAULT_UNKNOWN) { |
metrics::RecordMetricsReportingDefaultState( |
@@ -557,12 +540,6 @@ void ChromeMetricsServiceClient::Initialize() { |
metrics_service_->RegisterMetricsProvider( |
std::unique_ptr<metrics::MetricsProvider>( |
new HttpsEngagementMetricsProvider())); |
- |
- // Clear stability metrics if it is the first time cellular upload logic |
- // should apply to avoid sudden bulk uploads. It needs to be done after all |
- // providers are registered. |
- if (ShouldClearSavedMetrics()) |
- metrics_service_->ClearSavedStabilityMetrics(); |
} |
void ChromeMetricsServiceClient::OnInitTaskGotHardwareClass() { |