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

Unified Diff: components/safe_browsing_db/safe_browsing_prefs.cc

Issue 2739643003: Make Sber1/2 pref metrics into Nullable Booleans so we can track how often these prefs are unset. (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/safe_browsing_db/safe_browsing_prefs.cc
diff --git a/components/safe_browsing_db/safe_browsing_prefs.cc b/components/safe_browsing_db/safe_browsing_prefs.cc
index 66c1dbb6e477866287b7ecf8bbc8d27b4d5ad2af..1e5ff213c55f9916ac9703c8cbe2fc6d18a9a9fa 100644
--- a/components/safe_browsing_db/safe_browsing_prefs.cc
+++ b/components/safe_browsing_db/safe_browsing_prefs.cc
@@ -57,6 +57,25 @@ enum ActiveExtendedReportingPref {
MAX_SBER_PREF
};
+// A histogram for tracking a nullable boolean, which can be false, true or
+// null. These values are written to logs. New enum values can be added, but
+// existing enums must never be renumbered or deleted and reused.
+enum NullableBoolean {
+ NULLABLE_BOOLEAN_FALSE = 0,
+ NULLABLE_BOOLEAN_TRUE = 1,
+ NULLABLE_BOOLEAN_NULL = 2,
+ MAX_NULLABLE_BOOLEAN
+};
+
+NullableBoolean GetPrefValueOrNull(const PrefService& prefs,
+ const std::string& pref_name) {
+ if (!prefs.HasPrefPath(pref_name)) {
+ return NULLABLE_BOOLEAN_NULL;
+ }
+ return prefs.GetBoolean(pref_name) ? NULLABLE_BOOLEAN_TRUE
+ : NULLABLE_BOOLEAN_FALSE;
+}
+
// Update the correct UMA metric based on which pref was changed and which UI
// the change was made on.
void RecordExtendedReportingPrefChanged(
@@ -279,23 +298,27 @@ void RecordExtendedReportingMetrics(const PrefService& prefs) {
// These metrics track the Scout transition.
if (prefs.GetBoolean(prefs::kSafeBrowsingScoutGroupSelected)) {
// Users in the Scout group: currently seeing the Scout opt-in.
- UMA_HISTOGRAM_BOOLEAN(
+ UMA_HISTOGRAM_ENUMERATION(
"SafeBrowsing.Pref.Scout.ScoutGroup.SBER1Pref",
- prefs.GetBoolean(prefs::kSafeBrowsingExtendedReportingEnabled));
- UMA_HISTOGRAM_BOOLEAN(
+ GetPrefValueOrNull(prefs, prefs::kSafeBrowsingExtendedReportingEnabled),
+ MAX_NULLABLE_BOOLEAN);
+ UMA_HISTOGRAM_ENUMERATION(
"SafeBrowsing.Pref.Scout.ScoutGroup.SBER2Pref",
- prefs.GetBoolean(prefs::kSafeBrowsingScoutReportingEnabled));
+ GetPrefValueOrNull(prefs, prefs::kSafeBrowsingScoutReportingEnabled),
+ MAX_NULLABLE_BOOLEAN);
} else {
// Users not in the Scout group: currently seeing the SBER opt-in.
- UMA_HISTOGRAM_BOOLEAN(
+ UMA_HISTOGRAM_ENUMERATION(
"SafeBrowsing.Pref.Scout.NoScoutGroup.SBER1Pref",
- prefs.GetBoolean(prefs::kSafeBrowsingExtendedReportingEnabled));
+ GetPrefValueOrNull(prefs, prefs::kSafeBrowsingExtendedReportingEnabled),
+ MAX_NULLABLE_BOOLEAN);
// The following metric is a corner case. User was previously in the
// Scout group and was able to opt-in to the Scout pref, but was since
// removed from the Scout group (eg: by rolling back a Scout experiment).
- UMA_HISTOGRAM_BOOLEAN(
+ UMA_HISTOGRAM_ENUMERATION(
"SafeBrowsing.Pref.Scout.NoScoutGroup.SBER2Pref",
- prefs.GetBoolean(prefs::kSafeBrowsingScoutReportingEnabled));
+ GetPrefValueOrNull(prefs, prefs::kSafeBrowsingScoutReportingEnabled),
+ MAX_NULLABLE_BOOLEAN);
}
}
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698