diff options
Diffstat (limited to 'chromium/components/variations/android')
-rw-r--r-- | chromium/components/variations/android/BUILD.gn | 3 | ||||
-rw-r--r-- | chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java | 25 |
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 |