commit c6d6fb249cbb8a4c47fc5b2ef1a283778fe014bb
parent c954fc70457a3fb93f10a89ae71ddb6f944496f0
Author: scottdowne <sdowne@mozilla.com>
Date: Fri, 28 Nov 2025 18:37:37 +0000
Bug 2002634 - Newtab frecency-based sorting region/locale controls r=ini
Differential Revision: https://phabricator.services.mozilla.com/D274176
Diffstat:
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
@@ -60,6 +60,10 @@ const REGION_INFERRED_PERSONALIZATION_CONFIG =
"browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.region-config";
const LOCALE_INFERRED_PERSONALIZATION_CONFIG =
"browser.newtabpage.activity-stream.discoverystream.sections.personalization.inferred.locale-config";
+const REGION_SOV_CONFIG =
+ "browser.newtabpage.activity-stream.sov.region-config";
+const LOCALE_SOV_CONFIG =
+ "browser.newtabpage.activity-stream.sov.locale-config";
const REGION_WEATHER_CONFIG =
"browser.newtabpage.activity-stream.discoverystream.region-weather-config";
@@ -136,7 +140,7 @@ export function csvPrefHasValue(stringPrefName, value) {
throw new Error(`The stringPrefName argument is not a string`);
}
- const pref = Services.prefs.getStringPref(stringPrefName) || "";
+ const pref = Services.prefs.getStringPref(stringPrefName, "") || "";
const prefValues = pref
.split(",")
.map(s => s.trim())
@@ -163,6 +167,13 @@ function useInferredPersonalization({ geo, locale }) {
);
}
+function useSov({ geo, locale }) {
+ return (
+ csvPrefHasValue(REGION_SOV_CONFIG, geo) &&
+ csvPrefHasValue(LOCALE_SOV_CONFIG, locale)
+ );
+}
+
function useContextualAds({ geo, locale }) {
return (
csvPrefHasValue(REGION_CONTEXTUAL_AD_CONFIG, geo) &&
@@ -959,7 +970,7 @@ export const PREFS_CONFIG = new Map([
"sov.enabled",
{
title: "Enables share of voice (SOV)",
- value: false,
+ getValue: useSov,
},
],
[