summaryrefslogtreecommitdiff
path: root/chromium/components/variations/android
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/variations/android')
-rw-r--r--chromium/components/variations/android/BUILD.gn3
-rw-r--r--chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java25
2 files changed, 27 insertions, 1 deletions
diff --git a/chromium/components/variations/android/BUILD.gn b/chromium/components/variations/android/BUILD.gn
index 287ad61216b..11f35e73564 100644
--- a/chromium/components/variations/android/BUILD.gn
+++ b/chromium/components/variations/android/BUILD.gn
@@ -28,6 +28,9 @@ java_library("components_variations_junit_tests") {
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
+ "//third_party/android_deps:robolectric_all_java",
"//third_party/hamcrest:hamcrest_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
]
}
diff --git a/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java b/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
index 0cc411f5c6a..bd74bffa4a4 100644
--- a/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
+++ b/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
@@ -8,6 +8,7 @@ import android.util.Base64;
import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.metrics.RecordHistogram;
import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo;
import java.text.ParseException;
@@ -32,6 +33,20 @@ public class VariationsSeedBridge {
protected static final String VARIATIONS_FIRST_RUN_SEED_NATIVE_STORED =
"variations_seed_native_stored";
+ // These must be kept in sync with VariationsFirstRunPrefEvents in enums.xml.
+ private static final int DEBUG_PREFS_STORED = 0;
+ private static final int DEBUG_PREFS_CLEARED = 1;
+ private static final int DEBUG_PREFS_RETRIEVED_DATA_EMPTY = 2;
+ private static final int DEBUG_PREFS_RETRIEVED_DATA_NON_EMPTY = 3;
+ private static final int DEBUG_PREFS_CLEARED_NON_EMPTY = 4;
+ private static final int DEBUG_PREFS_MAX = 5;
+
+ // TODO(crbug.com/1090968): Debug histogram to investigate a regression. Remove when resolved.
+ private static void logDebugHistogram(int value) {
+ RecordHistogram.recordEnumeratedHistogram(
+ "Variations.FirstRunPrefsDebug", value, DEBUG_PREFS_MAX);
+ }
+
protected static String getVariationsFirstRunSeedPref(String prefName) {
return ContextUtils.getAppSharedPreferences().getString(prefName, "");
}
@@ -52,10 +67,14 @@ public class VariationsSeedBridge {
.putLong(VARIATIONS_FIRST_RUN_SEED_DATE, date)
.putBoolean(VARIATIONS_FIRST_RUN_SEED_IS_GZIP_COMPRESSED, isGzipCompressed)
.apply();
+ logDebugHistogram(DEBUG_PREFS_STORED);
}
@CalledByNative
private static void clearFirstRunPrefs() {
+ if (hasJavaPref()) {
+ logDebugHistogram(DEBUG_PREFS_CLEARED_NON_EMPTY);
+ }
ContextUtils.getAppSharedPreferences()
.edit()
.remove(VARIATIONS_FIRST_RUN_SEED_BASE64)
@@ -65,6 +84,7 @@ public class VariationsSeedBridge {
.remove(VARIATIONS_FIRST_RUN_SEED_DATE_HEADER)
.remove(VARIATIONS_FIRST_RUN_SEED_IS_GZIP_COMPRESSED)
.apply();
+ logDebugHistogram(DEBUG_PREFS_CLEARED);
}
/**
@@ -94,8 +114,11 @@ public class VariationsSeedBridge {
@CalledByNative
private static byte[] getVariationsFirstRunSeedData() {
- return Base64.decode(
+ byte[] data = Base64.decode(
getVariationsFirstRunSeedPref(VARIATIONS_FIRST_RUN_SEED_BASE64), Base64.NO_WRAP);
+ logDebugHistogram(data.length == 0 ? DEBUG_PREFS_RETRIEVED_DATA_EMPTY
+ : DEBUG_PREFS_RETRIEVED_DATA_NON_EMPTY);
+ return data;
}
@CalledByNative