Bug 1735976 - Update Firefox Suggest preferences: Part 4 - Migrate suggest.quicksuggest to suggest.quicksuggest.nonsponsored. r=nanj

Now that we're likely not targeting a 94 dot release anymore, I'd like to go
ahead and rename the `suggest.quicksuggest` pref to
`suggest.quicksuggest.nonsponsored` as we considered doing before. There won't
be a better time to do it.

Depends on D128665

Differential Revision: https://phabricator.services.mozilla.com/D130565
This commit is contained in:
Drew Willcoxon 2021-11-09 17:17:11 +00:00
parent c78f58eba4
commit abd3229014
20 changed files with 226 additions and 198 deletions

View File

@ -388,7 +388,7 @@ pref("browser.urlbar.suggest.calculator", false);
// pref is exposed to the user in the UI, and it's sticky so that its
// user-branch value persists regardless of whatever Firefox Suggest scenarios,
// with their various default-branch values, the user is enrolled in over time.
pref("browser.urlbar.suggest.quicksuggest", false, sticky);
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky);
// Whether sponsored quick suggest results are shown in the urlbar. This pref is
// exposed to the user in the UI, and it's sticky so that its user-branch value

View File

@ -659,7 +659,7 @@
<html:input id="firefoxSuggestNonsponsoredToggle"
type="checkbox"
class="toggle-button firefoxSuggestToggle"
preference="browser.urlbar.suggest.quicksuggest"
preference="browser.urlbar.suggest.quicksuggest.nonsponsored"
aria-labelledby="firefoxSuggestNonsponsoredLabel"
aria-describedby="firefoxSuggestNonsponsoredDescription"/>
</hbox>

View File

