[Android] Respect Brave Origin policies in settings search (#34985)

Remove policy-disabled features from the settings search index so
they don't appear in search results when disabled by Brave Origin
or enterprise policy.

Resolves: https://github.com/brave/brave-browser/issues/53530
This commit is contained in:
Serg
2026-03-25 17:04:54 +01:00
committed by GitHub
parent f212f6967d
commit bfe0809ef0
3 changed files with 28 additions and 3 deletions
@@ -57,6 +57,8 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.browser_ui.settings.search.PreferenceParser;
import org.chromium.components.browser_ui.settings.search.SearchIndexProvider;
import org.chromium.components.browser_ui.settings.search.SettingsIndexData;
import org.chromium.components.browser_ui.site_settings.BraveSiteSettingsPreferencesBase;
import org.chromium.components.browser_ui.site_settings.SiteSettings;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.base.DeviceFormFactor;
@@ -707,6 +709,27 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment
if (!BraveSearchWidgetUtils.isRequestPinAppWidgetSupported()) {
indexData.removeEntry(getUniqueId(PREF_HOME_SCREEN_WIDGET));
}
// Remove features disabled by Brave Origin or enterprise policy.
if (BraveLeoPrefUtils.isLeoDisabledByPolicy(profile)) {
indexData.removeEntry(getUniqueId(PREF_BRAVE_LEO));
}
if (BraveNewsPolicy.isDisabledByPolicy(profile)) {
indexData.removeEntry(getUniqueId(PREF_BRAVE_NEWS_V2));
}
if (BraveVpnPolicy.isDisabledByPolicy(profile)) {
indexData.removeEntry(getUniqueId(PREF_BRAVE_VPN));
}
if (BraveWalletPolicy.isDisabledByPolicy(profile)) {
indexData.removeEntry(getUniqueId(PREF_BRAVE_WALLET));
// Also remove wallet-related entries from site settings.
String siteSettingsFrag = SiteSettings.class.getName();
indexData.removeEntryForKey(
siteSettingsFrag,
BraveSiteSettingsPreferencesBase.ETHEREUM_CONNECTED_SITES_KEY);
indexData.removeEntryForKey(
siteSettingsFrag,
BraveSiteSettingsPreferencesBase.SOLANA_CONNECTED_SITES_KEY);
}
}
};
}
@@ -268,7 +268,9 @@ public class BraveSearchEnginesPreferences extends BravePreferenceFragment
profile.getPrimaryOtrProfile(/* createIfNeeded= */ true),
true));
if (!BraveConfig.WEB_DISCOVERY_ENABLED) {
if (!BraveConfig.WEB_DISCOVERY_ENABLED
|| UserPrefs.get(profile)
.isManagedPreference(WebDiscoveryPrefs.WEB_DISCOVERY_ENABLED)) {
indexData.removeEntryForKey(frag, PREF_SEND_WEB_DISCOVERY);
} else {
indexData.updateEntryForKey(