Global Shred site's data preference is not available in settings under Brave Shields & privacy (#34391)

Fixed global auto-shred settings to be displayed in Settings under
Brave Shields & Privacy when the Shred feature is enabled.

Resolves: https://github.com/brave/brave-browser/issues/53295
---------

Signed-off-by: Vadym Struts <vstruts@brave.com>
This commit is contained in:
vadims
2026-03-04 11:01:13 +01:00
committed by GitHub
parent cb456fbe37
commit f13eac71f2
5 changed files with 72 additions and 1 deletions
@@ -196,6 +196,15 @@ public class BraveShieldsContentSettings {
return settings;
}
public static void setAutoShredPref(String value) {
setShieldsValue(
ProfileManager.getLastUsedRegularProfile(),
"",
BraveShieldsContentSettings.RESOURCE_IDENTIFIER_SHRED_SITE_DATA,
value,
false);
}
public static void setFingerprintingPref(String value) {
setShieldsValue(
ProfileManager.getLastUsedRegularProfile(),
@@ -280,6 +289,13 @@ public class BraveShieldsContentSettings {
BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS);
}
public static String getAutoShredPref() {
return getShieldsValue(
ProfileManager.getLastUsedRegularProfile(),
"",
BraveShieldsContentSettings.RESOURCE_IDENTIFIER_SHRED_SITE_DATA);
}
public static String getFingerprintingPref() {
return getShieldsValue(
ProfileManager.getLastUsedRegularProfile(),
@@ -133,6 +133,7 @@ public class BravePrivacySettings extends PrivacySettings {
private static final String PREF_CLEAR_ON_EXIT = "clear_on_exit";
private static final String PREF_HTTPS_UPGRADE = "https_upgrade";
private static final String PREF_FORGET_FIRST_PARTY_STORAGE = "forget_first_party_storage";
private static final String PREF_AUTO_SHRED_STORAGE = "auto_shred_storage";
private static final String PREF_ALLOW_ELEMENTS_BLOCKING_ON_PRIVATE_TABS =
"allow_elements_blocking_on_private_tabs";
@@ -154,6 +155,7 @@ public class BravePrivacySettings extends PrivacySettings {
PREF_SHIELDS_SAVE_CONTACT_INFO,
PREF_CONTENT_FILTERING,
PREF_FORGET_FIRST_PARTY_STORAGE,
PREF_AUTO_SHRED_STORAGE,
PREF_ALLOW_ELEMENTS_BLOCKING_ON_PRIVATE_TABS,
PREF_CLEAR_DATA_SECTION, // clear data automatically section
PREF_CLEAR_ON_EXIT,
@@ -210,6 +212,7 @@ public class BravePrivacySettings extends PrivacySettings {
private BraveDialogPreference mRequestOtrPref;
private ChromeSwitchPreference mBlockScriptsPref;
private ChromeSwitchPreference mForgetFirstPartyStoragePref;
private BraveDialogPreference mAutoShredPref;
private @Nullable ChromeSwitchPreference mAllowElementsBlockingOnPrivateTabsPref;
private ChromeSwitchPreference mCloseTabsOnExitPref;
private @Nullable ChromeSwitchPreference mSendP3A;
@@ -365,6 +368,10 @@ public class BravePrivacySettings extends PrivacySettings {
&& !ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_SHRED);
mForgetFirstPartyStoragePref.setVisible(forgetFirstPartyStorageIsEnabled);
mAutoShredPref = (BraveDialogPreference) findPreference(PREF_AUTO_SHRED_STORAGE);
mAutoShredPref.setOnPreferenceChangeListener(this);
mAutoShredPref.setVisible(ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_SHRED));
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_SHIELDS_ELEMENT_PICKER)) {
mAllowElementsBlockingOnPrivateTabsPref =
(ChromeSwitchPreference)
@@ -711,11 +718,43 @@ public class BravePrivacySettings extends PrivacySettings {
break;
}
}
} else if (PREF_AUTO_SHRED_STORAGE.equals(key)) {
final String newStringValue = String.valueOf(newValue);
BraveShieldsContentSettings.setAutoShredPref(newStringValue);
updateAutoShredPref(newStringValue);
}
return true;
}
private void updateAutoShredPref(String newStringValue) {
switch (newStringValue) {
case BraveShieldsContentSettings.AUTO_SHRED_MODE_NEVER:
mAutoShredPref.setSummary(
getActivity()
.getResources()
.getString(R.string.brave_shields_auto_shred_never_mode_text));
mAutoShredPref.setCheckedIndex(0);
break;
case BraveShieldsContentSettings.AUTO_SHRED_MODE_LAST_TAB_CLOSED:
mAutoShredPref.setSummary(
getActivity()
.getResources()
.getString(
R.string
.brave_shields_auto_shred_site_tab_closed_mode_text));
mAutoShredPref.setCheckedIndex(1);
break;
case BraveShieldsContentSettings.AUTO_SHRED_MODE_APP_EXIT:
mAutoShredPref.setSummary(
getActivity()
.getResources()
.getString(R.string.brave_shields_auto_shred_app_close_mode_text));
mAutoShredPref.setCheckedIndex(2);
break;
}
}
private void handleShieldsSaveContactInfo(boolean value) {
WebcompatReporterHandler webcompatReporterHandler =
WebcompatReporterServiceFactory.getInstance()
@@ -834,6 +873,10 @@ public class BravePrivacySettings extends PrivacySettings {
mForgetFirstPartyStoragePref.setChecked(
BraveShieldsContentSettings.getForgetFirstPartyStoragePref());
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_SHRED)) {
updateAutoShredPref(BraveShieldsContentSettings.getAutoShredPref());
}
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_SHIELDS_ELEMENT_PICKER)
&& mAllowElementsBlockingOnPrivateTabsPref != null) {
mAllowElementsBlockingOnPrivateTabsPref.setChecked(