Bug 1478041 - Remove some old UI migration steps. r?gijs draft
authorDão Gottwald <dao@mozilla.com>
Wed, 25 Jul 2018 14:30:38 +0200
changeset 822481 daf5dd0410767fe29abbf88cbb7fe6b5f3adea3f
parent 822480 dc635e0560b7eaab8366da26f31e1d2ff7c4cde6
push id117387
push userdgottwald@mozilla.com
push dateWed, 25 Jul 2018 12:31:02 +0000
reviewersgijs
bugs1478041
milestone63.0a1
Bug 1478041 - Remove some old UI migration steps. r?gijs MozReview-Commit-ID: KnCUnzZusjf
browser/components/moz.build
browser/components/nsBrowserGlue.js
browser/components/tests/unit/test_browserGlue_migration_loop_cleanup.js
browser/components/tests/unit/xpcshell.ini
toolkit/components/passwordmgr/LoginHelper.jsm
toolkit/components/passwordmgr/test/unit/test_removeLegacySignonFiles.js
toolkit/components/passwordmgr/test/unit/xpcshell.ini
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -14,19 +14,16 @@ with Files("tests/**"):
     BUG_COMPONENT = ("Firefox", "General")
 
 with Files("tests/browser/browser_bug538331.js"):
     BUG_COMPONENT = ("Toolkit", "Application Update")
 
 with Files("tests/browser/browser_contentpermissionprompt.js"):
     BUG_COMPONENT = ("Firefox", "Site Identity and Permission Panels")
 
-with Files("tests/unit/test_browserGlue_migration_loop_cleanup.js"):
-    BUG_COMPONENT = ("Firefox", "General")
-
 with Files("tests/unit/test_distribution.js"):
     BUG_COMPONENT = ("Firefox", "Distributions")
 
 with Files("safebrowsing/**"):
     BUG_COMPONENT = ("Toolkit", "Safe Browsing")
 
 with Files('controlcenter/**'):
     BUG_COMPONENT = ('Firefox', 'General')
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -1836,73 +1836,16 @@ BrowserGlue.prototype = {
       return;
     }
 
     if (currentUIVersion >= UI_VERSION)
       return;
 
     let xulStore = Services.xulStore;
 
-    if (currentUIVersion < 36) {
-      xulStore.removeValue("chrome://passwordmgr/content/passwordManager.xul",
-                           "passwordCol",
-                           "hidden");
-    }
-
-    if (currentUIVersion < 37) {
-      Services.prefs.clearUserPref("browser.sessionstore.restore_on_demand");
-    }
-
-    if (currentUIVersion < 38) {
-      LoginHelper.removeLegacySignonFiles();
-    }
-
-    if (currentUIVersion < 39) {
-      // Remove the 'defaultset' value for all the toolbars
-      let toolbars = ["nav-bar", "PersonalToolbar",
-                      "TabsToolbar", "toolbar-menubar"];
-      for (let toolbarId of toolbars) {
-        xulStore.removeValue(BROWSER_DOCURL, toolbarId, "defaultset");
-      }
-    }
-
-    if (currentUIVersion < 40) {
-      const kOldSafeBrowsingPref = "browser.safebrowsing.enabled";
-      // Default value is set to true, a user pref means that the pref was
-      // set to false.
-      if (Services.prefs.prefHasUserValue(kOldSafeBrowsingPref) &&
-          !Services.prefs.getBoolPref(kOldSafeBrowsingPref)) {
-        Services.prefs.setBoolPref("browser.safebrowsing.phishing.enabled",
-                                   false);
-        // Should just remove support for the pref entirely, even if it's
-        // only in about:config
-        Services.prefs.clearUserPref(kOldSafeBrowsingPref);
-      }
-    }
-
-    if (currentUIVersion < 41) {
-      const Preferences = ChromeUtils.import("resource://gre/modules/Preferences.jsm", {}).Preferences;
-      Preferences.resetBranch("loop.");
-    }
-
-    if (currentUIVersion < 42) {
-      let backupFile = Services.dirsvc.get("ProfD", Ci.nsIFile);
-      backupFile.append("tabgroups-session-backup.json");
-      OS.File.remove(backupFile.path, {ignoreAbsent: true}).catch(ex => Cu.reportError(ex));
-    }
-
-    if (currentUIVersion < 43) {
-      let currentTheme = Services.prefs.getCharPref("lightweightThemes.selectedThemeID", "");
-      if (currentTheme == "firefox-devedition@mozilla.org") {
-        let newTheme = Services.prefs.getCharPref("devtools.theme") == "dark" ?
-          "firefox-compact-dark@mozilla.org" : "firefox-compact-light@mozilla.org";
-        Services.prefs.setCharPref("lightweightThemes.selectedThemeID", newTheme);
-      }
-    }
-
     if (currentUIVersion < 44) {
       // Merge the various cosmetic animation prefs into one. If any were set to
       // disable animations, we'll disabled cosmetic animations entirely.
       let animate = Services.prefs.getBoolPref("browser.tabs.animate", true) &&
                     Services.prefs.getBoolPref("browser.fullscreen.animate", true) &&
                     !Services.prefs.getBoolPref("alerts.disableSlidingEffect", false);
 
       Services.prefs.setBoolPref("toolkit.cosmeticAnimations.enabled", animate);
@@ -2100,20 +2043,16 @@ BrowserGlue.prototype = {
             } catch (e) { /* Don't panic if the value is not a valid locale code. */ }
           }
         }
         Services.prefs.clearUserPref(SELECTED_LOCALE_PREF);
         Services.prefs.clearUserPref(MATCHOS_LOCALE_PREF);
       }
     }
 
