commit eeec63cbd15fcdb0a4516080f41c0c526a6daead
parent 7a83369035cd0a744454cf47b78dece514f8dac6
Author: Drew Willcoxon <adw@mozilla.com>
Date: Thu, 23 Oct 2025 22:32:06 +0000
Bug 1995362 - Part 5: Update enterprise policies to use the new online Suggest pref. r=mkaply,Standard8
Online Firefox Suggest is changing in 146: The old opt-in experience is being
replaced with a new opt-out experience that uses OHTTP to protect user privacy.
As part of that, we are replacing the `quicksuggest.dataCollection.enabled` pref
with a new `quicksuggest.online.enabled` pref. The online checkbox in the
settings UI will now correspond to this new pref.
In case it matters, the old pref defaulted to false (since old online was
opt-in), and the new pref defaults to true (since new online is opt-out).
Depends on D269323
Differential Revision: https://phabricator.services.mozilla.com/D269324
Diffstat:
3 files changed, 96 insertions(+), 23 deletions(-)
diff --git a/browser/components/enterprisepolicies/Policies.sys.mjs b/browser/components/enterprisepolicies/Policies.sys.mjs
@@ -1641,10 +1641,11 @@ export var Policies = {
param.Locked
);
}
- if ("ImproveSuggest" in param) {
+ // `ImproveSuggest` is deprecated and replaced with `OnlineEnabled`.
+ if ("OnlineEnabled" in param || "ImproveSuggest" in param) {
PoliciesUtils.setDefaultPref(
- "browser.urlbar.quicksuggest.dataCollection.enabled",
- param.ImproveSuggest,
+ "browser.urlbar.quicksuggest.online.enabled",
+ param.OnlineEnabled ?? param.ImproveSuggest,
param.Locked
);
}
diff --git a/browser/components/enterprisepolicies/schemas/policies-schema.json b/browser/components/enterprisepolicies/schemas/policies-schema.json
@@ -862,6 +862,9 @@
"ImproveSuggest": {
"type": "boolean"
},
+ "OnlineEnabled": {
+ "type": "boolean"
+ },
"Locked": {
"type": "boolean"
}
diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_firefoxsuggest.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_firefoxsuggest.js
@@ -9,7 +9,7 @@ add_task(async function test_firefox_suggest_with_policy() {
FirefoxSuggest: {
WebSuggestions: false,
SponsoredSuggestions: true,
- ImproveSuggest: true,
+ OnlineEnabled: true,
Locked: true,
},
},
@@ -30,16 +30,13 @@ add_task(async function test_firefox_suggest_with_policy() {
true,
"Sponsored suggestions is enabled"
);
- // TODO: The preference is enabled by default, so the new enterprise policy
- // being added in bug 1995362 should be set to false, and this check changed
- // to confirm the option is not checked.
- // is(
- // browser.contentDocument.getElementById(
- // "firefoxSuggestOnlineEnabledToggle"
- // ).checked,
- // true,
- // "Suggest online is enabled"
- // );
+ is(
+ browser.contentDocument.getElementById(
+ "firefoxSuggestOnlineEnabledToggle"
+ ).checked,
+ true,
+ "Suggest online checkbox is checked"
+ );
is(
browser.contentDocument.getElementById("firefoxSuggestNonsponsored")
.disabled,
@@ -52,15 +49,87 @@ add_task(async function test_firefox_suggest_with_policy() {
true,
"Sponsored suggestions is disabled"
);
- // TODO: Bug 1995362 - This needs the new enterprise policy to be hooked
- // up.
- // is(
- // browser.contentDocument.getElementById(
- // "firefoxSuggestOnlineEnabledToggle"
- // ).disabled,
- // true,
- // "Suggest online is disabled"
- // );
+ is(
+ browser.contentDocument.getElementById(
+ "firefoxSuggestOnlineEnabledToggle"
+ ).disabled,
+ true,
+ "Suggest online checkbox is disabled"
+ );
}
);
});
+
+// In 146 `ImproveSuggest` was deprecated and replaced with `OnlineEnabled`.
+// They should behave the same, and when both are specified `OnlineEnabled`
+// should be used.
+add_task(async function test_firefox_suggest_online() {
+ let tests = [
+ // Only `OnlineEnabled` specified
+ {
+ OnlineEnabled: false,
+ expectedEnabled: false,
+ },
+ {
+ OnlineEnabled: true,
+ expectedEnabled: true,
+ },
+
+ // Only `ImproveSuggest` (deprecated) specified
+ {
+ ImproveSuggest: false,
+ expectedEnabled: false,
+ },
+ {
+ ImproveSuggest: true,
+ expectedEnabled: true,
+ },
+
+ // Both `OnlineEnabled` and `ImproveSuggest` specified: `OnlineEnabled`
+ // should be used
+ {
+ OnlineEnabled: false,
+ ImproveSuggest: false,
+ expectedEnabled: false,
+ },
+ {
+ OnlineEnabled: false,
+ ImproveSuggest: true,
+ expectedEnabled: false,
+ },
+ {
+ OnlineEnabled: true,
+ ImproveSuggest: false,
+ expectedEnabled: true,
+ },
+ {
+ OnlineEnabled: true,
+ ImproveSuggest: true,
+ expectedEnabled: true,
+ },
+ ];
+
+ for (let { OnlineEnabled, ImproveSuggest, expectedEnabled } of tests) {
+ await setupPolicyEngineWithJson({
+ policies: {
+ FirefoxSuggest: {
+ OnlineEnabled,
+ ImproveSuggest,
+ },
+ },
+ });
+
+ await BrowserTestUtils.withNewTab(
+ "about:preferences#search",
+ async browser => {
+ is(
+ browser.contentDocument.getElementById(
+ "firefoxSuggestOnlineEnabledToggle"
+ ).checked,
+ expectedEnabled,
+ "Suggest online checkbox is checked or not as expected"
+ );
+ }
+ );
+ }
+});