Bug 1472599 - Reset browser.startup.page preference for older profiles draft
authorAndrei Oprea <andrei.br92@gmail.com>
Wed, 18 Jul 2018 14:22:47 +0200
changeset 819740 665888e29387b03bc28af0717fb437aa544e5ec0
parent 819215 547144f5596c1a146b208d68d93950a6313080ca
push id116634
push userbmo:andrei.br92@gmail.com
push dateWed, 18 Jul 2018 12:35:57 +0000
bugs1472599
milestone63.0a1
Bug 1472599 - Reset browser.startup.page preference for older profiles MozReview-Commit-ID: LpzKJYxty1K
browser/components/preferences/in-content/home.js
--- a/browser/components/preferences/in-content/home.js
+++ b/browser/components/preferences/in-content/home.js
@@ -270,16 +270,19 @@ var gHomePane = {
       case this.HOME_MODE_BLANK:
         if (homePref.value !== "about:blank") {
           homePref.value = "about:blank";
         } else {
           this._renderCustomSettings({shouldShow: false});
         }
         break;
       case this.HOME_MODE_CUSTOM:
+        if (startupPref.value === gMainPane.STARTUP_PREF_BLANK) {
+          Services.prefs.clearUserPref(startupPref.id);
+        }
         this._renderCustomSettings({shouldShow: true});
         break;
     }
   },
 
   /**
    * Switches the "Use Current Page" button between its singular and plural
    * forms.
@@ -343,20 +346,18 @@ var gHomePane = {
     const rv = { urls: null, names: null };
     gSubDialog.open("chrome://browser/content/preferences/selectBookmark.xul",
       "resizable=yes, modal=yes", rv,
       this._setHomePageToBookmarkClosed.bind(this, rv));
     Services.telemetry.scalarAdd("preferences.use_bookmark", 1);
   },
 
   restoreDefaultHomePage() {
-    const homePref = Preferences.get("browser.startup.homepage");
-    const newtabPref = Preferences.get(this.NEWTAB_ENABLED_PREF);
-    homePref.value = homePref.defaultValue;
-    newtabPref.value = newtabPref.defaultValue;
+    Services.prefs.clearUserPref("browser.startup.homepage");
+    Services.prefs.clearUserPref(this.NEWTAB_ENABLED_PREF);
   },
 
   onCustomHomePageInput(event) {
     if (this._telemetryHomePageTimer) {
       clearTimeout(this._telemetryHomePageTimer);
     }
     let browserHomePage = event.target.value;
     // The length of the home page URL string should be more then four,
@@ -379,19 +380,17 @@ var gHomePane = {
   /**
    * Check all Home Tab preferences for user set values.
    */
   _changedHomeTabDefaultPrefs() {
     const homeContentChanged = this.homePanePrefs.some(pref => pref.hasUserValue);
     const homePref = Preferences.get("browser.startup.homepage");
     const newtabPref = Preferences.get(this.NEWTAB_ENABLED_PREF);
 
-    return homeContentChanged ||
-      (homePref.value !== homePref.defaultValue) ||
-      newtabPref.hasUserValue;
+    return homeContentChanged || homePref.hasUserValue || newtabPref.hasUserValue;
   },
 
   /**
    * Show the Restore Defaults button if any preference on the Home tab was
    * changed, or hide it otherwise.
    */
   toggleRestoreDefaultsBtn() {
     const btn = document.getElementById("restoreDefaultHomePageBtn");
@@ -399,17 +398,17 @@ var gHomePane = {
     btn.style.visibility = prefChanged ? "visible" : "hidden";
   },
 
   /**
    * Set all prefs on the Home tab back to their default values.
    */
   restoreDefaultPrefsForHome() {
     this.restoreDefaultHomePage();
-    this.homePanePrefs.forEach(pref => pref.value = pref.defaultValue);
+    this.homePanePrefs.forEach(pref => Services.prefs.clearUserPref(pref.id));
   },
 
   init() {
     // Event Listeners
     document.getElementById("homeMode").addEventListener("command", this.onMenuChange.bind(this));
     document.getElementById("homePageUrl").addEventListener("change", this.onCustomHomePageChange.bind(this));
     document.getElementById("homePageUrl").addEventListener("input", this.onCustomHomePageInput.bind(this));
     document.getElementById("useCurrentBtn").addEventListener("command", this.setHomePageToCurrent.bind(this));