123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- From: csagan5 <32685696+csagan5@users.noreply.github.com>
- Date: Sat, 7 Sep 2019 15:07:42 +0200
- Subject: Add option to not persist tabs across sessions
- ---
- .../android/java/res/xml/privacy_preferences.xml | 5 +++++
- .../chrome/browser/ChromeTabbedActivity.java | 4 +++-
- .../privacy/settings/PrivacySettings.java | 16 +++++++++++++++-
- .../android/strings/android_chrome_strings.grd | 6 ++++++
- 4 files changed, 29 insertions(+), 2 deletions(-)
- diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
- --- a/chrome/android/java/res/xml/privacy_preferences.xml
- +++ b/chrome/android/java/res/xml/privacy_preferences.xml
- @@ -23,6 +23,11 @@
- android:title="@string/always_incognito_title"
- android:summary="@string/always_incognito_summary"
- android:defaultValue="false" />
- + <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
- + android:key="close_tabs_on_exit"
- + android:title="@string/close_tabs_on_exit_title"
- + android:summary="@string/close_tabs_on_exit_summary"
- + android:defaultValue="false" />
- <Preference
- android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
- android:key="do_not_track"
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- @@ -1124,8 +1124,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
- boolean hadCipherData =
- CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
-
- + String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
- boolean noRestoreState =
- - CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE);
- + CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
- + ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
- if (noRestoreState) {
- // Clear the state files because they are inconsistent and useless from now on.
- mTabModelOrchestrator.clearState();
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
- @@ -5,6 +5,7 @@
- package org.chromium.chrome.browser.privacy.settings;
-
- import android.os.Build;
- +import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.text.SpannableString;
- import android.view.Menu;
- @@ -15,6 +16,8 @@ import androidx.preference.Preference;
- import androidx.preference.PreferenceFragmentCompat;
- import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
-
- +import org.chromium.base.ContextUtils;
- +import org.chromium.base.BuildInfo;
- import org.chromium.chrome.R;
- import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
- import org.chromium.chrome.browser.flags.ChromeFeatureList;
- @@ -50,9 +53,11 @@ public class PrivacySettings
- private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
- private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
- public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
- + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
- private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
- PREF_ALWAYS_INCOGNITO,
- PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
- + PREF_CLOSE_TABS_ON_EXIT,
- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX,
- PREF_ALLOW_CUSTOM_TAB_INTENTS};
-
- @@ -116,7 +121,11 @@ public class PrivacySettings
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- String key = preference.getKey();
- - if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
- + 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();
- + } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
- UserPrefs.get(Profile.getLastUsedRegularProfile())
- .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
- } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
- @@ -171,6 +180,11 @@ public class PrivacySettings
- privacySandboxPreference.setSummary(
- PrivacySandboxSettingsFragment.getStatusString(getContext()));
- }
- +
- + ChromeSwitchPreference closeTabsOnExitPref =
- + (ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
- + closeTabsOnExitPref.setOnPreferenceChangeListener(this);
- + closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
- }
-
- private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() {
- diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
- --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
- +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
- @@ -3765,6 +3765,12 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
- <message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
- IMAGE
- </message>
- + <message name="IDS_CLOSE_TABS_ON_EXIT_TITLE" desc="Text for 'Close tabs on exit' settings-privacy option.">
- + Close all open tabs on exit
- + </message>
- + <message name="IDS_CLOSE_TABS_ON_EXIT_SUMMARY" desc="Summary text for 'Close tabs on exit' settings-privacy option.">
- + Don't persist tabs between browsing sessions
- + </message>
- <message name="IDS_CONTEXTMENU_LINK_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the link.">
- LINK
- </message>
- --
- 2.17.1
|