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

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

Issue 294043008: Introduce AndroidMetricsProvider class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 7 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/android_metrics_provider_android.cc
===================================================================
--- chrome/browser/metrics/android_metrics_provider_android.cc (working copy)
+++ chrome/browser/metrics/android_metrics_provider_android.cc (working copy)
@@ -2,15 +2,13 @@
// 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_service.h"
+#include "chrome/browser/metrics/android_metrics_provider_android.h"
#include "base/metrics/histogram.h"
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
#include "base/prefs/scoped_user_pref_update.h"
#include "base/values.h"
-#include "chrome/browser/android/activity_type_ids.h"
-#include "chrome/browser/browser_process.h"
#include "chrome/common/pref_names.h"
namespace {
@@ -31,22 +29,30 @@
} // namespace
-// static
-void MetricsService::RegisterPrefsAndroid(PrefRegistrySimple* registry) {
- registry->RegisterIntegerPref(prefs::kStabilityForegroundActivityType,
- ActivityTypeIds::ACTIVITY_NONE);
- registry->RegisterIntegerPref(prefs::kStabilityLaunchedActivityFlags, 0);
- registry->RegisterListPref(prefs::kStabilityLaunchedActivityCounts);
- registry->RegisterListPref(prefs::kStabilityCrashedActivityCounts);
+AndroidMetricsProvider::AndroidMetricsProvider(PrefService* local_state)
+ : local_state_(local_state) {
+ DCHECK(local_state_);
Ilya Sherman 2014/05/21 09:15:28 nit: This seems unnecessary.
Alexei Svitkine (slow) 2014/05/21 09:48:47 Done.
+ LogAndroidStabilityToPrefs();
}
-void MetricsService::LogAndroidStabilityToPrefs(PrefService* pref) {
+AndroidMetricsProvider::~AndroidMetricsProvider() {
+}
+
+
+void AndroidMetricsProvider::ProvideStabilityMetrics(
+ metrics::SystemProfileProto_Stability* stability_proto) {
+ ConvertAndroidStabilityPrefsToHistograms();
+}
+
+void AndroidMetricsProvider::LogAndroidStabilityToPrefs() {
// Track which Activities were launched by the user.
// A 'launch' is defined as starting the Activity at least once during a
// UMA session. Multiple launches are counted only once since it is possible
// for users to hop between Activities (e.g. entering and leaving Settings).
- int launched = pref->GetInteger(prefs::kStabilityLaunchedActivityFlags);
- ListPrefUpdate update_launches(pref, prefs::kStabilityLaunchedActivityCounts);
+ const int launched =
+ local_state_->GetInteger(prefs::kStabilityLaunchedActivityFlags);
+ ListPrefUpdate update_launches(local_state_,
+ prefs::kStabilityLaunchedActivityCounts);
base::ListValue* launch_counts = update_launches.Get();
for (int activity_type = ActivityTypeIds::ACTIVITY_NONE;
activity_type < ActivityTypeIds::ACTIVITY_MAX_VALUE;
@@ -54,27 +60,30 @@
if (launched & GetActivityFlag(activity_type))
IncrementListValue(launch_counts, activity_type);
}
- pref->SetInteger(prefs::kStabilityLaunchedActivityFlags, 0);
+ local_state_->SetInteger(prefs::kStabilityLaunchedActivityFlags, 0);
// Track any Activities that were in the foreground when Chrome died.
// These Activities failed to be recorded as leaving the foreground, so Chrome
// couldn't have ended the UMA session cleanly. Record them as crashing.
- int foreground = pref->GetInteger(prefs::kStabilityForegroundActivityType);
+ const int foreground =
+ local_state_->GetInteger(prefs::kStabilityForegroundActivityType);
if (foreground != ActivityTypeIds::ACTIVITY_NONE) {
- ListPrefUpdate update_crashes(pref, prefs::kStabilityCrashedActivityCounts);
+ ListPrefUpdate update_crashes(local_state_,
+ prefs::kStabilityCrashedActivityCounts);
base::ListValue* crash_counts = update_crashes.Get();
IncrementListValue(crash_counts, foreground);
- pref->SetInteger(prefs::kStabilityForegroundActivityType,
- ActivityTypeIds::ACTIVITY_NONE);
+ local_state_->SetInteger(prefs::kStabilityForegroundActivityType,
+ ActivityTypeIds::ACTIVITY_NONE);
}
- pref->CommitPendingWrite();
+ local_state_->CommitPendingWrite();
}
-void MetricsService::ConvertAndroidStabilityPrefsToHistograms(
- PrefService* pref) {
- ListPrefUpdate launch_updater(pref, prefs::kStabilityLaunchedActivityCounts);
- ListPrefUpdate crash_updater(pref, prefs::kStabilityCrashedActivityCounts);
+void AndroidMetricsProvider::ConvertAndroidStabilityPrefsToHistograms(f) {
Ilya Sherman 2014/05/21 09:15:28 nit: "(f)" -> "()"
Alexei Svitkine (slow) 2014/05/21 09:48:47 Done.
+ ListPrefUpdate launch_updater(local_state_,
+ prefs::kStabilityLaunchedActivityCounts);
+ ListPrefUpdate crash_updater(local_state_,
+ prefs::kStabilityCrashedActivityCounts);
base::ListValue* launch_counts = launch_updater.Get();
base::ListValue* crash_counts = crash_updater.Get();
@@ -106,25 +115,34 @@
crash_counts->Clear();
}
-void MetricsService::OnForegroundActivityChanged(PrefService* pref,
- ActivityTypeIds::Type type) {
- DCHECK(type < ActivityTypeIds::ACTIVITY_MAX_VALUE);
+void AndroidMetricsProvider::OnForegroundActivityChanged(
+ ActivityTypeIds::Type type) {
+ DCHECK_LT(type, ActivityTypeIds::ACTIVITY_MAX_VALUE);
- int activity_type = pref->GetInteger(prefs::kStabilityForegroundActivityType);
- if (activity_type == type)
+ if (type == local_state_->GetInteger(prefs::kStabilityForegroundActivityType))
return;
// Record that the Activity is now in the foreground.
- pref->SetInteger(prefs::kStabilityForegroundActivityType, type);
+ local_state_->SetInteger(prefs::kStabilityForegroundActivityType, type);
// Record that the Activity was launched this sesaion.
// The pref stores a set of flags ORed together, where each set flag
// corresponds to a launched Activity type.
- int launched = pref->GetInteger(prefs::kStabilityLaunchedActivityFlags);
+ int launched =
+ local_state_->GetInteger(prefs::kStabilityLaunchedActivityFlags);
if (type != ActivityTypeIds::ACTIVITY_NONE) {
launched |= GetActivityFlag(type);
- pref->SetInteger(prefs::kStabilityLaunchedActivityFlags, launched);
+ local_state_->SetInteger(prefs::kStabilityLaunchedActivityFlags, launched);
}
- pref->CommitPendingWrite();
+ local_state_->CommitPendingWrite();
}
+
+// static
+void AndroidMetricsProvider::RegisterPrefs(PrefRegistrySimple* registry) {
+ registry->RegisterIntegerPref(prefs::kStabilityForegroundActivityType,
+ ActivityTypeIds::ACTIVITY_NONE);
+ registry->RegisterIntegerPref(prefs::kStabilityLaunchedActivityFlags, 0);
+ registry->RegisterListPref(prefs::kStabilityLaunchedActivityCounts);
+ registry->RegisterListPref(prefs::kStabilityCrashedActivityCounts);
+}

Powered by Google App Engine
This is Rietveld 408576698