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
+6
View File
@@ -40,4 +40,10 @@
<item>@string/settings_default_wallet_option_2</item>
</string-array>
<string-array name="autoShredTexts">
<item>@string/brave_shields_auto_shred_never_mode_text</item>
<item>@string/brave_shields_auto_shred_site_tab_closed_mode_text</item>
<item>@string/brave_shields_auto_shred_app_close_mode_text</item>
</string-array>
</resources>
@@ -78,6 +78,12 @@
android:title="@string/brave_forget_first_party_storage_switch"
android:summary="@string/brave_forget_first_party_storage_summary"
android:defaultValue="false" />
<org.chromium.chrome.browser.settings.BraveDialogPreference
android:key="auto_shred_storage"
android:title="@string/brave_shields_auto_shred_sites_data_text"
android:summary="@string/brave_shields_auto_shred_never_mode_text"
app:dialog_entries="@array/autoShredTexts"
app:dialog_default_index="1" />
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="allow_elements_blocking_on_private_tabs"
android:title="@string/brave_allow_element_blocker_in_private_label"
@@ -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(
@@ -49,7 +49,7 @@ public class BravePrivacySettingsTest {
private static final String PREF_ALLOW_ELEMENTS_BLOCKING_ON_PRIVATE_TABS =
"allow_elements_blocking_on_private_tabs";
private static final int BRAVE_PRIVACY_SETTINGS_NUMBER_OF_ITEMS = 27;
private static final int BRAVE_PRIVACY_SETTINGS_NUMBER_OF_ITEMS = 28;
private int mItemsLeft;