mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
Bug 1745248 - Add form autofill pref migration and tests. r=dimi,sgalich
Differential Revision: https://phabricator.services.mozilla.com/D135553
This commit is contained in:
parent
eed46ce0fa
commit
56f721d0f2
@ -3401,7 +3401,7 @@ BrowserGlue.prototype = {
|
||||
_migrateUI: function BG__migrateUI() {
|
||||
// Use an increasing number to keep track of the current migration state.
|
||||
// Completely unrelated to the current Firefox release number.
|
||||
const UI_VERSION = 122;
|
||||
const UI_VERSION = 123;
|
||||
const BROWSER_DOCURL = AppConstants.BROWSER_CHROME_URL;
|
||||
|
||||
const PROFILE_DIR = Services.dirsvc.get("ProfD", Ci.nsIFile).path;
|
||||
@ -4120,6 +4120,42 @@ BrowserGlue.prototype = {
|
||||
} catch (ex) {}
|
||||
}
|
||||
|
||||
if (currentUIVersion < 123) {
|
||||
// Migrate "extensions.formautofill.available" and
|
||||
// "extensions.formautofill.creditCards.available" from old to new prefs
|
||||
const oldFormAutofillModule = "extensions.formautofill.available";
|
||||
const oldCreditCardsAvailable =
|
||||
"extensions.formautofill.creditCards.available";
|
||||
const newCreditCardsAvailable =
|
||||
"extensions.formautofill.creditCards.supported";
|
||||
const newAddressesAvailable =
|
||||
"extensions.formautofill.addresses.supported";
|
||||
if (Services.prefs.prefHasUserValue(oldFormAutofillModule)) {
|
||||
let moduleAvailability = Services.prefs.getCharPref(
|
||||
oldFormAutofillModule
|
||||
);
|
||||
if (moduleAvailability == "on") {
|
||||
Services.prefs.setCharPref(newAddressesAvailable, moduleAvailability);
|
||||
Services.prefs.setCharPref(
|
||||
newCreditCardsAvailable,
|
||||
Services.prefs.getBoolPref(oldCreditCardsAvailable) ? "on" : "off"
|
||||
);
|
||||
}
|
||||
|
||||
if (moduleAvailability == "off") {
|
||||
Services.prefs.setCharPref(
|
||||
newCreditCardsAvailable,
|
||||
moduleAvailability
|
||||
);
|
||||
Services.prefs.setCharPref(newAddressesAvailable, moduleAvailability);
|
||||
}
|
||||
}
|
||||
|
||||
// after migrating, clear old prefs so we can remove them later.
|
||||
Services.prefs.clearUserPref(oldFormAutofillModule);
|
||||
Services.prefs.clearUserPref(oldCreditCardsAvailable);
|
||||
}
|
||||
|
||||
// Update the migration version.
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION);
|
||||
},
|
||||
|
@ -0,0 +1,142 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
const TOPIC_BROWSERGLUE_TEST = "browser-glue-test";
|
||||
const TOPICDATA_BROWSERGLUE_TEST = "force-ui-migration";
|
||||
|
||||
const gBrowserGlue = Cc["@mozilla.org/browser/browserglue;1"].getService(
|
||||
Ci.nsIObserver
|
||||
);
|
||||
const UI_VERSION = 123;
|
||||
|
||||
function ensureOldPrefsAreCleared() {
|
||||
Assert.ok(
|
||||
!Services.prefs.prefHasUserValue("extensions.formautofill.available"),
|
||||
"main module available pref should have been cleared"
|
||||
);
|
||||
Assert.ok(
|
||||
!Services.prefs.prefHasUserValue(
|
||||
"extensions.formautofill.creditCards.available"
|
||||
),
|
||||
"old credit card available pref should have been cleared"
|
||||
);
|
||||
}
|
||||
|
||||
add_task(async function setup() {
|
||||
registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref("browser.migration.version");
|
||||
Services.prefs.clearUserPref("extensions.formautofill.available");
|
||||
Services.prefs.clearUserPref(
|
||||
"extensions.formautofill.creditCards.available"
|
||||
);
|
||||
Services.prefs.clearUserPref(
|
||||
"extensions.formautofill.creditCards.supported"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
add_task(async function test_check_form_autofill_module_detect() {
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION - 1);
|
||||
Services.prefs.setCharPref("extensions.formautofill.available", "detect");
|
||||
// Simulate a migration.
|
||||
gBrowserGlue.observe(
|
||||
null,
|
||||
TOPIC_BROWSERGLUE_TEST,
|
||||
TOPICDATA_BROWSERGLUE_TEST
|
||||
);
|
||||
// old credit card available should migrate to "detect" due to
|
||||
// "extensions.formautofill.available" being "detect".
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.creditCards.supported"),
|
||||
"detect"
|
||||
);
|
||||
// old address available pref follows the main module pref
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.addresses.supported"),
|
||||
"detect"
|
||||
);
|
||||
ensureOldPrefsAreCleared();
|
||||
});
|
||||
|
||||
add_task(async function test_check_old_form_autofill_module_off() {
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION - 1);
|
||||
Services.prefs.setCharPref("extensions.formautofill.available", "off");
|
||||
|
||||
// Simulate a migration.
|
||||
gBrowserGlue.observe(
|
||||
null,
|
||||
TOPIC_BROWSERGLUE_TEST,
|
||||
TOPICDATA_BROWSERGLUE_TEST
|
||||
);
|
||||
|
||||
// old credit card available should migrate to off due to
|
||||
// "extensions.formautofill.available" being off.
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.creditCards.supported"),
|
||||
"off"
|
||||
);
|
||||
// old address available pref follows the main module pref
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.addresses.supported"),
|
||||
"off"
|
||||
);
|
||||
ensureOldPrefsAreCleared();
|
||||
});
|
||||
|
||||
add_task(async function test_check_old_form_autofill_module_on_cc_on() {
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION - 1);
|
||||
Services.prefs.setCharPref("extensions.formautofill.available", "on");
|
||||
Services.prefs.setBoolPref(
|
||||
"extensions.formautofill.creditCards.available",
|
||||
true
|
||||
);
|
||||
|
||||
// Simulate a migration.
|
||||
gBrowserGlue.observe(
|
||||
null,
|
||||
TOPIC_BROWSERGLUE_TEST,
|
||||
TOPICDATA_BROWSERGLUE_TEST
|
||||
);
|
||||
|
||||
// old credit card available should migrate to "on" due to
|
||||
// "extensions.formautofill.available" being on and
|
||||
// "extensions.formautofill.creditCards.available" having a default value of true.
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.creditCards.supported"),
|
||||
"on"
|
||||
);
|
||||
// old address available pref follows the main module pref
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.addresses.supported"),
|
||||
"on"
|
||||
);
|
||||
ensureOldPrefsAreCleared();
|
||||
});
|
||||
|
||||
add_task(async function test_check_old_form_autofill_module_on_cc_off() {
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION - 1);
|
||||
Services.prefs.setCharPref("extensions.formautofill.available", "on");
|
||||
Services.prefs.setBoolPref(
|
||||
"extensions.formautofill.creditCards.available",
|
||||
false
|
||||
);
|
||||
|
||||
// Simulate a migration.
|
||||
gBrowserGlue.observe(
|
||||
null,
|
||||
TOPIC_BROWSERGLUE_TEST,
|
||||
TOPICDATA_BROWSERGLUE_TEST
|
||||
);
|
||||
|
||||
// old credit card available should migrate to "off" due to
|
||||
// "extensions.formautofill.available" being on and
|
||||
// "extensions.formautofill.creditCards.available" having a user set value of false.
|
||||
Assert.equal(
|
||||
Services.prefs.getCharPref("extensions.formautofill.creditCards.supported"),
|
||||
"off"
|
||||
);
|
||||
|
||||
ensureOldPrefsAreCleared();
|
||||
});
|
@ -5,6 +5,7 @@ skip-if = toolkit == 'android' # bug 1730213
|
||||
support-files =
|
||||
distribution.ini
|
||||
|
||||
[test_browserGlue_migration_formautofill.js]
|
||||
[test_browserGlue_migration_places_xulstore.js]
|
||||
[test_browserGlue_migration_ctrltab_recently_used_order.js]
|
||||
[test_distribution.js]
|
||||
|
@ -21,7 +21,8 @@ skip-if =
|
||||
(!debug && os == "mac") # perma-fail see Bug 1600059
|
||||
win10_2004 # Bug 1723573
|
||||
[browser_first_time_use_doorhanger.js]
|
||||
skip-if = verify || (!debug && os == "mac") # perma-fail see Bug 1600059
|
||||
skip-if =
|
||||
verify || (!debug && os == "mac") # perma-fail see Bug 1600059
|
||||
[browser_manageAddressesDialog.js]
|
||||
skip-if = !debug && os == "mac" # perma-fail see Bug 1600059
|
||||
[browser_privacyPreferences.js]
|
||||
|
Loading…
Reference in New Issue
Block a user