| 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 48de32563b9739e951ac47cbbe52354756b99bdd..0831a04bd89121f9c341a353b81c11351e892a54 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
|
| @@ -32,7 +32,7 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage
|
| private final Context mContext;
|
| private final SharedPreferences mSharedPreferences;
|
|
|
| - private boolean mCrashUploadingEnabled;
|
| + private boolean mCrashUploadingCommandLineDisabled;
|
| private final String mCrashDumpNeverUpload;
|
| private final String mCrashDumpWifiOnlyUpload;
|
| private final String mCrashDumpAlwaysUpload;
|
| @@ -41,7 +41,13 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage
|
| PrivacyPreferencesManager(Context context) {
|
| mContext = context;
|
| mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
| - mCrashUploadingEnabled = true;
|
| +
|
| + // Crash dump uploading preferences.
|
| + // We default the command line flag to disable uploads unless altered on deferred startup
|
| + // to prevent unwanted uploads at startup. If the command line flag to enable uploading is
|
| + // turned on, the other options for when to upload (depending on user/network preferences
|
| + // apply.
|
| + mCrashUploadingCommandLineDisabled = true;
|
| mCrashDumpNeverUpload = context.getString(R.string.crash_dump_never_upload_value);
|
| mCrashDumpWifiOnlyUpload = context.getString(R.string.crash_dump_only_with_wifi_value);
|
| mCrashDumpAlwaysUpload = context.getString(R.string.crash_dump_always_upload_value);
|
| @@ -178,11 +184,14 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage
|
| }
|
|
|
| /**
|
| - * Provides a way to disable crash uploading entirely, regardless of the preferences.
|
| - * Used by tests that trigger crashers intentionally, so these crashers are not uploaded.
|
| + * Provides a way to remove disabling crash uploading entirely.
|
| + * Enable crash uploading based on user's preference when an overriding flag
|
| + * does not exist in commandline.
|
| + * Used to differentiate from tests that trigger crashers intentionally, so these crashers are
|
| + * not uploaded.
|
| */
|
| - public void disableCrashUploading() {
|
| - mCrashUploadingEnabled = false;
|
| + public void enablePotentialCrashUploading() {
|
| + mCrashUploadingCommandLineDisabled = false;
|
| }
|
|
|
| /**
|
| @@ -241,20 +250,33 @@ public class PrivacyPreferencesManager implements CrashReportingPermissionManage
|
| */
|
| @Override
|
| public boolean isUploadPermitted() {
|
| - return mCrashUploadingEnabled && isNetworkAvailable() && (allowUploadCrashDump()
|
| - || CommandLine.getInstance().hasSwitch(ChromeSwitches.FORCE_CRASH_DUMP_UPLOAD));
|
| + return !mCrashUploadingCommandLineDisabled && isNetworkAvailable()
|
| + && (allowUploadCrashDump() || CommandLine.getInstance().hasSwitch(
|
| + ChromeSwitches.FORCE_CRASH_DUMP_UPLOAD));
|
| + }
|
| +
|
| + /**
|
| + * Check whether not to disable uploading crash dump by command line flag.
|
| + * If command line flag disables crash dump uploading, do not retry, but also do not delete.
|
| + * TODO(jchinlee): this is not quite a boolean. Depending on other refactoring, change to enum.
|
| + *
|
| + * @return whether experimental flag doesn't disable uploading crash dump.
|
| + */
|
| + @Override
|
| + public boolean isUploadCommandLineDisabled() {
|
| + return mCrashUploadingCommandLineDisabled;
|
| }
|
|
|
| /**
|
| * Check whether the user allows uploading.
|
| - * This doesn't take network condition into consideration.
|
| + * This doesn't take network condition or experimental state (i.e. disabling upload) into
|
| + * consideration.
|
| * A crash dump may be retried if this check passes.
|
| *
|
| * @return whether user's preference allows uploading crash dump.
|
| */
|
| @Override
|
| public boolean isUploadUserPermitted() {
|
| - if (!mCrashUploadingEnabled) return false;
|
| if (isCellularExperimentEnabled()) return isUsageAndCrashReportingEnabled();
|
|
|
| if (isMobileNetworkCapable()) {
|
|
|