Bug 1239949 - Add a pref for showing bookmarks toolbar and menubar; r?mixedpuppy draft
authorMichael Kaply <mozilla@kaply.com>
Wed, 24 Feb 2016 09:47:52 -0600
changeset 334159 208c96c7e0a579f5fc89ff5ffe488babc3a01d80
parent 333466 8b7654a6dbb5124d7fc3dc3fd75155fdc0306afe
child 514833 98970aca33c4dc76e869f75023ea50c7feed9bcc
push id11459
push usermozilla@kaply.com
push dateWed, 24 Feb 2016 15:46:06 +0000
reviewersmixedpuppy
bugs1239949
milestone47.0a1
Bug 1239949 - Add a pref for showing bookmarks toolbar and menubar; r?mixedpuppy MozReview-Commit-ID: KqCSjlhWAOo
browser/components/distribution.js
--- a/browser/components/distribution.js
+++ b/browser/components/distribution.js
@@ -235,19 +235,24 @@ DistributionCustomizer.prototype = {
           }
         }
 
         break;
       }
     }
   }),
 
+  _newProfile: false,
   _customizationsApplied: false,
   applyCustomizations: function DIST_applyCustomizations() {
     this._customizationsApplied = true;
+
+    if (!Services.prefs.prefHasUserValue("browser.migration.version"))
+      this._newProfile = true;
+
     if (!this._ini)
       return this._checkCustomizationComplete();
 
     // nsPrefService loads very early.  Reload prefs so we can set
     // distribution defaults during the prefservice:after-app-defaults
     // notification (see applyPrefDefaults below)
     this._prefSvc.QueryInterface(Ci.nsIObserver);
     this._prefSvc.observe(null, "reload-default-prefs", null);
@@ -403,16 +408,35 @@ DistributionCustomizer.prototype = {
         } catch (e) { /* ignore bad prefs and move on */ }
       }
     }
 
     return this._checkCustomizationComplete();
   },
 
   _checkCustomizationComplete: function DIST__checkCustomizationComplete() {
+    const BROWSER_DOCURL = "chrome://browser/content/browser.xul";
+
+    if (this._newProfile) {
+      let xulStore = Cc["@mozilla.org/xul/xulstore;1"].getService(Ci.nsIXULStore);
+
+      try {
+        var showPersonalToolbar = Services.prefs.getBoolPref("browser.showPersonalToolbar");
+        if (showPersonalToolbar) {
+          xulStore.setValue(BROWSER_DOCURL, "PersonalToolbar", "collapsed", "false");
+        }
+      } catch(e) {}
+      try {
+        var showMenubar = Services.prefs.getBoolPref("browser.showMenubar");
+        if (showMenubar) {
+          xulStore.setValue(BROWSER_DOCURL, "toolbar-menubar", "collapsed", "false");
+        }
+      } catch(e) {}
+    }
+
     let prefDefaultsApplied = this._prefDefaultsApplied || !this._ini;
     if (this._customizationsApplied && this._bookmarksApplied &&
         prefDefaultsApplied) {
       let os = Cc["@mozilla.org/observer-service;1"].
                getService(Ci.nsIObserverService);
       os.notifyObservers(null, DISTRIBUTION_CUSTOMIZATION_COMPLETE_TOPIC, null);
     }
   }