-    if (currentUIVersion < 60) {
-      // This version is superseded by version 66.  See bug 1444965.
-    }
-
     if (currentUIVersion < 61) {
       // Remove persisted toolbarset from navigator toolbox
       xulStore.removeValue(BROWSER_DOCURL, "navigator-toolbox", "toolbarset");
     }
 
     if (currentUIVersion < 62) {
       // Remove iconsize and mode from all the toolbars
       let toolbars = ["navigator-toolbox", "nav-bar", "PersonalToolbar",
deleted file mode 100644
--- a/browser/components/tests/unit/test_browserGlue_migration_loop_cleanup.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const UI_VERSION = 41;
-const TOPIC_BROWSERGLUE_TEST = "browser-glue-test";
-const TOPICDATA_BROWSERGLUE_TEST = "force-ui-migration";
-
-var gBrowserGlue = Cc["@mozilla.org/browser/browserglue;1"]
-                     .getService(Ci.nsIObserver);
-
-Services.prefs.setIntPref("browser.migration.version", UI_VERSION - 1);
-
-add_task(async function test_check_cleanup_loop_prefs() {
-  Services.prefs.setBoolPref("loop.createdRoom", true);
-  Services.prefs.setBoolPref("loop1.createdRoom", true);
-  Services.prefs.setBoolPref("loo.createdRoom", true);
-
-  // Simulate a migration.
-  gBrowserGlue.observe(null, TOPIC_BROWSERGLUE_TEST, TOPICDATA_BROWSERGLUE_TEST);
-
-  Assert.throws(() => Services.prefs.getBoolPref("loop.createdRoom"),
-                /NS_ERROR_UNEXPECTED/,
-                "should have cleared old loop preference 'loop.createdRoom'");
-  Assert.ok(Services.prefs.getBoolPref("loop1.createdRoom"),
-            "should have left non-loop pref 'loop1.createdRoom' untouched");
-  Assert.ok(Services.prefs.getBoolPref("loo.createdRoom"),
-            "should have left non-loop pref 'loo.createdRoom' untouched");
-});
-
-registerCleanupFunction(() => {
-  Services.prefs.clearUserPref("browser.migration.version");
-  Services.prefs.clearUserPref("loop.createdRoom");
-  Services.prefs.clearUserPref("loop1.createdRoom");
-  Services.prefs.clearUserPref("loo.createdRoom");
-});
--- a/browser/components/tests/unit/xpcshell.ini
+++ b/browser/components/tests/unit/xpcshell.ini
@@ -1,13 +1,12 @@
 [DEFAULT]
 head = head.js
 firefox-appdir = browser
 skip-if = toolkit == 'android'
 support-files =
   distribution.ini
   data/engine-de-DE.xml
 
-[test_browserGlue_migration_loop_cleanup.js]
 [test_distribution.js]
 [test_distribution_cachedexistence.js]
 [test_browserGlue_migration_social_cleanup.js]
 [test_browserGlue_pingcentre.js]
--- a/toolkit/components/passwordmgr/LoginHelper.jsm
+++ b/toolkit/components/passwordmgr/LoginHelper.jsm
@@ -736,43 +736,16 @@ var LoginHelper = {
 
   /**
    * As above, but for an array of objects.
    */
   vanillaObjectsToLogins(logins) {
     return logins.map(this.vanillaObjectToLogin);
   },
 
-  removeLegacySignonFiles() {
-    const {Constants, Path, File} = ChromeUtils.import("resource://gre/modules/osfile.jsm").OS;
-
-    const profileDir = Constants.Path.profileDir;
-    const defaultSignonFilePrefs = new Map([
-      ["signon.SignonFileName", "signons.txt"],
-      ["signon.SignonFileName2", "signons2.txt"],
-      ["signon.SignonFileName3", "signons3.txt"]
-    ]);
-    const toDeletes = new Set();
-
-    for (let [pref, val] of defaultSignonFilePrefs.entries()) {
-      toDeletes.add(Path.join(profileDir, val));
-
-      try {
-        let signonFile = Services.prefs.getCharPref(pref);
-
-        toDeletes.add(Path.join(profileDir, signonFile));
-        Services.prefs.clearUserPref(pref);
-      } catch (e) {}
-    }
-
-    for (let file of toDeletes) {
-      File.remove(file);
-    }
-  },
-
   /**
    * Returns true if the user has a master password set and false otherwise.
    */
   isMasterPasswordSet() {
     let tokenDB = Cc["@mozilla.org/security/pk11tokendb;1"]
                     .getService(Ci.nsIPK11TokenDB);
     let token = tokenDB.getInternalKeyToken();
     return token.hasPassword;
deleted file mode 100644
--- a/toolkit/components/passwordmgr/test/unit/test_removeLegacySignonFiles.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Tests the LoginHelper object.
- */
-
-"use strict";
-
-
-
-ChromeUtils.defineModuleGetter(this, "LoginHelper",
-                               "resource://gre/modules/LoginHelper.jsm");
-
-
-async function createSignonFile(singon) {
-  let {file, pref}  = singon;
-
-  if (pref) {
-    Services.prefs.setCharPref(pref, file);
-  }
-
-  await OS.File.writeAtomic(
-    OS.Path.join(OS.Constants.Path.profileDir, file), new Uint8Array(1));
-}
-
-async function isSignonClear(singon) {
-  const {file, pref} = singon;
-  const fileExists = await OS.File.exists(
-    OS.Path.join(OS.Constants.Path.profileDir, file));
-
-  if (pref) {
-    try {
-      Services.prefs.getCharPref(pref);
-      return false;
-    } catch (e) {}
-  }
-
-  return !fileExists;
-}
-
-add_task(async function test_remove_lagecy_signonfile() {
-  // In the last test case, signons3.txt being deleted even when
-  // it doesn't exist.
-  const signonsSettings = [[
-    { file: "signons.txt" },
-    { file: "signons2.txt" },
-    { file: "signons3.txt" }
-  ], [
-    { file: "signons.txt", pref: "signon.SignonFileName" },
-    { file: "signons2.txt", pref: "signon.SignonFileName2" },
-    { file: "signons3.txt", pref: "signon.SignonFileName3" }
-  ], [
-    { file: "signons2.txt" },
-    { file: "singons.txt", pref: "signon.SignonFileName" },
-    { file: "customized2.txt", pref: "signon.SignonFileName2" },
-    { file: "customized3.txt", pref: "signon.SignonFileName3" }
-  ]];
-
-  for (let setting of signonsSettings) {
-    for (let singon of setting) {
-      await createSignonFile(singon);
-    }
-
-    LoginHelper.removeLegacySignonFiles();
-
-    for (let singon of setting) {
-      equal(await isSignonClear(singon), true);
-    }
-  }
-});
--- a/toolkit/components/passwordmgr/test/unit/xpcshell.ini
+++ b/toolkit/components/passwordmgr/test/unit/xpcshell.ini
@@ -2,18 +2,16 @@
 head = head.js
 support-files = data/**
 
 # Test JSON file access and import from SQLite, not applicable to Android.
 [test_module_LoginImport.js]
 skip-if = os == "android"
 [test_module_LoginStore.js]
 skip-if = os == "android"
-[test_removeLegacySignonFiles.js]
-skip-if = os == "android"
 
 # Test SQLite database backup and migration, applicable to Android only.
 [test_storage_mozStorage.js]
 skip-if = true || os != "android" # Bug 1171687: Needs fixing on Android
 
 # The following tests apply to any storage back-end.
 [test_context_menu.js]
 skip-if = os == "android" # The context menu isn't used on Android.