diff --git a/android/java/org/chromium/chrome/browser/BraveActivity.java b/android/java/org/chromium/chrome/browser/BraveActivity.java index e2482f1fcf8..3fe50530c13 100644 --- a/android/java/org/chromium/chrome/browser/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/BraveActivity.java @@ -7,9 +7,12 @@ package org.chromium.chrome.browser; import android.content.Context; +import org.chromium.base.CommandLine; +import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.annotations.JNINamespace; import org.chromium.chrome.R; +import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceBridge; @@ -18,6 +21,8 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge; */ @JNINamespace("chrome::android") public abstract class BraveActivity extends ChromeActivity { + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + @Override public void onResumeWithNative() { super.onResumeWithNative(); @@ -50,5 +55,17 @@ public abstract class BraveActivity extends ChromeActivity { return true; } + @Override + public void initializeState() { + super.initializeState(); + if (isNoRestoreState()) { + CommandLine.getInstance().appendSwitch(ChromeSwitches.NO_RESTORE_STATE); + } + } + + private boolean isNoRestoreState() { + return ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false); + } + private native void nativeRestartStatsUpdater(); } diff --git a/android/java/org/chromium/chrome/browser/preferences/privacy/BravePrivacyPreferences.java b/android/java/org/chromium/chrome/browser/preferences/privacy/BravePrivacyPreferences.java index adbc91c7ac3..cb514556ced 100644 --- a/android/java/org/chromium/chrome/browser/preferences/privacy/BravePrivacyPreferences.java +++ b/android/java/org/chromium/chrome/browser/preferences/privacy/BravePrivacyPreferences.java @@ -5,10 +5,12 @@ package org.chromium.chrome.browser.preferences.privacy; +import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; +import org.chromium.base.ContextUtils; import org.chromium.chrome.R; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreferenceCompat; @@ -19,6 +21,7 @@ public class BravePrivacyPreferences extends PrivacyPreferences { private static final String PREF_HTTPSE = "httpse"; private static final String PREF_AD_BLOCK = "ad_block"; private static final String PREF_FINGERPRINTING_PROTECTION = "fingerprinting_protection"; + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -37,6 +40,10 @@ public class BravePrivacyPreferences extends PrivacyPreferences { ChromeBaseCheckBoxPreferenceCompat fingerprintingProtectionPref = (ChromeBaseCheckBoxPreferenceCompat) findPreference(PREF_FINGERPRINTING_PROTECTION); fingerprintingProtectionPref.setOnPreferenceChangeListener(this); + + ChromeBaseCheckBoxPreferenceCompat closeTabsOnExitPref = + (ChromeBaseCheckBoxPreferenceCompat) findPreference(PREF_CLOSE_TABS_ON_EXIT); + closeTabsOnExitPref.setOnPreferenceChangeListener(this); } @Override @@ -51,6 +58,11 @@ public class BravePrivacyPreferences extends PrivacyPreferences { } else if (PREF_FINGERPRINTING_PROTECTION.equals(key)) { BravePrefServiceBridge.getInstance().setFingerprintingProtectionEnabled( (boolean) newValue); + } else if (PREF_CLOSE_TABS_ON_EXIT.equals(key)) { + SharedPreferences.Editor sharedPreferencesEditor = + ContextUtils.getAppSharedPreferences().edit(); + sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean) newValue); + sharedPreferencesEditor.apply(); } return true; diff --git a/android/java/res/xml/brave_privacy_preferences.xml b/android/java/res/xml/brave_privacy_preferences.xml index 1715415a9b7..8d5361261e8 100644 --- a/android/java/res/xml/brave_privacy_preferences.xml +++ b/android/java/res/xml/brave_privacy_preferences.xml @@ -7,6 +7,11 @@ + Prevents browser from fingerprinting - Ads and Trackers -Blocked - HTTPS -Upgrades - Est. Time -Saved + + Close tabs on exit + + + Don't persist tabs between browsing sessions + + + Ads and Trackers Blocked + + + HTTPS Upgrades + + + Est. Time Saved +