Bug 1749535 - Add policy for Firefox Suggest. r=adw

Differential Revision: https://phabricator.services.mozilla.com/D186241
This commit is contained in:
Mike Kaply
2023-08-16 21:08:06 +00:00
parent d392139494
commit bd6e5e6c66
4 changed files with 112 additions and 0 deletions

View File

@@ -28,6 +28,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
FileUtils: "resource://gre/modules/FileUtils.sys.mjs",
PdfJsDefaultPreferences: "resource://pdf.js/PdfJsDefaultPreferences.sys.mjs",
ProxyPolicies: "resource:///modules/policies/ProxyPolicies.sys.mjs",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.sys.mjs",
WebsiteFilter: "resource:///modules/policies/WebsiteFilter.sys.mjs",
});
@@ -1275,6 +1276,35 @@ export var Policies = {
},
},
FirefoxSuggest: {
onBeforeAddons(manager, param) {
(async () => {
await lazy.UrlbarPrefs.firefoxSuggestScenarioStartupPromise;
if ("WebSuggestions" in param) {
PoliciesUtils.setDefaultPref(
"browser.urlbar.suggest.quicksuggest.nonsponsored",
param.WebSuggestions,
param.Locked
);
}
if ("SponsoredSuggestions" in param) {
PoliciesUtils.setDefaultPref(
"browser.urlbar.suggest.quicksuggest.sponsored",
param.SponsoredSuggestions,
param.Locked
);
}
if ("ImproveSuggest" in param) {
PoliciesUtils.setDefaultPref(
"browser.urlbar.quicksuggest.dataCollection.enabled",
param.ImproveSuggest,
param.Locked
);
}
})();
},
},
GoToIntranetSiteForSingleWordEntryInAddressBar: {
onBeforeAddons(manager, param) {
setAndLockPref("browser.fixup.dns_first_for_single_words", param);

View File

@@ -682,6 +682,24 @@
}
},
"FirefoxSuggest": {
"type": "object",
"properties": {
"WebSuggestions": {
"type": "boolean"
},
"SponsoredSuggestions": {
"type": "boolean"
},
"ImproveSuggest": {
"type": "boolean"
},
"Locked": {
"type": "boolean"
}
}
},
"GoToIntranetSiteForSingleWordEntryInAddressBar": {
"type": "boolean"
},

View File

@@ -55,6 +55,7 @@ support-files =
https_first_disabled = true
[browser_policy_extensionsettings2.js]
[browser_policy_firefoxhome.js]
[browser_policy_firefoxsuggest.js]
[browser_policy_handlers.js]
[browser_policy_masterpassword.js]
[browser_policy_masterpassword_aboutlogins.js]

View File

@@ -0,0 +1,63 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_task(async function test_firefox_suggest_with_policy() {
await setupPolicyEngineWithJson({
policies: {
FirefoxSuggest: {
WebSuggestions: false,
SponsoredSuggestions: true,
ImproveSuggest: true,
Locked: true,
},
},
});
await BrowserTestUtils.withNewTab(
"about:preferences#privacy",
async browser => {
is(
browser.contentDocument.getElementById(
"firefoxSuggestNonsponsoredToggle"
).pressed,
false,
"Web suggestions is disabled"
);
is(
browser.contentDocument.getElementById("firefoxSuggestSponsoredToggle")
.pressed,
true,
"Sponsored suggestions is enabled"
);
is(
browser.contentDocument.getElementById(
"firefoxSuggestDataCollectionToggle"
).pressed,
true,
"Improve suggest is enabled"
);
is(
browser.contentDocument.getElementById(
"firefoxSuggestNonsponsoredToggle"
).disabled,
true,
"Web suggestions is disabled"
);
is(
browser.contentDocument.getElementById("firefoxSuggestSponsoredToggle")
.disabled,
true,
"Sponsored suggestions is enabled"
);
is(
browser.contentDocument.getElementById(
"firefoxSuggestDataCollectionToggle"
).disabled,
true,
"Improve suggest is enabled"
);
}
);
});