tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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:
Mbrowser/components/enterprisepolicies/Policies.sys.mjs | 7++++---
Mbrowser/components/enterprisepolicies/schemas/policies-schema.json | 3+++
Mbrowser/components/enterprisepolicies/tests/browser/browser_policy_firefoxsuggest.js | 109++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
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" + ); + } + ); + } +});