@ -156,7 +156,7 @@ Preferences.addAll([
{ id: "browser.urlbar.suggest.openpage", type: "bool" },
{ id: "browser.urlbar.suggest.topsites", type: "bool" },
{ id: "browser.urlbar.suggest.engines", type: "bool" },
{ id: "browser.urlbar.suggest.quicksuggest", type: "bool" },
{ id: "browser.urlbar.suggest.quicksuggest.nonsponsored", type: "bool" },
{ id: "browser.urlbar.suggest.quicksuggest.sponsored", type: "bool" },
{ id: "browser.urlbar.quicksuggest.dataCollection.enabled", type: "bool" },
@ -2008,7 +2008,7 @@ var gPrivacyPane = {
// The Firefox Suggest info box potentially needs updating when any of the
// toggles change.
let infoBoxPrefs = [
"browser.urlbar.suggest.quicksuggest",
"browser.urlbar.suggest.quicksuggest.nonsponsored",
"browser.urlbar.suggest.quicksuggest.sponsored",
"browser.urlbar.quicksuggest.dataCollection.enabled",
];
@ -2078,8 +2078,9 @@ var gPrivacyPane = {
* on the states of the Firefox Suggest toggles.
*/
_updateFirefoxSuggestInfoBox() {
let nonsponsored = Preferences.get("browser.urlbar.suggest.quicksuggest")
.value;
let nonsponsored = Preferences.get(
"browser.urlbar.suggest.quicksuggest.nonsponsored"
).value;
let sponsored = Preferences.get(
"browser.urlbar.suggest.quicksuggest.sponsored"
).value;

View File

@ -195,12 +195,12 @@ async function doVisibilityTest({
add_task(async function togglesAndInfoBox() {
await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
// suggest.quicksuggest = true
// suggest.quicksuggest.nonsponsored = true
// suggest.quicksuggest.sponsored = true
// quicksuggest.dataCollection.enabled = true
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],
@ -213,12 +213,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-all");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = true
// suggest.quicksuggest.nonsponsored = true
// suggest.quicksuggest.sponsored = true
// quicksuggest.dataCollection.enabled = false
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
],
@ -231,12 +231,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-nonsponsored-sponsored");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = true
// suggest.quicksuggest.nonsponsored = true
// suggest.quicksuggest.sponsored = false
// quicksuggest.dataCollection.enabled = true
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],
@ -249,12 +249,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-nonsponsored-data");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = true
// suggest.quicksuggest.nonsponsored = true
// suggest.quicksuggest.sponsored = false
// quicksuggest.dataCollection.enabled = false
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
],
@ -267,12 +267,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-nonsponsored");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = false
// suggest.quicksuggest.nonsponsored = false
// suggest.quicksuggest.sponsored = true
// quicksuggest.dataCollection.enabled = true
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],
@ -285,12 +285,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-sponsored-data");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = false
// suggest.quicksuggest.nonsponsored = false
// suggest.quicksuggest.sponsored = true
// quicksuggest.dataCollection.enabled = false
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
],
@ -303,12 +303,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-sponsored");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = false
// suggest.quicksuggest.nonsponsored = false
// suggest.quicksuggest.sponsored = false
// quicksuggest.dataCollection.enabled = true
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],
@ -321,12 +321,12 @@ add_task(async function togglesAndInfoBox() {
await assertInfoBox("addressbar-firefox-suggest-info-data");
await SpecialPowers.popPrefEnv();
// suggest.quicksuggest = false
// suggest.quicksuggest.nonsponsored = false
// suggest.quicksuggest.sponsored = false
// quicksuggest.dataCollection.enabled = false
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
],
@ -353,7 +353,7 @@ add_task(async function clickToggles() {
// Set initial state.
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],
@ -372,8 +372,10 @@ add_task(async function clickToggles() {
gBrowser.selectedBrowser
);
Assert.ok(
!Services.prefs.getBoolPref("browser.urlbar.suggest.quicksuggest"),
"suggest.quicksuggest is false after clicking non-sponsored toggle"
!Services.prefs.getBoolPref(
"browser.urlbar.suggest.quicksuggest.nonsponsored"
),
"suggest.quicksuggest.nonsponsored is false after clicking non-sponsored toggle"
);
assertCheckboxes({
[NONSPONSORED_CHECKBOX_ID]: false,
@ -389,8 +391,10 @@ add_task(async function clickToggles() {
gBrowser.selectedBrowser
);
Assert.ok(
!Services.prefs.getBoolPref("browser.urlbar.suggest.quicksuggest"),
"suggest.quicksuggest remains false after clicking sponsored toggle"
!Services.prefs.getBoolPref(
"browser.urlbar.suggest.quicksuggest.nonsponsored"
),
"suggest.quicksuggest.nonsponsored remains false after clicking sponsored toggle"
);
Assert.ok(
!Services.prefs.getBoolPref(
@ -412,8 +416,10 @@ add_task(async function clickToggles() {
gBrowser.selectedBrowser
);
Assert.ok(
!Services.prefs.getBoolPref("browser.urlbar.suggest.quicksuggest"),
"suggest.quicksuggest remains false after clicking sponsored toggle"
!Services.prefs.getBoolPref(
"browser.urlbar.suggest.quicksuggest.nonsponsored"
),
"suggest.quicksuggest.nonsponsored remains false after clicking sponsored toggle"
);
Assert.ok(
!Services.prefs.getBoolPref(
@ -449,7 +455,7 @@ add_task(async function clickLearnMore() {
// Set initial state so that the info box and learn more link are shown.
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", true],
["browser.urlbar.suggest.quicksuggest.nonsponsored", true],
["browser.urlbar.suggest.quicksuggest.sponsored", true],
["browser.urlbar.quicksuggest.dataCollection.enabled", true],
],

View File

@ -189,7 +189,7 @@ const PREF_URLBAR_DEFAULTS = new Map([
["suggest.openpage", true],
// Whether results will include non-sponsored quick suggest suggestions.
["suggest.quicksuggest", false],
["suggest.quicksuggest.nonsponsored", false],
// Whether results will include sponsored quick suggest suggestions.
["suggest.quicksuggest.sponsored", false],
@ -220,8 +220,10 @@ const PREF_URLBAR_DEFAULTS = new Map([
// show sponsored suggestions, both prefs must be true.
// `quicksuggest.dataCollection.enabled` does not exist.
//
// 1: `suggest.quicksuggest` and `suggest.quicksuggest.sponsored` are
// independent: `suggest.quicksuggest` controls non-sponsored results and
// 1: `suggest.quicksuggest` is removed, `suggest.quicksuggest.nonsponsored`
// is introduced. `suggest.quicksuggest.nonsponsored` and
// `suggest.quicksuggest.sponsored` are independent:
// `suggest.quicksuggest.nonsponsored` controls non-sponsored results and
// `suggest.quicksuggest.sponsored` controls sponsored results.
// `quicksuggest.dataCollection.enabled` is introduced.
["quicksuggest.migrationVersion", 0],
@ -681,7 +683,9 @@ class Preferences {
// neccesary across app versions: introducing and initializing new prefs,
// removing prefs, or changing the meaning of existing prefs.
let nonSponsoredInitiallyEnabled = this.get("suggest.quicksuggest");
let nonSponsoredInitiallyEnabled = this.get(
"suggest.quicksuggest.nonsponsored"
);
let sponsoredInitiallyEnabled = this.get("suggest.quicksuggest.sponsored");
// 1. Pick a scenario
@ -709,7 +713,7 @@ class Preferences {
// 3. Set default-branch values for prefs that are both exposed in the UI
// and configurable via Nimbus
let uiPrefNamesByVariable = {
quickSuggestNonSponsoredEnabled: "suggest.quicksuggest",
quickSuggestNonSponsoredEnabled: "suggest.quicksuggest.nonsponsored",
quickSuggestSponsoredEnabled: "suggest.quicksuggest.sponsored",
quickSuggestDataCollectionEnabled: "quicksuggest.dataCollection.enabled",
};
@ -746,7 +750,7 @@ class Preferences {
)
) {
if (nonSponsoredInitiallyEnabled) {
this.set("suggest.quicksuggest", true);
this.set("suggest.quicksuggest.nonsponsored", true);
}
if (sponsoredInitiallyEnabled) {
this.set("suggest.quicksuggest.sponsored", true);
@ -804,14 +808,14 @@ class Preferences {
"quicksuggest.enabled": true,
"quicksuggest.dataCollection.enabled": false,
"quicksuggest.shouldShowOnboardingDialog": false,
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
online: {
"quicksuggest.enabled": true,
"quicksuggest.dataCollection.enabled": false,
"quicksuggest.shouldShowOnboardingDialog": true,
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
};
@ -829,10 +833,21 @@ class Preferences {
return;
}
// Copy `suggest.quicksuggest` to `suggest.quicksuggest.nonsponsored` and
// clear the first.
let suggestQuicksuggest = "browser.urlbar.suggest.quicksuggest";
if (Services.prefs.prefHasUserValue(suggestQuicksuggest)) {
this.set(
"suggest.quicksuggest.nonsponsored",
Services.prefs.getBoolPref(suggestQuicksuggest)
);
Services.prefs.clearUserPref(suggestQuicksuggest);
}
// In the unversioned prefs, sponsored suggestions were shown only if the
// main suggestions pref was true, but now the two prefs are independent, so
// disable sponsored if the main pref was false.
if (!this.get("suggest.quicksuggest")) {
// main suggestions pref `suggest.quicksuggest` was true, but now there are
// two independent prefs, so disable sponsored if the main pref was false.
if (!this.get("suggest.quicksuggest.nonsponsored")) {
switch (scenario) {
case "offline":
// Set the pref on the user branch. Suggestions are enabled by default
@ -853,7 +868,7 @@ class Preferences {
// The data collection pref is new in this version. Enable it iff the
// scenario is online and the user opted in to suggestions. In offline, it
// should always start off false.
if (scenario == "online" && this.get("suggest.quicksuggest")) {
if (scenario == "online" && this.get("suggest.quicksuggest.nonsponsored")) {
this.set("quicksuggest.dataCollection.enabled", true);
}

View File

@ -108,7 +108,7 @@ class ProviderQuickSuggest extends UrlbarProvider {
!queryContext.searchMode &&
!queryContext.isPrivate &&
UrlbarPrefs.get("quickSuggestEnabled") &&
(UrlbarPrefs.get("suggest.quicksuggest") ||
(UrlbarPrefs.get("suggest.quicksuggest.nonsponsored") ||
UrlbarPrefs.get("suggest.quicksuggest.sponsored"))
);
}
@ -334,8 +334,7 @@ class ProviderQuickSuggest extends UrlbarProvider {
}
/**
* Called when a urlbar pref changes. We use this to listen for changes to
* `browser.urlbar.suggest.quicksuggest` so we can record a telemetry event.
* Called when a urlbar pref changes.
*
* @param {string} pref
* The name of the pref relative to `browser.urlbar`.
@ -351,7 +350,7 @@ class ProviderQuickSuggest extends UrlbarProvider {
);
}
break;
case "suggest.quicksuggest":
case "suggest.quicksuggest.nonsponsored":
if (!UrlbarPrefs.updatingFirefoxSuggestScenario) {
Services.telemetry.recordEvent(
TELEMETRY_EVENT_CATEGORY,
@ -555,7 +554,8 @@ class ProviderQuickSuggest extends UrlbarProvider {
return (
(suggestion.is_sponsored &&
UrlbarPrefs.get("suggest.quicksuggest.sponsored")) ||
(!suggestion.is_sponsored && UrlbarPrefs.get("suggest.quicksuggest"))
(!suggestion.is_sponsored &&
UrlbarPrefs.get("suggest.quicksuggest.nonsponsored"))
);
}

View File

@ -213,7 +213,7 @@ class Suggestions {
!UrlbarPrefs.get(FEATURE_AVAILABLE) ||
!UrlbarPrefs.get("quickSuggestShouldShowOnboardingDialog") ||
UrlbarPrefs.get(SEEN_DIALOG_PREF) ||
UrlbarPrefs.get("suggest.quicksuggest") ||
UrlbarPrefs.get("suggest.quicksuggest.nonsponsored") ||
UrlbarPrefs.get("suggest.quicksuggest.sponsored")
) {
return;
@ -270,7 +270,7 @@ class Suggestions {
//
// Opting in enables both kinds of results and data collection.
let optedIn = params.choice == ONBOARDING_CHOICE.ACCEPT;
UrlbarPrefs.set("suggest.quicksuggest", optedIn);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", optedIn);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", optedIn);
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", optedIn);
@ -318,7 +318,7 @@ class Suggestions {
*/
onPrefChanged(pref) {
switch (pref) {
case "suggest.quicksuggest":
case "suggest.quicksuggest.nonsponsored":
case "suggest.quicksuggest.sponsored":
this._queueSettingsSetup();
break;
@ -349,7 +349,7 @@ class Suggestions {
this._queueSettingsTask(() => {
let enabled =
UrlbarPrefs.get(FEATURE_AVAILABLE) &&
(UrlbarPrefs.get("suggest.quicksuggest") ||
(UrlbarPrefs.get("suggest.quicksuggest.nonsponsored") ||
UrlbarPrefs.get("suggest.quicksuggest.sponsored"));
if (enabled && !this._rs) {
this._onSettingsSync = (...args) => this._queueSettingsSync(...args);

View File

@ -135,7 +135,7 @@ browser.urlbar.quicksuggest.enabled (boolean, default: false)
results related to the user's search string. This pref can be overridden by
the ``quickSuggestEnabled`` Nimbus variable. If false, neither sponsored nor
non-sponsored quick suggest results will be shown. If true, then we look at
the individual prefs ``browser.urlbar.suggest.quicksuggest`` and
the individual prefs ``browser.urlbar.suggest.quicksuggest.nonsponsored`` and
``browser.urlbar.suggest.quicksuggest.sponsored``.
browser.urlbar.quicksuggest.log (boolean, default: false)
@ -166,7 +166,7 @@ browser.urlbar.speculativeConnect.enabled (boolean, default: true)
browser.urlbar.sponsoredTopSites (boolean, default: false)
Whether top sites may include sponsored ones.
browser.urlbar.suggest.quicksuggest (boolean, default: false)
browser.urlbar.suggest.quicksuggest.nonsponsored (boolean, default: false)
Whether results will include non-sponsored quick suggest suggestions.
browser.urlbar.suggest.quicksuggest.sponsored (boolean, default: false)

View File

@ -535,7 +535,7 @@ contextservices.quicksuggest
- Extra: Not used
The following event is recorded when the
``browser.urlbar.suggest.quicksuggest`` pref is toggled:
``browser.urlbar.suggest.quicksuggest.nonsponsored`` pref is toggled:
- Category: ``contextservices.quicksuggest``
- Method: ``enable_toggled``
@ -613,8 +613,8 @@ Telemetry Environment
true when the user opts in to the Firefox Suggest onboarding dialog
modal. The user can also toggle the pref using a toggle switch in the
Firefox Suggest preferences UI.
- ``browser.urlbar.suggest.quicksuggest``: True if non-sponsored Firefox
Suggest suggestions are enabled in the urlbar.
- ``browser.urlbar.suggest.quicksuggest.nonsponsored``: True if
non-sponsored Firefox Suggest suggestions are enabled in the urlbar.
- ``browser.urlbar.suggest.quicksuggest.sponsored``: True if sponsored
Firefox Suggest suggestions are enabled in the urlbar.
- ``browser.urlbar.suggest.searches``: True if search suggestions are

View File

@ -57,7 +57,7 @@ add_task(async function test_onboarding() {
],
["browser.urlbar.quicksuggest.seenRestarts", 0],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
],
});
@ -97,7 +97,7 @@ add_task(async function test_onboarding() {
UrlbarPrefs.clear("quicksuggest.showedOnboardingDialog");
UrlbarPrefs.clear("quicksuggest.seenRestarts");
UrlbarPrefs.clear("quicksuggest.dataCollection.enabled");
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
});

View File

@ -15,7 +15,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
// We use this pref in enterprise preference policy tests. We specifically use a
// pref that's sticky and exposed in the UI to make sure it can be set properly.
const POLICY_PREF = "suggest.quicksuggest";
const POLICY_PREF = "suggest.quicksuggest.nonsponsored";
let gDefaultBranch = Services.prefs.getDefaultBranch("browser.urlbar.");
let gUserBranch = Services.prefs.getBranch("browser.urlbar.");
@ -153,7 +153,7 @@ add_task(async function test_scenario_online() {
"quicksuggest.enabled": true,
"quicksuggest.dataCollection.enabled": false,
"quicksuggest.shouldShowOnboardingDialog": true,
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
// Nimbus variables
@ -175,7 +175,7 @@ add_task(async function test_scenario_online() {
value: true,
},
{
name: "browser.urlbar.suggest.quicksuggest",
name: "browser.urlbar.suggest.quicksuggest.nonsponsored",
value: false,
},
{
@ -194,7 +194,7 @@ add_task(async function test_scenario_offline() {
"quicksuggest.enabled": true,
"quicksuggest.dataCollection.enabled": false,
"quicksuggest.shouldShowOnboardingDialog": false,
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
// Nimbus variables
@ -216,7 +216,7 @@ add_task(async function test_scenario_offline() {
value: false,
},
{
name: "browser.urlbar.suggest.quicksuggest",
name: "browser.urlbar.suggest.quicksuggest.nonsponsored",
value: true,
},
{
@ -295,7 +295,7 @@ function assertDefaultScenarioPrefs() {
"quicksuggest.enabled": true,
"quicksuggest.dataCollection.enabled": false,
"quicksuggest.shouldShowOnboardingDialog": false,
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
// No Nimbus variables since they're only available when an experiment is
@ -315,7 +315,7 @@ function assertDefaultScenarioPrefs() {
value: false,
},
{
name: "browser.urlbar.suggest.quicksuggest",
name: "browser.urlbar.suggest.quicksuggest.nonsponsored",
value: true,
},
{
@ -327,7 +327,7 @@ function assertDefaultScenarioPrefs() {
}
function clearOnboardingPrefs() {
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
UrlbarPrefs.clear("quicksuggest.dataCollection.enabled");
UrlbarPrefs.clear("quicksuggest.shouldShowOnboardingDialog");
@ -479,7 +479,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
},
},
valueOverrides: {
@ -488,7 +488,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
},
},
});
@ -512,7 +512,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -522,7 +522,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -580,7 +580,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
@ -591,7 +591,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
@ -675,7 +675,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
},
},
valueOverrides: {
@ -684,7 +684,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
},
},
});
@ -708,7 +708,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -718,7 +718,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -752,7 +752,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
@ -788,7 +788,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
@ -814,7 +814,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
},
@ -824,7 +824,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
@ -850,7 +850,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
@ -861,7 +861,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
"quicksuggest.dataCollection.enabled": true,
},
@ -945,7 +945,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
},
},
valueOverrides: {
@ -954,7 +954,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
},
},
});
@ -978,7 +978,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -988,7 +988,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1081,7 +1081,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
},
@ -1091,7 +1091,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
},
@ -1116,7 +1116,7 @@ add_task(async function() {
initialPrefsToSet: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
@ -1127,7 +1127,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
@ -1411,7 +1411,7 @@ add_task(async function() {
{
initialPrefsToSet: {
defaultBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1421,7 +1421,7 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1429,7 +1429,7 @@ add_task(async function() {
{
initialPrefsToSet: {
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1439,11 +1439,11 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1463,11 +1463,11 @@ add_task(async function() {
await checkEnrollments({
initialPrefsToSet: {
defaultBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1477,11 +1477,11 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1508,7 +1508,7 @@ add_task(async function() {
{
initialPrefsToSet: {
defaultBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1518,7 +1518,7 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1526,7 +1526,7 @@ add_task(async function() {
{
initialPrefsToSet: {
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1536,11 +1536,11 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -1560,11 +1560,11 @@ add_task(async function() {
await checkEnrollments({
initialPrefsToSet: {
defaultBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -1574,11 +1574,11 @@ add_task(async function() {
},
expectedPrefs: {
defaultBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},

View File

@ -524,7 +524,7 @@ async function doDialogTest({
// Set all the required prefs for showing the onboarding dialog.
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.suggest.quicksuggest", false],
["browser.urlbar.suggest.quicksuggest.nonsponsored", false],
["browser.urlbar.suggest.quicksuggest.sponsored", false],
["browser.urlbar.quicksuggest.dataCollection.enabled", false],
["browser.urlbar.quicksuggest.enabled", true],
@ -541,7 +541,7 @@ async function doDialogTest({
await callback();
Assert.equal(
UrlbarPrefs.get("suggest.quicksuggest"),
UrlbarPrefs.get("suggest.quicksuggest.nonsponsored"),
expectOptIn,
"Main pref enabled status"
);

View File

@ -32,7 +32,7 @@ const TEST_DATA = [
];
const EXPERIMENT_PREF = "browser.urlbar.quicksuggest.enabled";
const SUGGEST_PREF = "suggest.quicksuggest";
const SUGGEST_PREF = "suggest.quicksuggest.nonsponsored";
// Spy for the custom impression/click sender
let spy;
@ -102,7 +102,7 @@ add_task(async function impression_offline_dataCollectionEnabled() {
add_task(async function impression_online_dataCollectionDisabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", false);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doImpressionTest({
scenario: "online",
@ -117,7 +117,7 @@ add_task(async function impression_online_dataCollectionDisabled() {
add_task(async function impression_online_dataCollectionEnabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", true);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doImpressionTest({
scenario: "online",
@ -160,7 +160,7 @@ async function doImpressionTest({ scenario, search_query }) {
await QuickSuggestTestUtils.setScenario(null);
UrlbarPrefs.clear("quicksuggest.dataCollection.enabled");
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
}
@ -243,7 +243,7 @@ add_task(async function click_keyboard_offline_dataCollectionEnabled() {
add_task(async function click_keyboard_online_dataCollectionDisabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", false);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doClickTest({
useKeyboard: true,
@ -259,7 +259,7 @@ add_task(async function click_keyboard_online_dataCollectionDisabled() {
add_task(async function click_keyboard_online_dataCollectionEnabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", true);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doClickTest({
useKeyboard: true,
@ -303,7 +303,7 @@ add_task(async function click_mouse_offline_dataCollectionEnabled() {
add_task(async function click_mouse_online_dataCollectionDisabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", false);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doClickTest({
useKeyboard: false,
@ -319,7 +319,7 @@ add_task(async function click_mouse_online_dataCollectionDisabled() {
add_task(async function click_mouse_online_dataCollectionEnabled() {
await QuickSuggestTestUtils.setScenario("online");
UrlbarPrefs.set("quicksuggest.dataCollection.enabled", true);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
await doClickTest({
useKeyboard: false,
@ -367,7 +367,7 @@ async function doClickTest({ useKeyboard, scenario, search_query }) {
await QuickSuggestTestUtils.setScenario(null);
UrlbarPrefs.clear("quicksuggest.dataCollection.enabled");
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
}
@ -489,13 +489,15 @@ add_task(async function help_mouse() {
await PlacesUtils.history.clear();
});
// Tests telemetry recorded when toggling the `suggest.quicksuggest` pref:
// Tests telemetry recorded when toggling the
// `suggest.quicksuggest.nonsponsored` pref:
// * contextservices.quicksuggest enable_toggled event telemetry
// * TelemetryEnvironment
add_task(async function enableToggled() {
Services.telemetry.clearEvents();
// Toggle the suggest.quicksuggest pref twice. We should get two events.
// Toggle the suggest.quicksuggest.nonsponsored pref twice. We should get two
// events.
let enabled = UrlbarPrefs.get(SUGGEST_PREF);
for (let i = 0; i < 2; i++) {
enabled = !enabled;
@ -509,15 +511,15 @@ add_task(async function enableToggled() {
]);
Assert.equal(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
enabled,
"suggest.quicksuggest is correct in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored is correct in TelemetryEnvironment"
);
}
// Set the main quicksuggest.enabled pref to false and toggle the
// suggest.quicksuggest pref again. We shouldn't get any events.
// suggest.quicksuggest.nonsponsored pref again. We shouldn't get any events.
await SpecialPowers.pushPrefEnv({
set: [[EXPERIMENT_PREF, false]],
});
@ -720,7 +722,7 @@ add_task(async function updateScenario() {
// Make sure the prefs don't have user values that would mask the default
// values set below.
await QuickSuggestTestUtils.setScenario(null);
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
Services.telemetry.clearEvents();
@ -732,8 +734,8 @@ add_task(async function updateScenario() {
"Default scenario is offline initially"
);
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest"),
"suggest.quicksuggest is true initially"
defaults.getBoolPref("suggest.quicksuggest.nonsponsored"),
"suggest.quicksuggest.nonsponsored is true initially"
);
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest.sponsored"),
@ -741,9 +743,9 @@ add_task(async function updateScenario() {
);
Assert.ok(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
"suggest.quicksuggest is true in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored is true in TelemetryEnvironment"
);
Assert.ok(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
@ -755,8 +757,8 @@ add_task(async function updateScenario() {
// set online
await QuickSuggestTestUtils.setScenario("online");
Assert.ok(
!defaults.getBoolPref("suggest.quicksuggest"),
"suggest.quicksuggest is false after setting online scenario"
!defaults.getBoolPref("suggest.quicksuggest.nonsponsored"),
"suggest.quicksuggest.nonsponsored is false after setting online scenario"
);
Assert.ok(
!defaults.getBoolPref("suggest.quicksuggest.sponsored"),
@ -765,9 +767,9 @@ add_task(async function updateScenario() {
TelemetryTestUtils.assertEvents([]);
Assert.ok(
!TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
"suggest.quicksuggest is false in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored is false in TelemetryEnvironment"
);
Assert.ok(
!TelemetryEnvironment.currentEnvironment.settings.userPrefs[
@ -779,8 +781,8 @@ add_task(async function updateScenario() {
// set back to offline
await QuickSuggestTestUtils.setScenario("offline");
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest"),
"suggest.quicksuggest is true after setting offline again"
defaults.getBoolPref("suggest.quicksuggest.nonsponsored"),
"suggest.quicksuggest.nonsponsored is true after setting offline again"
);
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest.sponsored"),
@ -789,9 +791,9 @@ add_task(async function updateScenario() {
TelemetryTestUtils.assertEvents([]);
Assert.ok(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
"suggest.quicksuggest is true in TelemetryEnvironment again"
"suggest.quicksuggest.nonsponsored is true in TelemetryEnvironment again"
);
Assert.ok(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
@ -807,14 +809,14 @@ add_task(async function telemetryEnvironmentUpdateNotification() {
// Make sure the prefs don't have user values that would mask the default
// values set below.
await QuickSuggestTestUtils.setScenario(null);
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
// Check the initial defaults.
let defaults = Services.prefs.getDefaultBranch("browser.urlbar.");
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest"),
"suggest.quicksuggest is true initially"
defaults.getBoolPref("suggest.quicksuggest.nonsponsored"),
"suggest.quicksuggest.nonsponsored is true initially"
);
Assert.ok(
defaults.getBoolPref("suggest.quicksuggest.sponsored"),
@ -825,14 +827,14 @@ add_task(async function telemetryEnvironmentUpdateNotification() {
await TelemetryEnvironment.testWatchPreferences(new Map());
// Set the prefs to false. They should remain absent in TelemetryEnvironment.
defaults.setBoolPref("suggest.quicksuggest", false);
defaults.setBoolPref("suggest.quicksuggest.nonsponsored", false);
defaults.setBoolPref("suggest.quicksuggest.sponsored", false);
Assert.ok(
!(
"browser.urlbar.suggest.quicksuggest" in
"browser.urlbar.suggest.quicksuggest.nonsponsored" in
TelemetryEnvironment.currentEnvironment.settings.userPrefs
),
"suggest.quicksuggest not in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored not in TelemetryEnvironment"
);
Assert.ok(
!(
@ -847,10 +849,10 @@ add_task(async function telemetryEnvironmentUpdateNotification() {
Services.obs.notifyObservers(null, "firefox-suggest-update");
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
false,
"suggest.quicksuggest is false in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored is false in TelemetryEnvironment"
);
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
@ -861,14 +863,14 @@ add_task(async function telemetryEnvironmentUpdateNotification() {
);
// Set the prefs to true. TelemetryEnvironment should keep the old values.
defaults.setBoolPref("suggest.quicksuggest", true);
defaults.setBoolPref("suggest.quicksuggest.nonsponsored", true);
defaults.setBoolPref("suggest.quicksuggest.sponsored", true);
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
false,
"suggest.quicksuggest remains false in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored remains false in TelemetryEnvironment"
);
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
@ -883,10 +885,10 @@ add_task(async function telemetryEnvironmentUpdateNotification() {
Services.obs.notifyObservers(null, "firefox-suggest-update");
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[
"browser.urlbar.suggest.quicksuggest"
"browser.urlbar.suggest.quicksuggest.nonsponsored"
],
true,
"suggest.quicksuggest is false in TelemetryEnvironment"
"suggest.quicksuggest.nonsponsored is false in TelemetryEnvironment"
);
Assert.strictEqual(
TelemetryEnvironment.currentEnvironment.settings.userPrefs[

View File

@ -163,7 +163,7 @@ add_task(async function init() {
// Tests with only non-sponsored suggestions enabled with a matching search
// string.
add_task(async function nonsponsoredOnly_match() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
let context = createContext(NONSPONSORED_SEARCH_STRING, {
@ -179,7 +179,7 @@ add_task(async function nonsponsoredOnly_match() {
// Tests with only non-sponsored suggestions enabled with a non-matching search
// string.
add_task(async function nonsponsoredOnly_noMatch() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
let context = createContext(SPONSORED_SEARCH_STRING, {
@ -191,7 +191,7 @@ add_task(async function nonsponsoredOnly_noMatch() {
// Tests with only sponsored suggestions enabled with a matching search string.
add_task(async function sponsoredOnly_sponsored() {
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext(SPONSORED_SEARCH_STRING, {
@ -207,7 +207,7 @@ add_task(async function sponsoredOnly_sponsored() {
// Tests with only sponsored suggestions enabled with a non-matching search
// string.
add_task(async function sponsoredOnly_nonsponsored() {
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext(NONSPONSORED_SEARCH_STRING, {
@ -220,7 +220,7 @@ add_task(async function sponsoredOnly_nonsponsored() {
// Tests with both sponsored and non-sponsored suggestions enabled with a
// search string that matches the sponsored suggestion.
add_task(async function both_sponsored() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext(SPONSORED_SEARCH_STRING, {
@ -236,7 +236,7 @@ add_task(async function both_sponsored() {
// Tests with both sponsored and non-sponsored suggestions enabled with a
// search string that matches the non-sponsored suggestion.
add_task(async function both_nonsponsored() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext(NONSPONSORED_SEARCH_STRING, {
@ -252,7 +252,7 @@ add_task(async function both_nonsponsored() {
// Tests with both sponsored and non-sponsored suggestions enabled with a
// search string that doesn't match either suggestion.
add_task(async function both_noMatch() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext("this doesn't match anything", {
@ -265,7 +265,7 @@ add_task(async function both_noMatch() {
// Tests with both the main and sponsored prefs disabled with a search string
// that matches the sponsored suggestion.
add_task(async function neither_sponsored() {
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
let context = createContext(SPONSORED_SEARCH_STRING, {
@ -278,7 +278,7 @@ add_task(async function neither_sponsored() {
// Tests with both the main and sponsored prefs disabled with a search string
// that matches the non-sponsored suggestion.
add_task(async function neither_nonsponsored() {
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
let context = createContext(NONSPONSORED_SEARCH_STRING, {
@ -290,7 +290,7 @@ add_task(async function neither_nonsponsored() {
// Search string matching should be case insensitive and ignore leading spaces.
add_task(async function caseInsensitiveAndLeadingSpaces() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let context = createContext(" " + SPONSORED_SEARCH_STRING.toUpperCase(), {
@ -306,7 +306,7 @@ add_task(async function caseInsensitiveAndLeadingSpaces() {
// Results should be returned even when `browser.search.suggest.enabled` is
// false.
add_task(async function browser_search_suggest_enabled() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("browser.search.suggest.enabled", false);
@ -325,7 +325,7 @@ add_task(async function browser_search_suggest_enabled() {
// Results should be returned even when `browser.urlbar.suggest.searches` is
// false.
add_task(async function browser_search_suggest_enabled() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("suggest.searches", false);
@ -344,7 +344,7 @@ add_task(async function browser_search_suggest_enabled() {
// Neither sponsored nor non-sponsored results should appear in private contexts
// even when suggestions in private windows are enabled.
add_task(async function privateContext() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
for (let privateSuggestionsEnabled of [true, false]) {
@ -368,7 +368,7 @@ add_task(async function privateContext() {
// When search suggestions come before general results and the only general
// result is a quick suggest result, it should come last.
add_task(async function suggestionsBeforeGeneral_only() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("browser.search.suggest.enabled", true);
UrlbarPrefs.set("suggest.searches", true);
@ -406,7 +406,7 @@ add_task(async function suggestionsBeforeGeneral_only() {
// general results besides quick suggest, the quick suggest result should come
// last.
add_task(async function suggestionsBeforeGeneral_others() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("browser.search.suggest.enabled", true);
UrlbarPrefs.set("suggest.searches", true);
@ -461,7 +461,7 @@ add_task(async function suggestionsBeforeGeneral_others() {
// When general results come before search suggestions and the only general
// result is a quick suggest result, it should come before suggestions.
add_task(async function generalBeforeSuggestions_only() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("browser.search.suggest.enabled", true);
UrlbarPrefs.set("suggest.searches", true);
@ -499,7 +499,7 @@ add_task(async function generalBeforeSuggestions_only() {
// general results besides quick suggest, the quick suggest result should be the
// last general result.
add_task(async function generalBeforeSuggestions_others() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("browser.search.suggest.enabled", true);
UrlbarPrefs.set("suggest.searches", true);
@ -616,7 +616,7 @@ async function doDedupeAgainstURLTest({
// First, do a search with quick suggest disabled to make sure the search
// string matches the visit.
info("Doing first query");
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
let context = createContext(searchString, { isPrivate: false });
await check_results({
@ -635,7 +635,7 @@ async function doDedupeAgainstURLTest({
});
// Now do another search with quick suggest enabled.
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
context = createContext(searchString, { isPrivate: false });
@ -660,7 +660,7 @@ async function doDedupeAgainstURLTest({
info("Doing second query");
await check_results({ context, matches: expectedResults });
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
UrlbarPrefs.clear("suggest.searches");
await PlacesUtils.history.clear();
@ -668,7 +668,7 @@ async function doDedupeAgainstURLTest({
// Tests the remote settings latency histogram.
add_task(async function latencyTelemetry() {
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
let histogram = Services.telemetry.getHistogramById(
@ -702,7 +702,7 @@ add_task(async function latencyTelemetry() {
// quick suggest is enabled.
add_task(async function setupAndTeardown() {
// Disable the suggest prefs so the settings client starts out torn down.
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
@ -713,18 +713,18 @@ add_task(async function setupAndTeardown() {
// Setting one of the suggest prefs should cause the client to be set up. We
// assume all previous tasks left `quicksuggest.enabled` true (from the init
// task).
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
UrlbarQuickSuggest._rs,
"Settings client is non-null after enabling suggest.quicksuggest"
"Settings client is non-null after enabling suggest.quicksuggest.nonsponsored"
);
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
!UrlbarQuickSuggest._rs,
"Settings client is null after disabling suggest.quicksuggest"
"Settings client is null after disabling suggest.quicksuggest.nonsponsored"
);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
@ -734,18 +734,18 @@ add_task(async function setupAndTeardown() {
"Settings client is non-null after enabling suggest.quicksuggest.sponsored"
);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
UrlbarQuickSuggest._rs,
"Settings client remains non-null after enabling suggest.quicksuggest"
"Settings client remains non-null after enabling suggest.quicksuggest.nonsponsored"
);
UrlbarPrefs.set("suggest.quicksuggest", false);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", false);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
UrlbarQuickSuggest._rs,
"Settings client remains non-null after disabling suggest.quicksuggest"
"Settings client remains non-null after disabling suggest.quicksuggest.nonsponsored"
);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", false);
@ -755,11 +755,11 @@ add_task(async function setupAndTeardown() {
"Settings client is null after disabling suggest.quicksuggest.sponsored"
);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
await UrlbarQuickSuggest.readyPromise;
Assert.ok(
UrlbarQuickSuggest._rs,
"Settings client is non-null after enabling suggest.quicksuggest"
"Settings client is non-null after enabling suggest.quicksuggest.nonsponsored"
);
UrlbarPrefs.set("quicksuggest.enabled", false);
@ -770,7 +770,7 @@ add_task(async function setupAndTeardown() {
);
// Leave the prefs in the same state as when the task started.
UrlbarPrefs.clear("suggest.quicksuggest");
UrlbarPrefs.clear("suggest.quicksuggest.nonsponsored");
UrlbarPrefs.clear("suggest.quicksuggest.sponsored");
UrlbarPrefs.set("quicksuggest.enabled", true);
await UrlbarQuickSuggest.readyPromise;

View File

@ -115,7 +115,7 @@ let gMerinoResponse;
add_task(async function init() {
UrlbarPrefs.set("quicksuggest.enabled", true);
UrlbarPrefs.set("suggest.quicksuggest", true);
UrlbarPrefs.set("suggest.quicksuggest.nonsponsored", true);
UrlbarPrefs.set("suggest.quicksuggest.sponsored", true);
UrlbarPrefs.set("quicksuggest.shouldShowOnboardingDialog", false);

View File

@ -148,7 +148,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -180,7 +180,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -266,7 +266,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
},
},
});
@ -297,7 +297,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": false,
"suggest.quicksuggest.nonsponsored": false,
"suggest.quicksuggest.sponsored": false,
},
},
@ -396,7 +396,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
},
},
});
@ -427,7 +427,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.offline,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
},
},
@ -511,7 +511,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"quicksuggest.dataCollection.enabled": true,
},
},
@ -544,7 +544,7 @@ add_task(async function() {
expectedPrefs: {
defaultBranch: UrlbarPrefs.FIREFOX_SUGGEST_DEFAULT_PREFS.online,
userBranch: {
"suggest.quicksuggest": true,
"suggest.quicksuggest.nonsponsored": true,
"suggest.quicksuggest.sponsored": true,
"quicksuggest.dataCollection.enabled": true,
},

View File

@ -30,7 +30,7 @@ const PREFS = [
expectedOtherValue: true,
},
{
name: "browser.urlbar.suggest.quicksuggest",
name: "browser.urlbar.suggest.quicksuggest.nonsponsored",
get: "getBoolPref",
set: "setBoolPref",
expectedOfflineValue: true,

View File

@ -2944,8 +2944,9 @@ contextservices.quicksuggest:
- "firefox"
record_in_processes: ["main"]
description: >
This is recorded when the `browser.urlbar.suggest.quicksuggest` boolean
pref is toggled.
This is recorded when the
`browser.urlbar.suggest.quicksuggest.nonsponsored` boolean pref is
toggled.
bug_numbers: [1693126]
notification_emails:
- fx-search@mozilla.com

View File

@ -264,7 +264,10 @@ const DEFAULT_ENVIRONMENT_PREFS = new Map([
{ what: RECORD_DEFAULTPREF_VALUE },
],
["browser.urlbar.showSearchSuggestionsFirst", { what: RECORD_PREF_VALUE }],
["browser.urlbar.suggest.quicksuggest", { what: RECORD_DEFAULTPREF_VALUE }],
[
"browser.urlbar.suggest.quicksuggest.nonsponsored",
{ what: RECORD_DEFAULTPREF_VALUE },
],
[
"browser.urlbar.suggest.quicksuggest.sponsored",
{ what: RECORD_DEFAULTPREF_VALUE },
@ -1788,7 +1791,7 @@ EnvironmentCache.prototype = {
*/
_updateFirefoxSuggest() {
let prefs = [
"browser.urlbar.suggest.quicksuggest",
"browser.urlbar.suggest.quicksuggest.nonsponsored",
"browser.urlbar.suggest.quicksuggest.sponsored",
];
for (let p of prefs) {

View File

@ -383,7 +383,7 @@ The following is a partial list of `collected preferences <https://searchfox.org
- ``browser.urlbar.quicksuggest.dataCollection.enabled``: Whether the user has opted in to data collection for Firefox Suggest. This pref is set to true when the user opts in to the Firefox Suggest onboarding dialog modal. The user can also toggle the pref using a toggle switch in the Firefox Suggest preferences UI.
- ``browser.urlbar.suggest.quicksuggest``: True if non-sponsored Firefox Suggest suggestions are enabled in the urlbar.
- ``browser.urlbar.suggest.quicksuggest.nonsponsored``: True if non-sponsored Firefox Suggest suggestions are enabled in the urlbar.
- ``browser.urlbar.suggest.quicksuggest.sponsored``: True if sponsored Firefox Suggest suggestions are enabled in the urlbar.