Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java |
index cc67d03db34b1e97576af014bacf33add19b263c..b9d0c13b194c561bc5a8d2b31086c9d95074837c 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java |
@@ -26,6 +26,7 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage |
static final String PREF_CRASH_DUMP_UPLOAD = "crash_dump_upload"; |
static final String PREF_CRASH_DUMP_UPLOAD_NO_CELLULAR = "crash_dump_upload_no_cellular"; |
static final String PREF_METRICS_REPORTING = "metrics_reporting"; |
+ private static final String PREF_METRICS_IN_SAMPLE = "in_metrics_sample"; |
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions"; |
private static final String PREF_BANDWIDTH_OLD = "prefetch_bandwidth"; |
private static final String PREF_BANDWIDTH_NO_CELLULAR_OLD = "prefetch_bandwidth_no_cellular"; |
@@ -277,6 +278,27 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage |
} |
/** |
+ * Sets whether this client is in-sample. See |
+ * {@link org.chromium.chrome.browser.metrics.UmaUtils#isClientInMetricsSample} for details. |
+ */ |
+ public void setClientInMetricsSample(boolean inSample) { |
+ mSharedPreferences.edit().putBoolean(PREF_METRICS_IN_SAMPLE, inSample).apply(); |
+ } |
+ |
+ /** |
+ * Checks whether this client is in-sample. See |
+ * {@link org.chromium.chrome.browser.metrics.UmaUtils#isClientInMetricsSample} for details. |
+ * |
+ * @returns boolean Whether client is in-sample. |
+ */ |
+ public boolean isClientInMetricsSample() { |
+ // The default value is true to avoid sampling out crashes that occur before native code has |
+ // been initialized on first run. We'd rather have some extra crashes than none from that |
+ // time. |
+ return mSharedPreferences.getBoolean(PREF_METRICS_IN_SAMPLE, true); |
+ } |
+ |
+ /** |
* Sets the crash upload preference, which determines whether crash dumps will be uploaded |
* always, never, or only on wifi. |
* |
@@ -325,8 +347,7 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage |
} |
/** |
- * Sets the initial value for whether crash stacks may be uploaded. |
- * This should be called only once, the first time Chrome is launched. |
+ * Sets the value for whether crash stacks may be uploaded. |
*/ |
public void initCrashUploadPreference(boolean allowCrashUpload) { |
SharedPreferences.Editor ed = mSharedPreferences.edit(); |