merge fx-team to mozilla-central a=merge
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Wed, 01 Apr 2015 12:01:50 +0200
changeset 237062 da2f288368434e354fd0f48d93f463c55a4d1171
parent 237048 0b88606f8fe7d90b6c3d1d0c7c7b87381cd41ebd (current diff)
parent 237061 4d9d80b41d62f91f4fdfad5f35831601a2728050 (diff)
child 237063 e5b72a8edb82b506112f06dce71c55893ae9384d
push id57857
push userryanvm@gmail.com
push dateWed, 01 Apr 2015 16:40:29 +0000
treeherdermozilla-inbound@870046adb53a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone40.0a1
first release with
nightly linux32
da2f28836843 / 40.0a1 / 20150401085108 / files
nightly linux64
da2f28836843 / 40.0a1 / 20150401085108 / files
nightly mac
da2f28836843 / 40.0a1 / 20150401085108 / files
nightly win32
da2f28836843 / 40.0a1 / 20150401085108 / files
nightly win64
da2f28836843 / 40.0a1 / 20150401085108 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
merge fx-team to mozilla-central a=merge
browser/devtools/framework/test/browser_toolbox_options_devedition.js
browser/themes/windows/Metro_Glyph-aero.png
browser/themes/windows/preferences/checkbox-8.png
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1323,21 +1323,18 @@ pref("services.sync.prefs.sync.security.
 pref("services.sync.prefs.sync.security.tls.version.max", true);
 pref("services.sync.prefs.sync.signon.rememberSignons", true);
 pref("services.sync.prefs.sync.spellchecker.dictionary", true);
 pref("services.sync.prefs.sync.xpinstall.whitelist.required", true);
 #endif
 
 // Developer edition preferences
 #ifdef MOZ_DEV_EDITION
+pref("lightweightThemes.selectedThemeID", "firefox-devedition@mozilla.org");
 pref("browser.devedition.theme.enabled", true);
-pref("browser.devedition.theme.showCustomizeButton", true);
-#else
-pref("browser.devedition.theme.enabled", false);
-pref("browser.devedition.theme.showCustomizeButton", false);
 #endif
 
 // Developer edition promo preferences
 pref("devtools.devedition.promo.shown", false);
 pref("devtools.devedition.promo.url", "https://www.mozilla.org/firefox/developer/?utm_source=firefox-dev-tools&utm_medium=firefox-browser&utm_content=betadoorhanger");
 
 // Only potentially show in beta release
 #if MOZ_UPDATE_CHANNEL == beta
--- a/browser/base/content/browser-devedition.js
+++ b/browser/base/content/browser-devedition.js
@@ -2,56 +2,47 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 /**
  * Listeners for the DevEdition theme.  This adds an extra stylesheet
  * to browser.xul if a pref is set and no other themes are applied.
  */
 let DevEdition = {
-  _prefName: "browser.devedition.theme.enabled",
-  _themePrefName: "general.skins.selectedSkin",
-  _lwThemePrefName: "lightweightThemes.selectedThemeID",
   _devtoolsThemePrefName: "devtools.theme",
-
   styleSheetLocation: "chrome://browser/skin/devedition.css",
   styleSheet: null,
 
-  init: function () {
-    this._updateDevtoolsThemeAttribute();
-    this._updateStyleSheetFromPrefs();
+  get isThemeCurrentlyApplied() {
+    let theme = LightweightThemeManager.currentTheme;
+    return theme && theme.id == "firefox-devedition@mozilla.org";
+  },
 
-    // Listen for changes to all prefs except for complete themes.
-    // No need for this since changing a complete theme requires a
-    // restart.
-    Services.prefs.addObserver(this._lwThemePrefName, this, false);
-    Services.prefs.addObserver(this._prefName, this, false);
+  init: function () {
     Services.prefs.addObserver(this._devtoolsThemePrefName, this, false);
     Services.obs.addObserver(this, "lightweight-theme-styling-update", false);
+    this._updateDevtoolsThemeAttribute();
+
+    if (this.isThemeCurrentlyApplied) {
+      this._toggleStyleSheet(true);
+    }
   },
 
   observe: function (subject, topic, data) {
     if (topic == "lightweight-theme-styling-update") {
       let newTheme = JSON.parse(data);
-      if (!newTheme) {
-        // A lightweight theme has been unapplied, so just re-read prefs.
-        this._updateStyleSheetFromPrefs();
+      if (newTheme && newTheme.id == "firefox-devedition@mozilla.org") {
+        this._toggleStyleSheet(true);
       } else {
-        // A lightweight theme has been applied, but the pref may not be
-        // set yet if this happened from customize menu or addons page.
         this._toggleStyleSheet(false);
       }
     }
 
-    if (topic == "nsPref:changed") {
-      if (data == this._devtoolsThemePrefName) {
-        this._updateDevtoolsThemeAttribute();
-      } else {
-        this._updateStyleSheetFromPrefs();
-      }
+    if (topic == "nsPref:changed" && data == this._devtoolsThemePrefName) {
+      this._updateDevtoolsThemeAttribute();
     }
   },
 
   _inferBrightness: function() {
     ToolbarIconColor.inferFromText();
     // Get an inverted full screen button if the dark theme is applied.
     if (this.styleSheet &&
         document.documentElement.getAttribute("devtoolstheme") == "dark") {
@@ -65,42 +56,23 @@ let DevEdition = {
     // Set an attribute on root element to make it possible
     // to change colors based on the selected devtools theme.
     let devtoolsTheme = Services.prefs.getCharPref(this._devtoolsThemePrefName);
     if (devtoolsTheme != "dark") {
       devtoolsTheme = "light";
     }
     document.documentElement.setAttribute("devtoolstheme", devtoolsTheme);
     this._inferBrightness();
-    this._updateStyleSheetFromPrefs();
-  },
-
-  _updateStyleSheetFromPrefs: function() {
-    let lightweightThemeSelected = false;
-    try {
-      lightweightThemeSelected = !!Services.prefs.getCharPref(this._lwThemePrefName);
-    } catch(e) {}
-
-    let defaultThemeSelected = false;
-    try {
-       defaultThemeSelected = Services.prefs.getCharPref(this._themePrefName) == "classic/1.0";
-    } catch(e) {}
-
-    let deveditionThemeEnabled = Services.prefs.getBoolPref(this._prefName) &&
-      !lightweightThemeSelected && defaultThemeSelected;
-
-    this._toggleStyleSheet(deveditionThemeEnabled);
   },
 
   handleEvent: function(e) {
     if (e.type === "load") {
       this.styleSheet.removeEventListener("load", this);
       gBrowser.tabContainer._positionPinnedTabs();
       this._inferBrightness();
-      Services.obs.notifyObservers(window, "devedition-theme-state-changed", true);
     }
   },
 
   _toggleStyleSheet: function(deveditionThemeEnabled) {
     if (deveditionThemeEnabled && !this.styleSheet) {
       let styleSheetAttr = `href="${this.styleSheetLocation}" type="text/css"`;
       this.styleSheet = document.createProcessingInstruction(
         'xml-stylesheet', styleSheetAttr);
@@ -109,23 +81,20 @@ let DevEdition = {
       // NB: we'll notify observers once the stylesheet has fully loaded, see
       // handleEvent above.
     } else if (!deveditionThemeEnabled && this.styleSheet) {
       this.styleSheet.removeEventListener("load", this);
       this.styleSheet.remove();
       this.styleSheet = null;
       gBrowser.tabContainer._positionPinnedTabs();
       this._inferBrightness();
-      Services.obs.notifyObservers(window, "devedition-theme-state-changed", false);
     }
   },
 
   uninit: function () {
-    Services.prefs.removeObserver(this._lwThemePrefName, this);
-    Services.prefs.removeObserver(this._prefName, this);
     Services.prefs.removeObserver(this._devtoolsThemePrefName, this);
     Services.obs.removeObserver(this, "lightweight-theme-styling-update", false);
     if (this.styleSheet) {
       this.styleSheet.removeEventListener("load", this);
     }
     this.styleSheet = null;
   }
 };
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -40,16 +40,18 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 XPCOMUtils.defineLazyModuleGetter(this, "Log",
                                   "resource://gre/modules/Log.jsm");
 XPCOMUtils.defineLazyServiceGetter(this, "Favicons",
                                    "@mozilla.org/browser/favicon-service;1",
                                    "mozIAsyncFavicons");
 XPCOMUtils.defineLazyServiceGetter(this, "gDNSService",
                                    "@mozilla.org/network/dns-service;1",
                                    "nsIDNSService");
+XPCOMUtils.defineLazyModuleGetter(this, "LightweightThemeManager",
+                                  "resource://gre/modules/LightweightThemeManager.jsm");
 
 const nsIWebNavigation = Ci.nsIWebNavigation;
 
 var gLastBrowserCharset = null;
 var gProxyFavIcon = null;
 var gLastValidURLStr = "";
 var gInPrintPreviewMode = false;
 var gContextMenu = null; // nsContextMenu instance
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -160,31 +160,51 @@ let handleContentContextMenu = function 
 
   let doc = event.target.ownerDocument;
   let docLocation = doc.location.href;
   let charSet = doc.characterSet;
   let baseURI = doc.baseURI;
   let referrer = doc.referrer;
   let referrerPolicy = doc.referrerPolicy;
 
+  // Media related cache info parent needs for saving
+  let contentType = null;
+  let contentDisposition = null;
+  if (event.target.nodeType == Ci.nsIDOMNode.ELEMENT_NODE &&
+      event.target instanceof Ci.nsIImageLoadingContent &&
+      event.target.currentURI) {
+    try {
+      let imageCache = Cc["@mozilla.org/image/tools;1"].getService(Ci.imgITools)
+                                                       .getImgCacheForDocument(doc);
+      let props =
+        imageCache.findEntryProperties(event.target.currentURI);
+      if (props) {
+        contentType = props.get("type", Ci.nsISupportsCString).data;
+        contentDisposition = props.get("content-disposition", Ci.nsISupportsCString).data;
+      }
+    } catch (e) {
+      Cu.reportError(e);
+    }
+  }
+
   if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT) {
     let editFlags = SpellCheckHelper.isEditable(event.target, content);
     let spellInfo;
     if (editFlags &
         (SpellCheckHelper.EDITABLE | SpellCheckHelper.CONTENTEDITABLE)) {
       spellInfo =
         InlineSpellCheckerContent.initContextMenu(event, editFlags, this);
     }
 
     let customMenuItems = PageMenuChild.build(event.target);
     let principal = doc.nodePrincipal;
     sendSyncMessage("contextmenu",
                     { editFlags, spellInfo, customMenuItems, addonInfo,
                       principal, docLocation, charSet, baseURI, referrer,
-                      referrerPolicy },
+                      referrerPolicy, contentType, contentDisposition },
                     { event, popupNode: event.target });
   }
   else {
     // Break out to the parent window and pass the add-on info along
     let browser = docShell.chromeEventHandler;
     let mainWin = browser.ownerDocument.defaultView;
     mainWin.gContextMenuContentData = {
       isRemote: false,
@@ -192,16 +212,18 @@ let handleContentContextMenu = function 
       popupNode: event.target,
       browser: browser,
       addonInfo: addonInfo,
       documentURIObject: doc.documentURIObject,
       docLocation: docLocation,
       charSet: charSet,
       referrer: referrer,
       referrerPolicy: referrerPolicy,
+      contentType: contentType,
+      contentDisposition: contentDisposition,
     };
   }
 }
 
 Cc["@mozilla.org/eventlistenerservice;1"]
   .getService(Ci.nsIEventListenerService)
   .addSystemEventListener(global, "contextmenu", handleContentContextMenu, false);
 
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e4e8dcaa3b3cd01a1287359902561166d7f942ee
GIT binary patch
literal 95
zc%17D@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga%mF?juK#@*VoWXSL2@NQe!&b5
m&u*jvIb5DDjv*Cul9PaJHU?%h^O_Yv7K5j&pUXO@geCw~dlW4I
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..04cfba796dc6aa0bac6b3b368e929009bf01af52
GIT binary patch
literal 2402
zc$@)Z37z(dP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000RoNkl<ZcwWVq
zS%@Xqea3%hsk(jpZrwfI(=*+(SW;^=WMtXnu|1GjMA;O_*vQ02#MrT{2N5R$+t^7S
zY)l@46L3htiUNL+vml9>ID{auY=ILjB72Yoqmj_8OZW6Pz4u+K>fTdl$@RTX!^lH2
z0Yg6c_@8?Ee&;(>9g6>N3GPt8_Ut8nWM<-#Sj!IuIAwEtzZ58hz`Njdq~DNIoVCuq
z&@uk`Z$Es%{agTk^|?!<cg;+E!H4jLq@7MR+ZjpMkQ<Bbc9BY<1jLb|Scs_B%9JXl
z^(fYVy|vwX^4~r_*W-VX<Zb%cv*%-m;!`iKJvcK_y0E#`_}Yc@3sdLby20fuOI)8{
zWodPjjZT;KM#A#)8aJ*ja_!=E&Y!!?&isu7-CpnOwXxD$pZUT1`|lXwZ(qK7V5(gB
zJAmJLVdaVTZvBT>-?()2%A1#2xjIjMZJq7yU0SUU&3d!{yh(FolXidIZnS8uZLqtx
z#<|xoa{0_zRyxUC+nAT1_}8m1|K*R?PW-P&@aQw=pSrr;`PAKqCZ23=ZGClZVTpFv
zkQvW-d6eqhQAWpWES<f`>Slw`>!FoIcn6&p(dZ}u!a0g`*?-U7B&SYtv>5Yl;dVDY
zpM3TscYpu34gABaTk_J)#wQk5c4{lvR=yfK9ZHolwQ7a^hiA!;&2dc@*uHR`)wMdd
zoe*+6uxmDvO5?V-vF#2a@8PYdGC9W4OK<Vxj^V766UplK3y*zo@waXZ(CX%QZSAzj
zXG$@>DCWE^a=kFl?*2pA{Znk^fvMbZ`RXdcIb;+emFmwJ6&FB71R)WP9Yn83?gXo^
zyvE|OU*MPuywu65SIgqs(#F%D``%*tX8;zqI<<X8E%I2ip7ij+1A$tsSj!9mqGuVc
z)$q>YjR6EWi_cO*nxGHNqNit&0kDpi(Ui`eW64WqBgt725yr=6&Svh@KLaqon;uD#
zq}?2RfB*m+sX+w#4zx1EzIPnt$on7Q_y<n$-UsdlA(3$b5j=it4f<wx6ScO4+TEgl
zd67})5Cld9bfjWE_mAEJ@E8AnQ*5-eKg&%HAq>J`Fo#WqAy8y<R<>F!FK@HkNU=c>
z@|=*RgkBflY7%rr5DJ1vq#g3b>r@vOSnWBEM3UeG*7?)704&#&U%9!{K7n%x?-7Bw
zc?eS(jX4}Fr)DRZ)qx9dT}F5ZKrn`=v5rhzkTe)V1Vom?;^JVvY8)<rabe`~=WiU|
z1GuzS|Cs3-5u8U1>JPWf{{}F%DkFH7FI?fxSI=Qh&H&n3gp~MV717#7NI}Rtc%`Wv
zKSp8U5=8+m>p%#c^@yzZ^d3MtQorQ$oZuY{8u+P)YYIZ}&RUVVN)b^WVQXs#=^X;#
zC$n#rbr4G9qasL!%rks1#g#_!AN(-y9*Kwo)Sc&GB)NKZ`PTt7Ks(8fdTa4$q#Ev8
zhCnIO=vcFVBtj(_E=|~{#W37i2q3IQIESvUfzk+@L$OSVM^K#xvQTDg_6XK`=3>o7
z<GC*qn4}~30E&^Gch<f~2|;iQp*+$Dy1krA+T+#rI#Wf-`uq*lpq+q_iXbF7hm;aK
zHjNvpP^jM=90f`d)i=<~S5WpLOkfD?JR`jXSse{~M-VA7Awxh*fgkM7<E>*V*4$Xz
zMHM2-V`Wru1e*_bEb|^BH-jdm%b{37n+)MC@#YOe2m~Pz<uN8bRDHmQfOdhBcclAg
zvOR!KlI0WS5h}$9XC2;qr1SK;2CWrwAz~BFk&`DV2#+%9AZ+Hq1cy(*heM}N4H}9}
zhDw@)W>lxiNZO!q=qS!O3IdwO5joG2u8=rh**gMb^8X0l-CNKFthK{Wtdz(Q7>P9~
zNu(upS*H5XFB5fIMB`&@ON|u*Atcqi<|sY)_hgkxdbMc^>sJ|>J%m60E}XR_G6L(V
zNI|=sQ;yUR_8J(kl)kA16e5kwb8O$vI(o(uE6GGLVkE$1tf|Hk(Y{H%)Qskqu-&9K
zzW^`41f4d8tUYK4ABc~gAkQ7bdPIL}=P3hOW<o^x_Fe<efBqNG-T%dZ*>KKIADpbR
z)lA9roJ@e$nlv?3Dn+tRMzfdW5d`lUD@4pJUZ(Zh8HCM|eS2LX>UIzkxc8kDMPMs4
zRJ@1W4;$`wUpw<h@0-8nF3^I1&U=O|?NTblSYybCO+er6P8R|k^(hB#oaey#S7@F&
zL;dyF5xGHHgYb@^G|n0Jojipqme4>q%`n{_HtV8#U3|Ts?&UHR(+4J>eDmDJKTIuh
zYId4F3<v=TqDUj1!1e+=QHA34ER{-`=6Vw+CB1lb5L`4V#e3#B_^y*Ag)&5v_3b7$
zGvorwN|7!var7OBHx}Ox@ZujobnWC9zw@mtmlmE_UkO;D03ZZH-%;N(Xo3$U#TssG
zlG<2;sg<zp253#~{s%CnDy^=es}+T$OQX?Y-&l!eD`hrzw2EaqLjMy(q1Y45{pRC8
z3a0mXyU{K=APn<iZ-%|g$vKZv8aFn9?>7=3IzosG*xZp=H>|#uF)?070#XRNI)=FL
z-AiA7@K0|Gu=K;{vg059gEx9RJD<#r5iUR&IP6WOB*A-xr|&>%q`+9Yh(ZvYCrvV9
zDba&hI6_E4C--zRgM>4Z@X^+PK4WeR0I>4XbMyB;^4XhaXXhi{<idr3AAZFK^#=lR
z9HV1}jx@mVCUlNo(nSeSfH(Q@xQxdb8>+?lTQY=CEdTk#$({U|#K#`{tIwuQ_w`O{
z3MPtiIz~p(&|0JVmP!pRB|?ay5g-NS$#Hr?;F}F%+xW`--+bm9K*HN3xxM6-fBe#S
zyK6uGe6^yNM|&xSZi2{Ce41d>lsxIXKTYyerzv^2i^o%_mJmr3wRjD=HUIs7`17}9
z-9ZBaC<C)dec%2EKmEJ9de_4y$tzYzSQQbJ0;xes#Grwn7$gu^D}lVT>^3euyYu2x
z-vO3^I^g*~N&{oSaiQbi9zXr)H>W@R<+BGLdunI$k*_r-KmH9r_1M#H>_cDKsD1EH
z=4%gs?#$S4{N6K#d*1i^z)4^Vi1|550;9k*a3Anq-~$NxAaEKu0n7qrKyioqFVKt_
UJkx%vwEzGB07*qoM6N<$f}8H2SpWb4
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -1316,22 +1316,25 @@ nsContextMenu.prototype = {
   },
 
   // Save URL of the clicked upon image, video, or audio.
   saveMedia: function() {
     var doc =  this.target.ownerDocument;
     if (this.onCanvas) {
       // Bypass cache, since it's a data: URL.
       saveImageURL(this.target.toDataURL(), "canvas.png", "SaveImageTitle",
-                   true, false, BrowserUtils.makeURIFromCPOW(doc.documentURIObject), doc);
+                   true, false, gContextMenuContentData.documentURIObject,
+                   doc);
     }
     else if (this.onImage) {
       urlSecurityCheck(this.mediaURL, this.principal);
+      let uri = gContextMenuContentData.documentURIObject;
       saveImageURL(this.mediaURL, null, "SaveImageTitle", false,
-                   false, BrowserUtils.makeURIFromCPOW(doc.documentURIObject), doc);
+                   false, uri, doc, gContextMenuContentData.contentType,
+                   gContextMenuContentData.contentDisposition);
     }
     else if (this.onVideo || this.onAudio) {
       urlSecurityCheck(this.mediaURL, this.principal);
       var dialogTitle = this.onVideo ? "SaveVideoTitle" : "SaveAudioTitle";
       this.saveHelper(this.mediaURL, null, dialogTitle, false, doc);
     }
   },
 
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -3769,16 +3769,18 @@
                                           principal: aMessage.data.principal,
                                           customMenuItems: aMessage.data.customMenuItems,
                                           addonInfo: aMessage.data.addonInfo,
                                           documentURIObject: documentURIObject,
                                           docLocation: aMessage.data.docLocation,
                                           charSet: aMessage.data.charSet,
                                           referrer: aMessage.data.referrer,
                                           referrerPolicy: aMessage.data.referrerPolicy,
+                                          contentType: aMessage.data.contentType,
+                                          contentDisposition: aMessage.data.contentDisposition,
                                         };
               let popup = browser.ownerDocument.getElementById("contentAreaContextMenu");
               let event = gContextMenuContentData.event;
               let pos = browser.mapScreenCoordinatesFromContent(event.screenX, event.screenY);
               popup.openPopupAtScreen(pos.x, pos.y, true);
               break;
             }
             case "DOMWebNotificationClicked": {
--- a/browser/base/content/test/general/browser_devedition.js
+++ b/browser/base/content/test/general/browser_devedition.js
@@ -1,72 +1,65 @@
 /*
  * Testing changes for Developer Edition theme.
  * A special stylesheet should be added to the browser.xul document
  * when browser.devedition.theme.enabled is set to true and no themes
  * are applied.
  */
 
-const PREF_DEVEDITION_THEME = "browser.devedition.theme.enabled";
-const PREF_LWTHEME = "lightweightThemes.selectedThemeID";
 const PREF_LWTHEME_USED_THEMES = "lightweightThemes.usedThemes";
 const PREF_DEVTOOLS_THEME = "devtools.theme";
 const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {});
 
+LightweightThemeManager.clearBuiltInThemes();
+LightweightThemeManager.addBuiltInTheme(dummyLightweightTheme("firefox-devedition@mozilla.org"));
+
 registerCleanupFunction(() => {
   // Set preferences back to their original values
   LightweightThemeManager.currentTheme = null;
-  Services.prefs.clearUserPref(PREF_DEVEDITION_THEME);
-  Services.prefs.clearUserPref(PREF_LWTHEME);
   Services.prefs.clearUserPref(PREF_DEVTOOLS_THEME);
   Services.prefs.clearUserPref(PREF_LWTHEME_USED_THEMES);
+
+  LightweightThemeManager.currentTheme = null;
+  LightweightThemeManager.clearBuiltInThemes();
 });
 
 add_task(function* startTests() {
   Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "dark");
 
-  info ("Setting browser.devedition.theme.enabled to false.");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, false);
-  ok (!DevEdition.styleSheet, "There is no devedition style sheet when the pref is false.");
-
-  info ("Setting browser.devedition.theme.enabled to true.");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, true);
-  ok (DevEdition.styleSheet, "There is a devedition stylesheet when no themes are applied and pref is set.");
+  info ("Setting the current theme to null");
+  LightweightThemeManager.currentTheme = null;
+  ok (!DevEdition.styleSheet, "There is no devedition style sheet when no lw theme is applied.");
 
   info ("Adding a lightweight theme.");
   LightweightThemeManager.currentTheme = dummyLightweightTheme("preview0");
   ok (!DevEdition.styleSheet, "The devedition stylesheet has been removed when a lightweight theme is applied.");
 
-  info ("Removing a lightweight theme.");
+  info ("Applying the devedition lightweight theme.");
   let onAttributeAdded = waitForBrightTitlebarAttribute();
-  LightweightThemeManager.currentTheme = null;
-  ok (DevEdition.styleSheet, "The devedition stylesheet has been added when a lightweight theme is removed.");
+  LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org");
+  ok (DevEdition.styleSheet, "The devedition stylesheet has been added when the devedition lightweight theme is applied");
   yield onAttributeAdded;
-
   is (document.documentElement.getAttribute("brighttitlebarforeground"), "true",
      "The brighttitlebarforeground attribute is set on the window.");
 
-  info ("Setting browser.devedition.theme.enabled to false.");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, false);
-  ok (!DevEdition.styleSheet, "The devedition stylesheet has been removed.");
+  info ("Unapplying all themes.");
+  LightweightThemeManager.currentTheme = null;
+  ok (!DevEdition.styleSheet, "There is no devedition style sheet when no lw theme is applied.");
 
-  ok (!document.documentElement.hasAttribute("brighttitlebarforeground"),
-     "The brighttitlebarforeground attribute is not set on the window after devedition.theme is false.");
+  info ("Applying the devedition lightweight theme.");
+  onAttributeAdded = waitForBrightTitlebarAttribute();
+  LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org");
+  ok (DevEdition.styleSheet, "The devedition stylesheet has been added when the devedition lightweight theme is applied");
+  yield onAttributeAdded;
+  ok (document.documentElement.hasAttribute("brighttitlebarforeground"),
+     "The brighttitlebarforeground attribute is set on the window with dark devtools theme.");
 });
 
 add_task(function* testDevtoolsTheme() {
-  info ("Checking that Australis is shown when the light devtools theme is applied.");
-
-  let onAttributeAdded = waitForBrightTitlebarAttribute();
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, true);
-  ok (DevEdition.styleSheet, "The devedition stylesheet exists.");
-  yield onAttributeAdded;
-  ok (document.documentElement.hasAttribute("brighttitlebarforeground"),
-     "The brighttitlebarforeground attribute is set on the window with dark devtools theme.");
-
   info ("Checking stylesheet and :root attributes based on devtools theme.");
   Services.prefs.setCharPref(PREF_DEVTOOLS_THEME, "light");
   is (document.documentElement.getAttribute("devtoolstheme"), "light",
     "The documentElement has an attribute based on devtools theme.");
   ok (DevEdition.styleSheet, "The devedition stylesheet is still there with the light devtools theme.");
   ok (!document.documentElement.hasAttribute("brighttitlebarforeground"),
      "The brighttitlebarforeground attribute is not set on the window with light devtools theme.");
 
@@ -84,52 +77,43 @@ add_task(function* testDevtoolsTheme() {
   ok (!document.documentElement.hasAttribute("brighttitlebarforeground"),
      "The brighttitlebarforeground attribute is not set on the window with light devtools theme.");
 });
 
 function dummyLightweightTheme(id) {
   return {
     id: id,
     name: id,
-    headerURL: "resource:///chrome/browser/content/browser/defaultthemes/1.header.jpg",
-    iconURL: "resource:///chrome/browser/content/browser/defaultthemes/1.icon.jpg",
+    headerURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.header.png",
+    iconURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.icon.png",
     textcolor: "red",
     accentcolor: "blue"
   };
 }
 
 add_task(function* testLightweightThemePreview() {
-  info ("Turning the pref on, then previewing lightweight themes");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, true);
+  info ("Setting devedition to current and the previewing others");
+  LightweightThemeManager.currentTheme = LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org");
   ok (DevEdition.styleSheet, "The devedition stylesheet is enabled.");
   LightweightThemeManager.previewTheme(dummyLightweightTheme("preview0"));
   ok (!DevEdition.styleSheet, "The devedition stylesheet is not enabled after a lightweight theme preview.");
   LightweightThemeManager.resetPreview();
   LightweightThemeManager.previewTheme(dummyLightweightTheme("preview1"));
   ok (!DevEdition.styleSheet, "The devedition stylesheet is not enabled after a second lightweight theme preview.");
   LightweightThemeManager.resetPreview();
   ok (DevEdition.styleSheet, "The devedition stylesheet is enabled again after resetting the preview.");
+  LightweightThemeManager.currentTheme = null;
+  ok (!DevEdition.styleSheet, "The devedition stylesheet is gone after removing the current theme.");
 
-  info ("Turning the pref on, then previewing a theme, turning it off and resetting the preview");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, true);
+  info ("Previewing the devedition theme");
+  LightweightThemeManager.previewTheme(LightweightThemeManager.getUsedTheme("firefox-devedition@mozilla.org"));
   ok (DevEdition.styleSheet, "The devedition stylesheet is enabled.");
   LightweightThemeManager.previewTheme(dummyLightweightTheme("preview2"));
-  ok (!DevEdition.styleSheet, "The devedition stylesheet is not enabled after a lightweight theme preview.");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, false);
-  ok (!DevEdition.styleSheet, "The devedition stylesheet is not enabled after pref is turned off.");
   LightweightThemeManager.resetPreview();
-  ok (!DevEdition.styleSheet, "The devedition stylesheet is still disabled after resetting the preview.");
-
-  info ("Turning the pref on, then previewing the default theme, turning it off and resetting the preview");
-  Services.prefs.setBoolPref(PREF_DEVEDITION_THEME, true);
-  ok (DevEdition.styleSheet, "The devedition stylesheet is enabled.");
-  LightweightThemeManager.previewTheme(null);
-  ok (DevEdition.styleSheet, "The devedition stylesheet is still enabled after the default theme is applied.");
-  LightweightThemeManager.resetPreview();
-  ok (DevEdition.styleSheet, "The devedition stylesheet is still enabled after resetting the preview.");
+  ok (!DevEdition.styleSheet, "The devedition stylesheet is now disabled after resetting the preview.");
 });
 
 // Use a mutation observer to wait for the brighttitlebarforeground
 // attribute to change.  Using this instead of waiting for the load
 // event on the DevEdition styleSheet.
 function waitForBrightTitlebarAttribute() {
   return new Promise((resolve, reject) => {
     let mutationObserver = new MutationObserver(function (mutations) {
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -93,16 +93,18 @@ browser.jar:
         content/browser/defaultthemes/4.footer.png    (content/defaultthemes/4.footer.png)
         content/browser/defaultthemes/4.header.png    (content/defaultthemes/4.header.png)
         content/browser/defaultthemes/4.icon.png      (content/defaultthemes/4.icon.png)
         content/browser/defaultthemes/4.preview.png   (content/defaultthemes/4.preview.png)
         content/browser/defaultthemes/5.footer.png    (content/defaultthemes/5.footer.png)
         content/browser/defaultthemes/5.header.png    (content/defaultthemes/5.header.png)
         content/browser/defaultthemes/5.icon.jpg      (content/defaultthemes/5.icon.jpg)
         content/browser/defaultthemes/5.preview.jpg   (content/defaultthemes/5.preview.jpg)
+        content/browser/defaultthemes/devedition.header.png   (content/defaultthemes/devedition.header.png)
+        content/browser/defaultthemes/devedition.icon.png     (content/defaultthemes/devedition.icon.png)
         content/browser/newtab/newTab.xul             (content/newtab/newTab.xul)
 *       content/browser/newtab/newTab.js              (content/newtab/newTab.js)
         content/browser/newtab/newTab.css             (content/newtab/newTab.css)
 *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
         content/browser/pageinfo/pageInfo.js          (content/pageinfo/pageInfo.js)
         content/browser/pageinfo/pageInfo.css         (content/pageinfo/pageInfo.css)
         content/browser/pageinfo/pageInfo.xml         (content/pageinfo/pageInfo.xml)
         content/browser/pageinfo/feeds.js             (content/pageinfo/feeds.js)
--- a/browser/components/customizableui/CustomizableUI.jsm
+++ b/browser/components/customizableui/CustomizableUI.jsm
@@ -32,17 +32,16 @@ XPCOMUtils.defineLazyServiceGetter(this,
 const kNSXUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
 const kSpecialWidgetPfx = "customizableui-special-";
 
 const kPrefCustomizationState        = "browser.uiCustomization.state";
 const kPrefCustomizationAutoAdd      = "browser.uiCustomization.autoAdd";
 const kPrefCustomizationDebug        = "browser.uiCustomization.debug";
 const kPrefDrawInTitlebar            = "browser.tabs.drawInTitlebar";
-const kPrefDeveditionTheme           = "browser.devedition.theme.enabled";
 const kPrefWebIDEInNavbar            = "devtools.webide.widget.inNavbarByDefault";
 
 /**
  * The keys are the handlers that are fired when the event type (the value)
  * is fired on the subview. A widget that provides a subview has the option
  * of providing onViewShowing and onViewHiding event handlers.
  */
 const kSubviewEvents = [
@@ -2327,25 +2326,23 @@ let CustomizableUIInternal = {
     }
 
     gResetting = false;
   },
 
   _resetUIState: function() {
     try {
       gUIStateBeforeReset.drawInTitlebar = Services.prefs.getBoolPref(kPrefDrawInTitlebar);
-      gUIStateBeforeReset.deveditionTheme = Services.prefs.getBoolPref(kPrefDeveditionTheme);
       gUIStateBeforeReset.uiCustomizationState = Services.prefs.getCharPref(kPrefCustomizationState);
     } catch(e) { }
 
     this._resetExtraToolbars();
 
     Services.prefs.clearUserPref(kPrefCustomizationState);
     Services.prefs.clearUserPref(kPrefDrawInTitlebar);
-    Services.prefs.clearUserPref(kPrefDeveditionTheme);
     LOG("State reset");
 
     // Reset placements to make restoring default placements possible.
     gPlacements = new Map();
     gDirtyAreaCache = new Set();
     gSeenWidgets = new Set();
     // Clear the saved state to ensure that defaults will be used.
     gSavedState = null;
@@ -2397,33 +2394,30 @@ let CustomizableUIInternal = {
     }
   },
 
   /**
    * Undoes a previous reset, restoring the state of the UI to the state prior to the reset.
    */
   undoReset: function() {
     if (gUIStateBeforeReset.uiCustomizationState == null ||
-        gUIStateBeforeReset.drawInTitlebar == null ||
-        gUIStateBeforeReset.deveditionTheme == null) {
+        gUIStateBeforeReset.drawInTitlebar == null) {
       return;
     }
     gUndoResetting = true;
 
     let uiCustomizationState = gUIStateBeforeReset.uiCustomizationState;
     let drawInTitlebar = gUIStateBeforeReset.drawInTitlebar;
-    let deveditionTheme = gUIStateBeforeReset.deveditionTheme;
 
     // Need to clear the previous state before setting the prefs
     // because pref observers may check if there is a previous UI state.
     this._clearPreviousUIState();
 
     Services.prefs.setCharPref(kPrefCustomizationState, uiCustomizationState);
     Services.prefs.setBoolPref(kPrefDrawInTitlebar, drawInTitlebar);
-    Services.prefs.setBoolPref(kPrefDeveditionTheme, deveditionTheme);
     this.loadSavedState();
     // If the user just customizes toolbar/titlebar visibility, gSavedState will be null
     // and we don't need to do anything else here:
     if (gSavedState) {
       for (let areaId of Object.keys(gSavedState.placements)) {
         let placements = gSavedState.placements[areaId];
         gPlacements.set(areaId, placements);
       }
@@ -2591,20 +2585,16 @@ let CustomizableUIInternal = {
         }
       }
     }
 
     if (Services.prefs.prefHasUserValue(kPrefDrawInTitlebar)) {
       LOG(kPrefDrawInTitlebar + " pref is non-default");
       return false;
     }
-    if (Services.prefs.prefHasUserValue(kPrefDeveditionTheme)) {
-      LOG(kPrefDeveditionTheme + " pref is non-default");
-      return false;
-    }
 
     return true;
   },
 
   setToolbarVisibility: function(aToolbarId, aIsVisible) {
     // We only persist the attribute the first time.
     let isFirstChangedToolbar = true;
     for (let window of CustomizableUI.windows) {
@@ -3295,18 +3285,17 @@ this.CustomizableUI = {
   /**
    * Can the last Restore Defaults operation be undone.
    *
    * @return A boolean stating whether an undo of the
    *         Restore Defaults can be performed.
    */
   get canUndoReset() {
     return gUIStateBeforeReset.uiCustomizationState != null ||
-           gUIStateBeforeReset.drawInTitlebar != null ||
-           gUIStateBeforeReset.deveditionTheme != null;
+           gUIStateBeforeReset.drawInTitlebar != null;
   },
 
   /**
    * Get the placement of a widget. This is by far the best way to obtain
    * information about what the state of your widget is. The internals of
    * this call are cheap (no DOM necessary) and you will know where the user
    * has put your widget.
    *
--- a/browser/components/customizableui/CustomizeMode.jsm
+++ b/browser/components/customizableui/CustomizeMode.jsm
@@ -12,19 +12,16 @@ const kPrefCustomizationDebug = "browser
 const kPrefCustomizationAnimation = "browser.uiCustomization.disableAnimation";
 const kPaletteId = "customization-palette";
 const kAboutURI = "about:customizing";
 const kDragDataTypePrefix = "text/toolbarwrapper-id/";
 const kPlaceholderClass = "panel-customization-placeholder";
 const kSkipSourceNodePref = "browser.uiCustomization.skipSourceNodeCheck";
 const kToolbarVisibilityBtn = "customization-toolbar-visibility-button";
 const kDrawInTitlebarPref = "browser.tabs.drawInTitlebar";
-const kDeveditionThemePref = "browser.devedition.theme.enabled";
-const kDeveditionButtonPref = "browser.devedition.theme.showCustomizeButton";
-const kDeveditionChangedNotification = "devedition-theme-state-changed";
 const kMaxTransitionDurationMs = 2000;
 
 const kPanelItemContextMenu = "customizationPanelItemContextMenu";
 const kPaletteItemContextMenu = "customizationPaletteItemContextMenu";
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource:///modules/CustomizableUI.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -62,27 +59,22 @@ function CustomizeMode(aWindow) {
   // user. Then there's the visible palette, which gets populated and displayed
   // to the user when in customizing mode.
   this.visiblePalette = this.document.getElementById(kPaletteId);
   this.paletteEmptyNotice = this.document.getElementById("customization-empty");
   this.paletteSpacer = this.document.getElementById("customization-spacer");
   this.tipPanel = this.document.getElementById("customization-tipPanel");
   if (Services.prefs.getCharPref("general.skins.selectedSkin") != "classic/1.0") {
     let lwthemeButton = this.document.getElementById("customization-lwtheme-button");
-    let deveditionButton = this.document.getElementById("customization-devedition-theme-button");
     lwthemeButton.setAttribute("hidden", "true");
-    deveditionButton.setAttribute("hidden", "true");
   }
 #ifdef CAN_DRAW_IN_TITLEBAR
   this._updateTitlebarButton();
   Services.prefs.addObserver(kDrawInTitlebarPref, this, false);
 #endif
-  this._updateDevEditionThemeButton();
-  Services.prefs.addObserver(kDeveditionButtonPref, this, false);
-  Services.obs.addObserver(this, kDeveditionChangedNotification, false);
   this.window.addEventListener("unload", this);
 };
 
 CustomizeMode.prototype = {
   _changed: false,
   _transitioning: false,
   window: null,
   document: null,
@@ -108,18 +100,16 @@ CustomizeMode.prototype = {
   get _handler() {
     return this.window.CustomizationHandler;
   },
 
   uninit: function() {
 #ifdef CAN_DRAW_IN_TITLEBAR
     Services.prefs.removeObserver(kDrawInTitlebarPref, this);
 #endif
-    Services.prefs.removeObserver(kDeveditionButtonPref, this);
-    Services.obs.removeObserver(this, kDeveditionChangedNotification);
   },
 
   toggle: function() {
     if (this._handler.isEnteringCustomizeMode || this._handler.isExitingCustomizeMode) {
       this._wantToBeInCustomizeMode = !this._wantToBeInCustomizeMode;
       return;
     }
     if (this._customizing) {
@@ -1504,23 +1494,16 @@ CustomizeMode.prototype = {
           aData = JSON.parse(aData);
           if (!aData) {
             this.removeLWTStyling();
           } else {
             this.updateLWTStyling(aData);
           }
         }
         break;
-      case kDeveditionChangedNotification:
-        if (aSubject == this.window) {
-          this._updateDevEditionThemeButton();
-          this._updateResetButton();
-          this._updateUndoResetButton();
-        }
-        break;
     }
   },
 
 #ifdef CAN_DRAW_IN_TITLEBAR
   _updateTitlebarButton: function() {
     let drawInTitlebar = true;
     try {
       drawInTitlebar = Services.prefs.getBoolPref(kDrawInTitlebarPref);
@@ -1535,54 +1518,16 @@ CustomizeMode.prototype = {
   },
 
   toggleTitlebar: function(aShouldShowTitlebar) {
     // Drawing in the titlebar means not showing the titlebar, hence the negation:
     Services.prefs.setBoolPref(kDrawInTitlebarPref, !aShouldShowTitlebar);
   },
 #endif
 
-  _updateDevEditionThemeButton: function() {
-    let button = this.document.getElementById("customization-devedition-theme-button");
-
-    let themeEnabled = !!this.window.DevEdition.styleSheet;
-    if (themeEnabled) {
-      button.setAttribute("checked", "true");
-    } else {
-      button.removeAttribute("checked");
-    }
-
-    let buttonVisible = Services.prefs.getBoolPref(kDeveditionButtonPref);
-    if (buttonVisible) {
-      button.removeAttribute("hidden");
-    } else {
-      button.setAttribute("hidden", "true");
-    }
-  },
-
-  toggleDevEditionTheme: function(shouldEnable) {
-    const DEFAULT_THEME_ID = "{972ce4c6-7e08-4474-a285-3208198ce6fd}";
-
-    Services.prefs.setBoolPref(kDeveditionThemePref, shouldEnable);
-
-    let currentLWT = LightweightThemeManager.currentTheme;
-    if (currentLWT && shouldEnable) {
-      this._lastLightweightTheme = currentLWT;
-      AddonManager.getAddonByID(DEFAULT_THEME_ID, function(aDefaultTheme) {
-        // Theoretically, this could race if people are /very/ quick in switching
-        // something else here, so doublecheck:
-        if (Services.prefs.getBoolPref(kDeveditionThemePref)) {
-          aDefaultTheme.userDisabled = false;
-        }
-      });
-    } else if (!currentLWT && !shouldEnable && this._lastLightweightTheme) {
-      LightweightThemeManager.currentTheme = this._lastLightweightTheme;
-    }
-  },
-
   _onDragStart: function(aEvent) {
     __dumpDragData(aEvent);
     let item = aEvent.target;
     while (item && item.localName != "toolbarpaletteitem") {
       if (item.localName == "toolbar") {
         return;
       }
       item = item.parentNode;
--- a/browser/components/customizableui/content/customizeMode.inc.xul
+++ b/browser/components/customizableui/content/customizeMode.inc.xul
@@ -48,23 +48,16 @@
                            label="&customizeMode.lwthemes.menuGetMore;"
                            accesskey="&customizeMode.lwthemes.menuGetMore.accessKey;"
                            tabindex="0"
                            oncommand="gCustomizeMode.getMoreThemes(event);"/>
           </hbox>
         </panel>
       </button>
 
-      <button id="customization-devedition-theme-button"
-              class="customizationmode-button"
-              hidden="true"
-              label="&customizeMode.deveditionTheme.label2;"
-              oncommand="gCustomizeMode.toggleDevEditionTheme(this.hasAttribute('checked'))"
-              type="checkbox" />
-
       <spacer id="customization-footer-spacer"/>
       <button id="customization-undo-reset-button"
               class="customizationmode-button"
               hidden="true"
               oncommand="gCustomizeMode.undoReset();"
               label="&undoCmd.label;"/>
       <button id="customization-reset-button"
               oncommand="gCustomizeMode.reset();"
--- a/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
+++ b/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
@@ -1,19 +1,21 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 const DEFAULT_THEME_ID = "{972ce4c6-7e08-4474-a285-3208198ce6fd}";
+const {LightweightThemeManager} = Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", {});
 
 add_task(function () {
   Services.prefs.clearUserPref("lightweightThemes.usedThemes");
   Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
+  LightweightThemeManager.clearBuiltInThemes();
 
   yield startCustomizing();
 
   let themesButton = document.getElementById("customization-lwtheme-button");
   let popup = document.getElementById("customization-lwtheme-menu");
 
   let popupShownPromise = popupShown(popup);
   EventUtils.synthesizeMouseAtCenter(themesButton, {});
--- a/browser/components/customizableui/test/browser_970511_undo_restore_default.js
+++ b/browser/components/customizableui/test/browser_970511_undo_restore_default.js
@@ -96,54 +96,12 @@ add_task(function() {
   is(Services.prefs.getBoolPref(prefName), !defaultValue, "Undo-reset goes back to previous pref value");
   is(undoResetButton.hidden, true, "Undo reset button should be hidden after undo-reset clicked");
 
   Services.prefs.clearUserPref(prefName);
   ok(CustomizableUI.inDefaultState, "In default state after pref cleared");
   is(undoResetButton.hidden, true, "Undo reset button should be hidden at end of test");
 });
 
-// Bug 1082108 - Restore Defaults should clear user pref for devedition theme
-add_task(function() {
-  let prefName = "browser.devedition.theme.enabled";
-  Services.prefs.setBoolPref("browser.devedition.theme.showCustomizeButton", true);
-  let defaultValue = Services.prefs.getBoolPref(prefName);
-  let restoreDefaultsButton = document.getElementById("customization-reset-button");
-  let deveditionThemeButton = document.getElementById("customization-devedition-theme-button");
-  let undoResetButton = document.getElementById("customization-undo-reset-button");
-  ok(CustomizableUI.inDefaultState, "Should be in default state at start of test");
-  ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled when in default state");
-  is(deveditionThemeButton.hasAttribute("checked"), defaultValue, "Devedition theme button should reflect pref value");
-  is(undoResetButton.hidden, true, "Undo reset button should be hidden at start of test");
-  Services.prefs.setBoolPref(prefName, !defaultValue);
-
-  yield waitForCondition(() => !restoreDefaultsButton.disabled);
-  ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled when pref changed");
-  is(deveditionThemeButton.hasAttribute("checked"), !defaultValue, "Devedition theme button should reflect changed pref value");
-  ok(!CustomizableUI.inDefaultState, "With devedition theme flipped, no longer default");
-  is(undoResetButton.hidden, true, "Undo reset button should be hidden after pref change");
-
-  yield gCustomizeMode.reset();
-  ok(restoreDefaultsButton.disabled, "Restore defaults button should be disabled after reset");
-  is(deveditionThemeButton.hasAttribute("checked"), defaultValue, "devedition theme button should reflect default value after reset");
-  is(Services.prefs.getBoolPref(prefName), defaultValue, "Reset should reset devedition.theme.enabled");
-  ok(CustomizableUI.inDefaultState, "In default state after devedition theme reset");
-  is(undoResetButton.hidden, false, "Undo reset button should be visible after reset");
-  ok(!undoResetButton.disabled, "Undo reset button should be enabled after reset");
-
-  yield gCustomizeMode.undoReset();
-  ok(!restoreDefaultsButton.disabled, "Restore defaults button should be enabled after undo-reset");
-  is(deveditionThemeButton.hasAttribute("checked"), !defaultValue, "devedition theme button should reflect undo-reset value");
-  ok(!CustomizableUI.inDefaultState, "No longer in default state after undo");
-  is(Services.prefs.getBoolPref(prefName), !defaultValue, "Undo-reset goes back to previous pref value");
-  is(undoResetButton.hidden, true, "Undo reset button should be hidden after undo-reset clicked");
-
-  //XXXgijs this line should be removed once bug 1094509 lands
-  Services.prefs.clearUserPref("devtools.theme");
-  Services.prefs.clearUserPref(prefName);
-  ok(CustomizableUI.inDefaultState, "In default state after pref cleared");
-  is(undoResetButton.hidden, true, "Undo reset button should be hidden at end of test");
-});
-
 add_task(function asyncCleanup() {
   yield gCustomizeMode.reset();
   yield endCustomizing();
 });
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/.eslintignore
@@ -0,0 +1,9 @@
+MozLoopWorker.js
+content/libs
+content/shared/libs
+standalone/content/libs
+standalone/node_modules
+test/xpcshell
+test/mochitest
+test/shared/vendor
+
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/.eslintrc
@@ -0,0 +1,71 @@
+{
+  "plugins": [
+    "react"
+  ],
+  "ecmaFeatures": {
+    "forOf": true,
+    "jsx": true
+  },
+  "env": {
+    "browser": true,
+    "mocha": true
+  },
+  "globals": {
+    "_": false,
+    "$": false,
+    "Backbone": false,
+    "chai": false,
+    "console": false,
+    "jQuery": false,
+    "loop": false,
+    "MozActivity": false,
+    "OT": false,
+    "Promise": false,
+    "React": false,
+    "sinon": false
+  },
+  "rules": {
+    // turn off all kinds of stuff that we actually do want, because
+    // right now, we're bootstrapping the linting infrastructure.  We'll
+    // want to audit these rules, and start turning them on and fixing the
+    // problems they find, one at a time.
+
+    // Eslint built-in rules are documented at <http://eslint.org/docs/rules/>
+    "camelcase": 0,
+    "comma-dangle": 0,
+    "comma-spacing": 0,
+    "consistent-return": 0,
+    "curly": 0,
+    "dot-notation": 0,
+    "eol-last": 0,
+    "eqeqeq": 0,
+    "key-spacing": 0,
+    "new-cap": 0,
+    "no-catch-shadow": 0,
+    "no-console": 0,
+    "no-empty": 0,
+    "no-extra-bind": 0,
+    "no-extra-boolean-cast": 0,
+    "no-extra-semi": 0,
+    "no-multi-spaces": 0,
+    "no-new": 0,
+    "no-redeclare": 0,
+    "no-return-assign": 0,
+    "no-shadow": 0,
+    "no-spaced-func": 0,
+    "no-trailing-spaces": 0,
+    "no-undef": 0,
+    "no-underscore-dangle": 0,
+    "no-unused-expressions": 0,
+    "no-unused-vars": 0,
+    "no-use-before-define": 0,
+    "no-wrap-func": 0,
+    "quotes": 0,
+    "semi": 0,
+    "semi-spacing": 0,
+    "space-infix-ops": 0,
+    "space-return-throw-case": 0,
+    "strict": 0,
+    "yoda": 0
+  }
+}
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/content/.eslintrc
@@ -0,0 +1,10 @@
+{
+  "ecmaFeatures": {
+    // since the code here is running only on known versions of
+    // Firefox, we can use newer ECMAscript features
+    "arrowFunctions": true,
+    "blockBindings": true,
+    "destructuring": true,
+    "forOf": true
+  }
+}
--- a/browser/components/loop/content/shared/js/mixins.js
+++ b/browser/components/loop/content/shared/js/mixins.js
@@ -436,17 +436,17 @@ loop.shared.mixins = (function() {
     /**
      * Returns the default configuration for publishing media on the sdk.
      *
      * @param {Object} options An options object containing:
      * - publishVideo A boolean set to true to publish video when the stream is initiated.
      */
     getDefaultPublisherConfig: function(options) {
       options = options || {};
-      if (!"publishVideo" in options) {
+      if (!("publishVideo" in options)) {
         throw new Error("missing option publishVideo");
       }
 
       // height set to 100%" to fix video layout on Google Chrome
       // @see https://bugzilla.mozilla.org/show_bug.cgi?id=1020445
       return {
         insertMode: "append",
         fitMode: "contain",
--- a/browser/components/loop/run-all-loop-tests.sh
+++ b/browser/components/loop/run-all-loop-tests.sh
@@ -5,27 +5,36 @@ if [ "$1" == "--help" ]; then
   echo "Usage: ./run-all-loop-tests.sh [options]"
   echo "    --skip-e10s  Skips the e10s tests"
   exit 0;
 fi
 
 set -e
 
 # Main tests
-./mach xpcshell-test browser/components/loop/
-./mach marionette-test browser/components/loop/manifest.ini
+
+LOOPDIR=browser/components/loop
+#ESLINT=standalone/node_modules/.bin/eslint
+#if [ -x "${LOOPDIR}/${ESLINT}" ]; then
+#  echo 'running eslint; see http://eslint.org/docs/rules/ for error info'
+#  (cd ${LOOPDIR} && ./${ESLINT} .)
+#  echo 'eslint run finished.'
+#fi
+
+./mach xpcshell-test ${LOOPDIR}/
+./mach marionette-test ${LOOPDIR}/manifest.ini
 
 # The browser_parsable_css.js can fail if we add some css that isn't parsable.
 #
 # The check to make sure that the media devices can be used in Loop without
 # prompting is in browser_devices_get_user_media_about_urls.js. It's possible
 # to mess this up with CSP handling, and probably other changes, too.
 
 TESTS="
-  browser/components/loop/test/mochitest
+  ${LOOPDIR}/test/mochitest
   browser/modules/test/browser_UITour_loop.js
   browser/base/content/test/general/browser_devices_get_user_media_about_urls.js
 "
 
 ./mach mochitest $TESTS
 
 if [ "$1" != "--skip-e10s" ]; then
   ./mach mochitest --e10s $TESTS
--- a/browser/components/loop/standalone/Makefile
+++ b/browser/components/loop/standalone/Makefile
@@ -19,19 +19,16 @@ NODE_LOCAL_BIN=./node_modules/.bin
 install: npm_install
 
 npm_install:
 	@npm install
 
 test:
 	@echo "Not implemented yet."
 
-lint:
-	@$(NODE_LOCAL_BIN)/jshint *.js content test
-
 runserver: remove_old_config
 	node server.js
 
 frontend:
 	@echo "Not implemented yet."
 
 # Try hg first, if not fall back to git.
 SOURCE_STAMP := $(shell hg parent --template '{node|short}\n' 2> /dev/null)
--- a/browser/components/loop/standalone/package.json
+++ b/browser/components/loop/standalone/package.json
@@ -7,16 +7,18 @@
     "url": "git@github.com:mozilla/loop-client.git"
   },
   "engines": {
     "node": "0.10.x",
     "npm": "1.3.x"
   },
   "dependencies": {},
   "devDependencies": {
+    "eslint": "0.18.x",
+    "eslint-plugin-react": "2.0.x",
     "express": "3.x"
   },
   "scripts": {
     "test": "make test",
     "start": "make runserver"
   },
   "license": "MPL-2.0"
 }
--- a/browser/components/loop/standalone/server.js
+++ b/browser/components/loop/standalone/server.js
@@ -1,12 +1,19 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+/* eslint-env node */
+
+/* XXX We should enable these and fix the warnings, but at the time of this
+ * writing, we're just bootstrapping the linting infrastructure.
+ */
+/* eslint-disable no-path-concat,no-process-exit */
+
 var express = require('express');
 var app = express();
 
 var port = process.env.PORT || 3000;
 var loopServerPort = process.env.LOOP_SERVER_PORT || 5000;
 var feedbackApiUrl = process.env.LOOP_FEEDBACK_API_URL ||
                      "https://input.allizom.org/api/v1/feedback";
 var feedbackProductName = process.env.LOOP_FEEDBACK_PRODUCT_NAME || "Loop";
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/test/desktop-local/.eslintrc
@@ -0,0 +1,10 @@
+{
+  "ecmaFeatures": {
+    // since the code here is running only on known versions of
+    // Firefox, we can use newer ECMAscript features here
+    "arrowFunctions": true,
+    "blockBindings": true,
+    "destructuring": true,
+    "forOf": true
+  },
+}
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -134,28 +134,40 @@ XPCOMUtils.defineLazyGetter(this, "Shell
     return Cc["@mozilla.org/browser/shell-service;1"].
            getService(Ci.nsIShellService);
   }
   catch(ex) {
     return null;
   }
 });
 
+XPCOMUtils.defineLazyGetter(this, "gBrandBundle", function() {
+  return Services.strings.createBundle('chrome://branding/locale/brand.properties');
+});
+
+XPCOMUtils.defineLazyGetter(this, "gBrowserBundle", function() {
+  return Services.strings.createBundle('chrome://browser/locale/browser.properties');
+});
+
+
 XPCOMUtils.defineLazyModuleGetter(this, "FormValidationHandler",
                                   "resource:///modules/FormValidationHandler.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "WebChannel",
                                   "resource://gre/modules/WebChannel.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "ReaderParent",
                                   "resource:///modules/ReaderParent.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "AddonWatcher",
                                   "resource://gre/modules/AddonWatcher.jsm");
 
+XPCOMUtils.defineLazyModuleGetter(this, "LightweightThemeManager",
+                                  "resource://gre/modules/LightweightThemeManager.jsm");
+
 const PREF_PLUGINS_NOTIFYUSER = "plugins.update.notifyUser";
 const PREF_PLUGINS_UPDATEURL  = "plugins.update.url";
 
 // Seconds of idle before trying to create a bookmarks backup.
 const BOOKMARKS_BACKUP_IDLE_TIME_SEC = 8 * 60;
 // Minimum interval between backups.  We try to not create more than one backup
 // per interval.
 const BOOKMARKS_BACKUP_MIN_INTERVAL_DAYS = 1;
@@ -710,16 +722,29 @@ BrowserGlue.prototype = {
     Services.prefs.addObserver(POLARIS_ENABLED, this, false);
 #endif
 
 #ifdef MOZ_DEBUG_UA
     UserAgentOverrides.init();
     DebugUserAgent.init();
 #endif
 
+#ifndef RELEASE_BUILD
+    let themeName = gBrowserBundle.GetStringFromName("deveditionTheme.name");
+    let vendorShortName = gBrandBundle.GetStringFromName("vendorShortName");
+
+    LightweightThemeManager.addBuiltInTheme({
+      id: "firefox-devedition@mozilla.org",
+      name: themeName,
+      headerURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.header.png",
+      iconURL: "resource:///chrome/browser/content/browser/defaultthemes/devedition.icon.png",
+      author: vendorShortName,
+    });
+#endif
+
     Services.obs.notifyObservers(null, "browser-ui-startup-complete", "");
 
     AddonWatcher.init(this._notifySlowAddon);
   },
 
   _checkForOldBuildUpdates: function () {
     // check for update if our build is old
     if (Services.prefs.getBoolPref("app.update.enabled") &&
@@ -741,17 +766,17 @@ BrowserGlue.prototype = {
       if (buildDate + acceptableAge < today) {
         Cc["@mozilla.org/updates/update-service;1"].getService(Ci.nsIApplicationUpdateService).checkForBackgroundUpdates();
       }
     }
   },
 
   _onSafeModeRestart: function BG_onSafeModeRestart() {
     // prompt the user to confirm
-    let strings = Services.strings.createBundle("chrome://browser/locale/browser.properties");
+    let strings = gBrowserBundle;
     let promptTitle = strings.GetStringFromName("safeModeRestartPromptTitle");
     let promptMessage = strings.GetStringFromName("safeModeRestartPromptMessage");
     let restartText = strings.GetStringFromName("safeModeRestartButton");
     let buttonFlags = (Services.prompt.BUTTON_POS_0 *
                        Services.prompt.BUTTON_TITLE_IS_STRING) +
                       (Services.prompt.BUTTON_POS_1 *
                        Services.prompt.BUTTON_TITLE_CANCEL) +
                       Services.prompt.BUTTON_POS_0_DEFAULT;
@@ -799,19 +824,17 @@ BrowserGlue.prototype = {
     Services.prefs.setIntPref("browser.slowStartup.samples", samples);
   },
 
   _showSlowStartupNotification: function () {
     let win = this.getMostRecentBrowserWindow();
     if (!win)
       return;
 
-    let productName = Services.strings
-                              .createBundle("chrome://branding/locale/brand.properties")
-                              .GetStringFromName("brandFullName");
+    let productName = gBrandBundle.GetStringFromName("brandFullName");
     let message = win.gNavigatorBundle.getFormattedString("slowStartup.message", [productName]);
 
     let buttons = [
       {
         label:     win.gNavigatorBundle.getString("slowStartup.helpButton.label"),
         accessKey: win.gNavigatorBundle.getString("slowStartup.helpButton.accesskey"),
         callback: function () {
           win.openUILinkIn("https://support.mozilla.org/kb/reset-firefox-easily-fix-most-problems", "tab");
@@ -839,19 +862,17 @@ BrowserGlue.prototype = {
     let win = this.getMostRecentBrowserWindow();
     if (!win)
       return;
 
     Cu.import("resource://gre/modules/ResetProfile.jsm");
     if (!ResetProfile.resetSupported())
       return;
 
-    let productName = Services.strings
-                              .createBundle("chrome://branding/locale/brand.properties")
-                              .GetStringFromName("brandShortName");
+    let productName = gBrandBundle.GetStringFromName("brandShortName");
     let resetBundle = Services.strings
                               .createBundle("chrome://global/locale/resetProfile.properties");
 
     let message = resetBundle.formatStringFromName("resetUnusedProfile.message", [productName], 1);
     let buttons = [
       {
         label:     resetBundle.formatStringFromName("refreshProfile.resetButton.label", [productName], 1),
         accessKey: resetBundle.GetStringFromName("refreshProfile.resetButton.accesskey"),
@@ -1190,19 +1211,17 @@ BrowserGlue.prototype = {
         aCancelQuit.data =
           !win.gBrowser.warnAboutClosingTabs(win.gBrowser.closingTabsEnum.ALL);
       }
       return;
     }
 
     let prompt = Services.prompt;
     let quitBundle = Services.strings.createBundle("chrome://browser/locale/quitDialog.properties");
-    let brandBundle = Services.strings.createBundle("chrome://branding/locale/brand.properties");
-
-    let appName = brandBundle.GetStringFromName("brandShortName");
+    let appName = gBrandBundle.GetStringFromName("brandShortName");
     let quitDialogTitle = quitBundle.formatStringFromName("quitDialogTitle",
                                                           [appName], 1);
     let neverAskText = quitBundle.GetStringFromName("neverAsk2");
     let neverAsk = {value: false};
 
     let choice;
     if (allWindowsPrivate) {
       let text = quitBundle.formatStringFromName("messagePrivate", [appName], 1);
@@ -1269,31 +1288,29 @@ BrowserGlue.prototype = {
     }
 
     var actions = update.getProperty("actions");
     if (!actions || actions.indexOf("silent") != -1)
       return;
 
     var formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].
                     getService(Ci.nsIURLFormatter);
-    var browserBundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
-    var brandBundle = Services.strings.createBundle("chrome://branding/locale/brand.properties");
-    var appName = brandBundle.GetStringFromName("brandShortName");
+    var appName = gBrandBundle.GetStringFromName("brandShortName");
 
     function getNotifyString(aPropData) {
       var propValue = update.getProperty(aPropData.propName);
       if (!propValue) {
         if (aPropData.prefName)
           propValue = formatter.formatURLPref(aPropData.prefName);
         else if (aPropData.stringParams)
-          propValue = browserBundle.formatStringFromName(aPropData.stringName,
-                                                         aPropData.stringParams,
-                                                         aPropData.stringParams.length);
+          propValue = gBrowserBundle.formatStringFromName(aPropData.stringName,
+                                                          aPropData.stringParams,
+                                                          aPropData.stringParams.length);
         else
-          propValue = browserBundle.GetStringFromName(aPropData.stringName);
+          propValue = gBrowserBundle.GetStringFromName(aPropData.stringName);
       }
       return propValue;
     }
 
     if (actions.indexOf("showNotification") != -1) {
       let text = getNotifyString({propName: "notificationText",
                                   stringName: "puNotifyText",
                                   stringParams: [appName]});
@@ -1603,18 +1620,17 @@ BrowserGlue.prototype = {
       }
     });
   },
 
   /**
    * Show the notificationBox for a locked places database.
    */
   _showPlacesLockedNotificationBox: function BG__showPlacesLockedNotificationBox() {
-    var brandBundle  = Services.strings.createBundle("chrome://branding/locale/brand.properties");
-    var applicationName = brandBundle.GetStringFromName("brandShortName");
+    var applicationName = gBrandBundle.GetStringFromName("brandShortName");
     var placesBundle = Services.strings.createBundle("chrome://browser/locale/places/places.properties");
     var title = placesBundle.GetStringFromName("lockPrompt.title");
     var text = placesBundle.formatStringFromName("lockPrompt.text", [applicationName], 1);
     var buttonText = placesBundle.GetStringFromName("lockPromptInfoButton.label");
     var accessKey = placesBundle.GetStringFromName("lockPromptInfoButton.accessKey");
 
     var helpTopic = "places-locked";
     var url = Cc["@mozilla.org/toolkit/URLFormatterService;1"].
@@ -1638,17 +1654,17 @@ BrowserGlue.prototype = {
     var notifyBox = win.gBrowser.getNotificationBox();
     var notification = notifyBox.appendNotification(text, title, null,
                                                     notifyBox.PRIORITY_CRITICAL_MEDIUM,
                                                     buttons);
     notification.persistence = -1; // Until user closes it
   },
 
   _migrateUI: function BG__migrateUI() {
-    const UI_VERSION = 29;
+    const UI_VERSION = 30;
     const BROWSER_DOCURL = "chrome://browser/content/browser.xul";
     let currentUIVersion = 0;
     try {
       currentUIVersion = Services.prefs.getIntPref("browser.migration.version");
     } catch(ex) {}
     if (currentUIVersion >= UI_VERSION)
       return;
 
@@ -1972,16 +1988,52 @@ BrowserGlue.prototype = {
           ["tr", "x-baltic", "x-central-euro"].some(g => g == group.data)) {
         // Latin groups were consolidated.
         group.data = "x-western";
         Services.prefs.setComplexValue("font.language.group",
                                        Ci.nsIPrefLocalizedString, group);
       }
     }
 
+    if (currentUIVersion < 30) {
+      // Convert old devedition theme pref to lightweight theme storage
+      let lightweightThemeSelected = false;
+      let selectedThemeID = null;
+      try {
+        lightweightThemeSelected = Services.prefs.prefHasUserValue("lightweightThemes.selectedThemeID");
+        selectedThemeID = Services.prefs.getCharPref("lightweightThemes.selectedThemeID");
+      } catch(e) {}
+
+      let defaultThemeSelected = false;
+      try {
+         defaultThemeSelected = Services.prefs.getCharPref("general.skins.selectedSkin") == "classic/1.0";
+      } catch(e) {}
+
+      let deveditionThemeEnabled = false;
+      try {
+         deveditionThemeEnabled = Services.prefs.getBoolPref("browser.devedition.theme.enabled");
+      } catch(e) {}
+
+      // If we are on the devedition channel, the devedition theme is on by
+      // default.  But we need to handle the case where they didn't want it
+      // applied, and unapply the theme.
+      let userChoseToNotUseDeveditionTheme =
+        !deveditionThemeEnabled ||
+        !defaultThemeSelected ||
+        (lightweightThemeSelected && selectedThemeID != "firefox-devedition@mozilla.org");
+
+      if (userChoseToNotUseDeveditionTheme && selectedThemeID == "firefox-devedition@mozilla.org") {
+        Services.prefs.setCharPref("lightweightThemes.selectedThemeID", "");
+      }
+
+      // Not clearing browser.devedition.theme.enabled, to preserve user's pref
+      // if for some reason this function runs again (even though it shouldn't)
+      Services.prefs.clearUserPref("browser.devedition.showCustomizeButton");
+    }
+
     // Update the migration version.
     Services.prefs.setIntPref("browser.migration.version", UI_VERSION);
   },
 
   // ------------------------------
   // public nsIBrowserGlue members
   // ------------------------------
 
@@ -2215,19 +2267,17 @@ BrowserGlue.prototype = {
     }
     Services.prefs.setBoolPref("dom.ipc.plugins.flash.disable-protected-mode", true);
     Services.prefs.setBoolPref("browser.flash-protected-mode-flip.done", true);
 
     let win = this.getMostRecentBrowserWindow();
     if (!win) {
       return;
     }
-    let productName = Services.strings
-      .createBundle("chrome://branding/locale/brand.properties")
-      .GetStringFromName("brandShortName");
+    let productName = gBrandBundle.GetStringFromName("brandShortName");
     let message = win.gNavigatorBundle.
       getFormattedString("flashHang.message", [productName]);
     let buttons = [{
       label: win.gNavigatorBundle.getString("flashHang.helpButton.label"),
       accessKey: win.gNavigatorBundle.getString("flashHang.helpButton.accesskey"),
       callback: function() {
         win.openUILinkIn("https://support.mozilla.org/kb/flash-protected-mode-autodisabled", "tab");
       }
@@ -2283,17 +2333,16 @@ ContentPermissionPrompt.prototype = {
    * @param aOptions               Options for the PopupNotification
    */
   _showPrompt: function CPP_showPrompt(aRequest, aMessage, aPermission, aActions,
                                        aNotificationId, aAnchorId, aOptions) {
     function onFullScreen() {
       popup.remove();
     }
 
-    var browserBundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
 
     var browser = this._getBrowserForRequest(aRequest);
     var chromeWin = browser.ownerDocument.defaultView;
     var requestPrincipal = aRequest.principal;
 
     // Transform the prompt actions into PopupNotification actions.
     var popupNotificationActions = [];
     for (var i = 0; i < aActions.length; i++) {
@@ -2302,18 +2351,18 @@ ContentPermissionPrompt.prototype = {
       // Don't offer action in PB mode if the action remembers permission for more than a session.
       if (PrivateBrowsingUtils.isWindowPrivate(chromeWin) &&
           promptAction.expireType != Ci.nsIPermissionManager.EXPIRE_SESSION &&
           promptAction.action) {
         continue;
       }
 
       var action = {
-        label: browserBundle.GetStringFromName(promptAction.stringId),
-        accessKey: browserBundle.GetStringFromName(promptAction.stringId + ".accesskey"),
+        label: gBrowserBundle.GetStringFromName(promptAction.stringId),
+        accessKey: gBrowserBundle.GetStringFromName(promptAction.stringId + ".accesskey"),
         callback: function() {
           if (promptAction.callback) {
             promptAction.callback();
           }
 
           // Remember permissions.
           if (promptAction.action) {
             Services.perms.addFromPrincipal(requestPrincipal, aPermission,
@@ -2372,37 +2421,36 @@ ContentPermissionPrompt.prototype = {
       // pointerLock (but before the user has granted permission), we should
       // remove the now-impotent notification.
       browser.addEventListener("mozfullscreenchange", onFullScreen, true);
     }
   },
 
   _promptGeo : function(aRequest) {
     var secHistogram = Services.telemetry.getHistogramById("SECURITY_UI");
-    var browserBundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
     var requestingURI = aRequest.principal.URI;
 
     var message;
 
     // Share location action.
     var actions = [{
       stringId: "geolocation.shareLocation",
       action: null,
       expireType: null,
       callback: function() {
         secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST_SHARE_LOCATION);
       },
     }];
 
     if (requestingURI.schemeIs("file")) {
-      message = browserBundle.formatStringFromName("geolocation.shareWithFile",
-                                                   [requestingURI.path], 1);
+      message = gBrowserBundle.formatStringFromName("geolocation.shareWithFile",
+                                                    [requestingURI.path], 1);
     } else {
-      message = browserBundle.formatStringFromName("geolocation.shareWithSite",
-                                                   [requestingURI.host], 1);
+      message = gBrowserBundle.formatStringFromName("geolocation.shareWithSite",
+                                                    [requestingURI.host], 1);
       // Always share location action.
       actions.push({
         stringId: "geolocation.alwaysShareLocation",
         action: Ci.nsIPermissionManager.ALLOW_ACTION,
         expireType: null,
         callback: function() {
           secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST_ALWAYS_SHARE);
         },
@@ -2425,21 +2473,20 @@ ContentPermissionPrompt.prototype = {
 
     secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST);
 
     this._showPrompt(aRequest, message, "geo", actions, "geolocation",
                      "geo-notification-icon", options);
   },
 
   _promptWebNotifications : function(aRequest) {
-    var browserBundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
     var requestingURI = aRequest.principal.URI;
 
-    var message = browserBundle.formatStringFromName("webNotifications.showFromSite",
-                                                     [requestingURI.host], 1);
+    var message = gBrowserBundle.formatStringFromName("webNotifications.showFromSite",
+                                                      [requestingURI.host], 1);
 
     var actions = [
       {
         stringId: "webNotifications.showForSession",
         action: Ci.nsIPermissionManager.ALLOW_ACTION,
         expireType: Ci.nsIPermissionManager.EXPIRE_SESSION,
         callback: function() {},
       },
@@ -2459,21 +2506,20 @@ ContentPermissionPrompt.prototype = {
 
     this._showPrompt(aRequest, message, "desktop-notification", actions,
                      "web-notifications",
                      "web-notifications-notification-icon", null);
   },
 
   _promptPointerLock: function CPP_promtPointerLock(aRequest, autoAllow) {
 
-    let browserBundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
     let requestingURI = aRequest.principal.URI;
 
     let originString = requestingURI.schemeIs("file") ? requestingURI.path : requestingURI.host;
-    let message = browserBundle.formatStringFromName(autoAllow ?
+    let message = gBrowserBundle.formatStringFromName(autoAllow ?
                                   "pointerLock.autoLock.title2" : "pointerLock.title2",
                                   [originString], 1);
     // If this is an autoAllow info prompt, offer no actions.
     // _showPrompt() will allow the request when it's dismissed.
     let actions = [];
     if (!autoAllow) {
       actions = [
         {
--- a/browser/devtools/framework/test/browser.ini
+++ b/browser/devtools/framework/test/browser.ini
@@ -21,17 +21,16 @@ support-files =
 [browser_target_support.js]
 [browser_two_tabs.js]
 [browser_toolbox_dynamic_registration.js]
 [browser_toolbox_getpanelwhenready.js]
 [browser_toolbox_highlight.js]
 [browser_toolbox_hosts.js]
 [browser_toolbox_hosts_size.js]
 [browser_toolbox_options.js]
-[browser_toolbox_options_devedition.js]
 [browser_toolbox_options_disable_buttons.js]
 [browser_toolbox_options_disable_cache-01.js]
 skip-if = e10s # Bug 1030318
 [browser_toolbox_options_disable_cache-02.js]
 skip-if = e10s # Bug 1030318
 [browser_toolbox_options_disable_js.js]
 skip-if = e10s # Bug 1030318
 # [browser_toolbox_raise.js] # Bug 962258
deleted file mode 100644
--- a/browser/devtools/framework/test/browser_toolbox_options_devedition.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Tests that changing preferences in the options panel updates the prefs
-// and toggles appropriate things in the toolbox.
-
-let doc = null, toolbox = null, panelWin = null;
-
-const PREF_ENABLED = "browser.devedition.theme.enabled";
-const PREF_SHOW = "browser.devedition.theme.showCustomizeButton";
-
-const URL = "data:text/html;charset=utf8,test for toggling dev edition browser theme toggling";
-
-add_task(function*() {
-  // Set preference to false by default so this could
-  // run in Developer Edition which has it on by default.
-  Services.prefs.setBoolPref(PREF_ENABLED, false);
-  Services.prefs.setBoolPref(PREF_SHOW, true);
-
-  let tab = yield addTab(URL);
-  let target = TargetFactory.forTab(tab);
-  toolbox = yield gDevTools.showToolbox(target);
-  let tool = yield toolbox.selectTool("options");
-  panelWin = tool.panelWin;
-
-  let checkbox = tool.panelDoc.getElementById("devtools-browser-theme");
-
-  ise(Services.prefs.getBoolPref(PREF_ENABLED), false, "Dev Theme pref off on start");
-
-  let themeStatus = yield clickAndWaitForThemeChange(checkbox, panelWin);
-  ise(themeStatus, true, "Theme has been toggled on.");
-
-  themeStatus = yield clickAndWaitForThemeChange(checkbox, panelWin);
-  ise(themeStatus, false, "Theme has been toggled off.");
-
-  yield cleanup();
-});
-
-function clickAndWaitForThemeChange (el, win) {
-  let deferred = promise.defer();
-  gDevTools.on("pref-changed", function handler (event, {pref}) {
-    if (pref === PREF_ENABLED) {
-      gDevTools.off("pref-changed", handler);
-      deferred.resolve(Services.prefs.getBoolPref(PREF_ENABLED));
-    }
-  });
-
-  EventUtils.synthesizeMouseAtCenter(el, {}, win);
-
-  return deferred.promise;
-}
-
-function* cleanup() {
-  yield toolbox.destroy();
-  gBrowser.removeCurrentTab();
-  Services.prefs.clearUserPref(PREF_ENABLED);
-  Services.prefs.clearUserPref(PREF_SHOW);
-  toolbox = doc = panelWin = null;
-}
--- a/browser/devtools/framework/toolbox-options.js
+++ b/browser/devtools/framework/toolbox-options.js
@@ -4,19 +4,16 @@
 
 "use strict";
 
 const {Cu, Cc, Ci} = require("chrome");
 const Services = require("Services");
 const promise = require("promise");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "gDevTools", "resource:///modules/devtools/gDevTools.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "CustomizeMode", "resource:///modules/CustomizeMode.jsm");
-const kDeveditionChangedNotification = "devedition-theme-state-changed";
-const DEVEDITION_THEME_PREF = "browser.devedition.theme.enabled";
 
 exports.OptionsPanel = OptionsPanel;
 
 XPCOMUtils.defineLazyGetter(this, "l10n", function() {
   let bundle = Services.strings.createBundle("chrome://browser/locale/devtools/toolbox.properties");
   let l10n = function(aName, ...aArgs) {
     try {
       if (aArgs.length == 0) {
@@ -82,17 +79,16 @@ function OptionsPanel(iframeWindow, tool
   this._themeRegistered = this._themeRegistered.bind(this);
   this._themeUnregistered = this._themeUnregistered.bind(this);
   this._disableJSClicked = this._disableJSClicked.bind(this);
 
   this.disableJSNode = this.panelDoc.getElementById("devtools-disable-javascript");
 
   this._addListeners();
 
-  Services.obs.addObserver(this, kDeveditionChangedNotification, false);
   const EventEmitter = require("devtools/toolkit/event-emitter");
   EventEmitter.decorate(this);
 }
 
 OptionsPanel.prototype = {
 
   get target() {
     return this.toolbox.target;
@@ -107,17 +103,16 @@ OptionsPanel.prototype = {
     } else {
       targetPromise = promise.resolve(this.target);
     }
 
     return targetPromise.then(() => {
       this.setupToolsList();
       this.setupToolbarButtonsList();
       this.setupThemeList();
-      this.setupBrowserThemeButton();
       this.populatePreferences();
       this.updateDefaultTheme();
     }).then(() => {
       this.isReady = true;
       this.emit("ready");
       return this;
     }).then(null, function onError(aReason) {
       Cu.reportError("OptionsPanel open failed. " +
@@ -141,18 +136,16 @@ OptionsPanel.prototype = {
     if (data.pref === "devtools.cache.disabled") {
       let cacheDisabled = data.newValue;
       let cbx = this.panelDoc.getElementById("devtools-disable-cache");
 
       cbx.checked = cacheDisabled;
     }
     else if (data.pref === "devtools.theme") {
       this.updateCurrentTheme();
-    } else if (data.pref === "browser.devedition.theme.enabled") {
-      this.updateBrowserTheme();
     }
   },
 
   _themeRegistered: function(event, themeId) {
     this.setupThemeList();
   },
 
   _themeUnregistered: function(event, theme) {
@@ -278,62 +271,16 @@ OptionsPanel.prototype = {
     let themes = gDevTools.getThemeDefinitionArray();
     for (let theme of themes) {
       themeBox.appendChild(createThemeOption(theme));
     }
 
     this.updateCurrentTheme();
   },
 
-  /**
-   * Similar to `populatePrefs`, except we want more
-   * special rules for the browser theme button.
-   */
-  setupBrowserThemeButton: function() {
-    let checkbox = this.panelDoc.getElementById("devtools-browser-theme");
-
-    checkbox.addEventListener("command", function() {
-      setPrefAndEmit(DEVEDITION_THEME_PREF, this.checked);
-    }.bind(checkbox));
-
-    this.updateBrowserThemeButton();
-  },
-
-  /**
-   * Called on theme changed via observer of "devedition-theme-state-changed".
-   */
-  updateBrowserThemeButton: function() {
-    let checkbox = this.panelDoc.getElementById("devtools-browser-theme");
-
-    // Check if the dev edition style sheet is applied -- will not
-    // be applied when dev edition theme is disabled, or when there's
-    // a LWT applied.
-    if (this._isDevEditionThemeOn()) {
-      checkbox.setAttribute("checked", "true");
-    } else {
-      checkbox.removeAttribute("checked");
-    }
-
-    // Should the button be shown
-    if (GetPref("browser.devedition.theme.showCustomizeButton")) {
-      checkbox.removeAttribute("hidden");
-    } else {
-      checkbox.setAttribute("hidden", "true");
-    }
-  },
-
-  /**
-   * Called when clicking the browser theme button to enable/disable
-   * the dev edition browser theme.
-   */
-  updateBrowserTheme: function() {
-    let enabled = GetPref("browser.devedition.theme.enabled");
-    CustomizeMode.prototype.toggleDevEditionTheme.call(this, enabled);
-  },
-
   populatePreferences: function() {
     let prefCheckboxes = this.panelDoc.querySelectorAll("checkbox[data-pref]");
     for (let checkbox of prefCheckboxes) {
       checkbox.checked = GetPref(checkbox.getAttribute("data-pref"));
       checkbox.addEventListener("command", function() {
         setPrefAndEmit(this.getAttribute("data-pref"), this.checked);
       }.bind(checkbox));
     }
@@ -412,35 +359,16 @@ OptionsPanel.prototype = {
 
     let options = {
       "javascriptEnabled": !checked
     };
 
     this.target.activeTab.reconfigure(options);
   },
 
-  /**
-   * Returns a boolean indicating whether or not the dev edition
-   * browser theme is applied.
-   */
-  _isDevEditionThemeOn: function() {
-    let win = Services.wm.getMostRecentWindow("navigator:browser");
-    return !!(win && win.DevEdition.styleSheet);
-  },
-
-  /**
-   * Called on observer notification for "devedition-theme-state-changed"
-   * to possibly change the state of the dev edition button
-   */
-  observe: function(aSubject, aTopic, aData) {
-    if (aTopic === kDeveditionChangedNotification) {
-      this.updateBrowserThemeButton();
-    }
-  },
-
   destroy: function() {
     if (this.destroyPromise) {
       return this.destroyPromise;
     }
 
     let deferred = promise.defer();
 
     this.destroyPromise = deferred.promise;
@@ -455,18 +383,16 @@ OptionsPanel.prototype = {
       this.target.activeTab.reconfigure(options, () => {
         this.toolbox = null;
         deferred.resolve();
       }, true);
     }
 
     this.panelWin = this.panelDoc = this.disableJSNode = null;
 
-    Services.obs.removeObserver(this, kDeveditionChangedNotification);
-
     return deferred.promise;
   }
 };
 
 /* Set a pref and emit the pref-changed event if needed. */
 function setPrefAndEmit(prefName, newValue) {
   let data = {
     pref: prefName,
--- a/browser/devtools/framework/toolbox-options.xul
+++ b/browser/devtools/framework/toolbox-options.xul
@@ -30,19 +30,16 @@
       <vbox class="options-vertical-pane" flex="1">
         <label>&options.selectDevToolsTheme.label2;</label>
         <vbox id="theme-options" class="options-groupbox">
           <radiogroup id="devtools-theme-box"
                       class="options-groupbox"
                       data-pref="devtools.theme"
                       orient="horizontal">
           </radiogroup>
-          <checkbox id="devtools-browser-theme"
-                    label="&options.usedeveditiontheme.label;"
-                    tooltiptext="&options.usedeveditiontheme.tooltip;"/>
         </vbox>
         <label>&options.commonPrefs.label;</label>
         <vbox id="commonprefs-options" class="options-groupbox">
           <checkbox label="&options.enablePersistentLogs.label;"
                     tooltiptext="&options.enablePersistentLogs.tooltip;"
                     data-pref="devtools.webconsole.persistlog"/>
         </vbox>
         <label>&options.context.inspector;</label>
--- a/browser/devtools/framework/toolbox-process-window.js
+++ b/browser/devtools/framework/toolbox-process-window.js
@@ -47,17 +47,16 @@ let connect = Task.async(function*() {
     }
   });
 });
 
 // Certain options should be toggled since we can assume chrome debugging here
 function setPrefDefaults() {
   Services.prefs.setBoolPref("devtools.inspector.showUserAgentStyles", true);
   Services.prefs.setBoolPref("devtools.performance.ui.show-platform-data", true);
-  Services.prefs.setBoolPref("browser.devedition.theme.showCustomizeButton", false);
   Services.prefs.setBoolPref("devtools.inspector.showAllAnonymousContent", true);
   Services.prefs.setBoolPref("browser.dom.window.dump.enabled", true);
   Services.prefs.setBoolPref("devtools.command-button-frames.enabled", true);
 }
 
 window.addEventListener("load", function() {
   let cmdClose = document.getElementById("toolbox-cmd-close");
   cmdClose.addEventListener("command", onCloseCommand);
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -737,17 +737,16 @@ just addresses the organization to follo
 <!ENTITY customizeMode.titlebar "Title Bar">
 <!ENTITY customizeMode.lwthemes "Themes">
 <!ENTITY customizeMode.lwthemes.myThemes "My Themes">
 <!ENTITY customizeMode.lwthemes.recommended "Recommended">
 <!ENTITY customizeMode.lwthemes.menuManage "Manage">
 <!ENTITY customizeMode.lwthemes.menuManage.accessKey "M">
 <!ENTITY customizeMode.lwthemes.menuGetMore "Get More Themes">
 <!ENTITY customizeMode.lwthemes.menuGetMore.accessKey "G">
-<!ENTITY customizeMode.deveditionTheme.label2 "Use Developer Edition Theme">
 
 <!ENTITY social.chatBar.commandkey "c">
 <!ENTITY social.chatBar.label "Focus chats">
 <!ENTITY social.chatBar.accesskey "c">
 
 <!ENTITY social.markpageMenu.accesskey "P">
 <!ENTITY social.markpageMenu.label "Save Page To…">
 <!ENTITY social.marklinkMenu.accesskey "L">
--- a/browser/themes/linux/jar.mn
+++ b/browser/themes/linux/jar.mn
@@ -132,20 +132,16 @@ browser.jar:
   skin/classic/browser/downloads/contentAreaDownloadsView.css  (downloads/contentAreaDownloadsView.css)
   skin/classic/browser/downloads/download-glow-menuPanel.png (downloads/download-glow-menuPanel.png)
   skin/classic/browser/downloads/download-notification-finish.png (downloads/download-notification-finish.png)
   skin/classic/browser/downloads/download-notification-start.png (downloads/download-notification-start.png)
   skin/classic/browser/downloads/download-summary.png (downloads/download-summary.png)
   skin/classic/browser/downloads/downloads.css        (downloads/downloads.css)
   skin/classic/browser/feeds/feedIcon.png             (feeds/feedIcon.png)
   skin/classic/browser/feeds/feedIcon16.png           (feeds/feedIcon16.png)
-  skin/classic/browser/feeds/videoFeedIcon.png        (feeds/feedIcon.png)
-  skin/classic/browser/feeds/videoFeedIcon16.png      (feeds/feedIcon16.png)
-  skin/classic/browser/feeds/audioFeedIcon.png        (feeds/feedIcon.png)
-  skin/classic/browser/feeds/audioFeedIcon16.png      (feeds/feedIcon16.png)
   skin/classic/browser/feeds/subscribe.css            (feeds/subscribe.css)
   skin/classic/browser/feeds/subscribe-ui.css         (feeds/subscribe-ui.css)
 * skin/classic/browser/newtab/newTab.css              (newtab/newTab.css)
   skin/classic/browser/newtab/controls.svg            (../shared/newtab/controls.svg)
   skin/classic/browser/panic-panel/header.png         (../shared/panic-panel/header.png)
   skin/classic/browser/panic-panel/header-small.png   (../shared/panic-panel/header-small.png)
   skin/classic/browser/panic-panel/icons.png          (../shared/panic-panel/icons.png)
   skin/classic/browser/places/bookmarksMenu.png       (places/bookmarksMenu.png)
@@ -428,8 +424,13 @@ browser.jar:
   skin/classic/browser/devtools/tooltip/arrow-horizontal-light@2x.png   (../shared/devtools/tooltip/arrow-horizontal-light@2x.png)
   skin/classic/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
   skin/classic/browser/devtools/tooltip/arrow-vertical-light@2x.png   (../shared/devtools/tooltip/arrow-vertical-light@2x.png)
 #ifdef E10S_TESTING_ONLY
   skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
 #endif
   skin/classic/browser/warning16.png                        (../shared/warning16.png)
   skin/classic/browser/warning16@2x.png                     (../shared/warning16@2x.png)
+
+% override chrome://browser/skin/feeds/audioFeedIcon.png              chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/audioFeedIcon16.png            chrome://browser/skin/feeds/feedIcon16.png
+% override chrome://browser/skin/feeds/videoFeedIcon.png              chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/videoFeedIcon16.png            chrome://browser/skin/feeds/feedIcon16.png
--- a/browser/themes/osx/jar.mn
+++ b/browser/themes/osx/jar.mn
@@ -217,20 +217,16 @@ browser.jar:
   skin/classic/browser/downloads/download-notification-start@2x.png  (downloads/download-notification-start@2x.png)
   skin/classic/browser/downloads/download-summary.png       (downloads/download-summary.png)
   skin/classic/browser/downloads/download-summary@2x.png    (downloads/download-summary@2x.png)
   skin/classic/browser/downloads/downloads.css              (downloads/downloads.css)
   skin/classic/browser/feeds/subscribe.css                  (feeds/subscribe.css)
   skin/classic/browser/feeds/subscribe-ui.css               (feeds/subscribe-ui.css)
   skin/classic/browser/feeds/feedIcon.png                   (feeds/feedIcon.png)
   skin/classic/browser/feeds/feedIcon16.png                 (feeds/feedIcon16.png)
-  skin/classic/browser/feeds/videoFeedIcon.png              (feeds/feedIcon.png)
-  skin/classic/browser/feeds/videoFeedIcon16.png            (feeds/feedIcon16.png)
-  skin/classic/browser/feeds/audioFeedIcon.png              (feeds/feedIcon.png)
-  skin/classic/browser/feeds/audioFeedIcon16.png            (feeds/feedIcon16.png)
 * skin/classic/browser/newtab/newTab.css                    (newtab/newTab.css)
   skin/classic/browser/newtab/controls.svg                  (../shared/newtab/controls.svg)
   skin/classic/browser/setDesktopBackground.css
   skin/classic/browser/monitor.png
   skin/classic/browser/monitor_16-10.png
   skin/classic/browser/panic-panel/header.png               (../shared/panic-panel/header.png)
   skin/classic/browser/panic-panel/header@2x.png            (../shared/panic-panel/header@2x.png)
   skin/classic/browser/panic-panel/header-small.png         (../shared/panic-panel/header-small.png)
@@ -592,16 +588,20 @@ browser.jar:
   skin/classic/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
   skin/classic/browser/devtools/tooltip/arrow-vertical-light@2x.png   (../shared/devtools/tooltip/arrow-vertical-light@2x.png)
 #ifdef E10S_TESTING_ONLY
   skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
 #endif
   skin/classic/browser/warning16.png                        (../shared/warning16.png)
   skin/classic/browser/warning16@2x.png                     (../shared/warning16@2x.png)
 
+% override chrome://browser/skin/feeds/audioFeedIcon.png                   chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/audioFeedIcon16.png                 chrome://browser/skin/feeds/feedIcon16.png
+% override chrome://browser/skin/feeds/videoFeedIcon.png                   chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/videoFeedIcon16.png                 chrome://browser/skin/feeds/feedIcon16.png
 % override chrome://browser/skin/toolbarbutton-dropmarker.png              chrome://browser/skin/lion/toolbarbutton-dropmarker.png                 os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabbrowser/alltabs-box-bkgnd-icon.png     chrome://browser/skin/lion/tabbrowser/alltabs-box-bkgnd-icon.png        os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabview/tabview.png                       chrome://browser/skin/lion/tabview/tabview.png                          os=Darwin osversion>=10.7
 % override chrome://browser/skin/places/toolbar.png                        chrome://browser/skin/lion/places/toolbar.png                           os=Darwin osversion>=10.7
 % override chrome://browser/skin/Toolbar.png                               chrome://browser/skin/yosemite/Toolbar.png                              os=Darwin osversion>=10.10
 % override chrome://browser/skin/Toolbar@2x.png                            chrome://browser/skin/yosemite/Toolbar@2x.png                           os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel.png                             chrome://browser/skin/yosemite/menuPanel.png                            os=Darwin osversion>=10.10
 % override chrome://browser/skin/menuPanel@2x.png                          chrome://browser/skin/yosemite/menuPanel@2x.png                         os=Darwin osversion>=10.10
--- a/browser/themes/preprocess-tab-svgs.py
+++ b/browser/themes/preprocess-tab-svgs.py
@@ -24,18 +24,8 @@ def _do_preprocessing(output_svg, input_
                defines=additional_defines)
 
 def tab_side_start(output_svg, input_svg_file):
     _do_preprocessing(output_svg, input_svg_file, {'TAB_SIDE': 'start'})
 
 def tab_side_end(output_svg, input_svg_file):
     _do_preprocessing(output_svg, input_svg_file, {'TAB_SIDE': 'end'})
 
-def aero_tab_side_start(output_svg, input_svg_file):
-    _do_preprocessing(output_svg, input_svg_file,
-                      {'TAB_SIDE': 'start',
-                       'WINDOWS_AERO': 1})
-
-def aero_tab_side_end(output_svg, input_svg_file):
-    _do_preprocessing(output_svg, input_svg_file,
-                      {'TAB_SIDE': 'end',
-                       'WINDOWS_AERO': 1})
-
--- a/browser/themes/shared/tab-selected.svg
+++ b/browser/themes/shared/tab-selected.svg
@@ -24,17 +24,17 @@
       #tab-background-fill {
         background-color: @fgTabBackgroundColor@;
         background-image: @fgTabTexture@;
         background-repeat: no-repeat;
         height: 100%;
         width: 100%;
       }
 
-%ifdef WINDOWS_AERO
+%ifdef XP_WIN
       @media (-moz-windows-default-theme) and (-moz-os-version: windows-vista),
              (-moz-windows-default-theme) and (-moz-os-version: windows-win7) {
         #tab-background-fill {
           background-color: @customToolbarColor@;
         }
       }
 %endif
     ]]></style>
--- a/browser/themes/tab-svgs.mozbuild
+++ b/browser/themes/tab-svgs.mozbuild
@@ -15,12 +15,8 @@ def generate_svg(svg_name, script_functi
     generated_files += [svg_name]
     svg = generated_files[svg_name]
     svg.script = script + ':' + script_function
     svg.inputs = input
 
 generate_svg('tab-selected-end.svg', 'tab_side_end')
 generate_svg('tab-selected-start.svg', 'tab_side_start')
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    # Same as above, but for aero.
-    generate_svg('tab-selected-end-aero.svg', 'aero_tab_side_end')
-    generate_svg('tab-selected-start-aero.svg', 'aero_tab_side_start')
rename from browser/themes/windows/Metro_Glyph-aero.png
rename to browser/themes/windows/Metro_Glyph.png
--- a/browser/themes/windows/jar.mn
+++ b/browser/themes/windows/jar.mn
@@ -1,110 +1,126 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 browser.jar:
-% skin browser classic/1.0 %skin/classic/browser/ os=WINNT osversion<6
-% skin browser classic/1.0 %skin/classic/browser/ os!=WINNT
-# NOTE: If you add a new file here, you'll need to add it to the aero
-# section at the bottom of this file
+% skin browser classic/1.0 %skin/classic/browser/
         skin/classic/browser/sanitizeDialog.css
 *       skin/classic/browser/aboutSessionRestore.css                 (../shared/aboutSessionRestore.css)
-        skin/classic/browser/aboutSessionRestore-window-icon.png     (preferences/application.png)
+        skin/classic/browser/aboutSessionRestore-window-icon-aero.png
         skin/classic/browser/aboutWelcomeBack.css                    (../shared/aboutWelcomeBack.css)
         skin/classic/browser/aboutCertError.css
         skin/classic/browser/aboutCertError_sectionCollapsed.png
         skin/classic/browser/aboutCertError_sectionCollapsed-rtl.png
         skin/classic/browser/aboutCertError_sectionExpanded.png
         skin/classic/browser/aboutNetError.css                       (../shared/aboutNetError.css)
         skin/classic/browser/aboutNetError_info.svg                  (../shared/aboutNetError_info.svg)
         skin/classic/browser/aboutNetError_alert.svg                 (../shared/aboutNetError_alert.svg)
         skin/classic/browser/aboutSocialError.css                    (../shared/aboutSocialError.css)
 *       skin/classic/browser/aboutProviderDirectory.css              (../shared/aboutProviderDirectory.css)
 #ifdef MOZ_SERVICES_SYNC
         skin/classic/browser/aboutSyncTabs.css
 #endif
         skin/classic/browser/aboutTabCrashed.css                     (../shared/aboutTabCrashed.css)
         skin/classic/browser/actionicon-tab.png
 *       skin/classic/browser/browser.css
+*       skin/classic/browser/browser-aero.css
 *       skin/classic/browser/devedition.css
+*       skin/classic/browser/devedition-aero.css
 *       skin/classic/browser/browser-lightweightTheme.css
         skin/classic/browser/click-to-play-warning-stripes.png
         skin/classic/browser/content-contextmenu.svg
         skin/classic/browser/drm-icon.svg                            (../shared/drm-icon.svg)
 *       skin/classic/browser/engineManager.css
         skin/classic/browser/fullscreen-darknoise.png
         skin/classic/browser/Geolocation-16.png
         skin/classic/browser/Geolocation-64.png
         skin/classic/browser/heartbeat-icon.svg                      (../shared/heartbeat-icon.svg)
         skin/classic/browser/heartbeat-star-lit.svg                  (../shared/heartbeat-star-lit.svg)
         skin/classic/browser/heartbeat-star-off.svg                  (../shared/heartbeat-star-off.svg)
         skin/classic/browser/Info.png
+        skin/classic/browser/Info-aero.png
         skin/classic/browser/identity.png
+        skin/classic/browser/identity-aero.png
         skin/classic/browser/identity-icons-generic.png
         skin/classic/browser/identity-icons-https.png
         skin/classic/browser/identity-icons-https-ev.png
         skin/classic/browser/identity-icons-https-mixed-active.png
         skin/classic/browser/identity-icons-https-mixed-display.png
         skin/classic/browser/keyhole-forward-mask.svg
         skin/classic/browser/KUI-background.png
         skin/classic/browser/livemark-folder.png
+        skin/classic/browser/livemark-folder-aero.png
         skin/classic/browser/magnifier.png                          (../shared/magnifier.png)
         skin/classic/browser/magnifier@2x.png                       (../shared/magnifier@2x.png)
         skin/classic/browser/mask.png                               (../shared/mask.png)
         skin/classic/browser/mask@2x.png                            (../shared/mask@2x.png)
         skin/classic/browser/menu-back.png
+        skin/classic/browser/menu-back-aero.png
         skin/classic/browser/menu-forward.png
+        skin/classic/browser/menu-forward-aero.png
         skin/classic/browser/menuPanel.png
+        skin/classic/browser/menuPanel-aero.png
         skin/classic/browser/menuPanel-customize.png
         skin/classic/browser/menuPanel-exit.png
         skin/classic/browser/menuPanel-help.png
         skin/classic/browser/menuPanel-small.png
-        skin/classic/browser/Metro_Glyph.png                        (Metro_Glyph-aero.png)
+        skin/classic/browser/menuPanel-small-aero.png
+        skin/classic/browser/Metro_Glyph.png
         skin/classic/browser/Metro_Glyph-inverted.png
         skin/classic/browser/Metro_Glyph-menuPanel.png
         skin/classic/browser/bad-content-blocked-16.png             (../shared/bad-content-blocked-16.png)
         skin/classic/browser/bad-content-blocked-16@2x.png          (../shared/bad-content-blocked-16@2x.png)
         skin/classic/browser/bad-content-blocked-64.png             (../shared/bad-content-blocked-64.png)
         skin/classic/browser/bad-content-unblocked-16.png           (../shared/bad-content-unblocked-16.png)
         skin/classic/browser/bad-content-unblocked-64.png           (../shared/bad-content-unblocked-64.png)
         skin/classic/browser/monitor.png
         skin/classic/browser/monitor_16-10.png
         skin/classic/browser/notification-16.png
         skin/classic/browser/notification-64.png
         skin/classic/browser/pageInfo.css
         skin/classic/browser/pageInfo.png
-        skin/classic/browser/page-livemarks.png                      (feeds/feedIcon16.png)
+        skin/classic/browser/pageInfo-aero.png
         skin/classic/browser/pointerLock-16.png
         skin/classic/browser/pointerLock-64.png
         skin/classic/browser/Privacy-16.png
+        skin/classic/browser/Privacy-16-aero.png
         skin/classic/browser/Privacy-32.png
+        skin/classic/browser/Privacy-32-aero.png
         skin/classic/browser/Privacy-48.png
+        skin/classic/browser/privatebrowsing-mask-tabstrip.png
         skin/classic/browser/privatebrowsing-mask-tabstrip-XPVista7.png
+        skin/classic/browser/privatebrowsing-mask-titlebar.png
         skin/classic/browser/privatebrowsing-mask-titlebar-XPVista7.png
         skin/classic/browser/privatebrowsing-mask-titlebar-XPVista7-tall.png
         skin/classic/browser/reload-stop-go.png
         skin/classic/browser/searchbar.css
         skin/classic/browser/searchbar-dropdown-arrow.png
+        skin/classic/browser/searchbar-dropdown-arrow-aero.png
         skin/classic/browser/search-pref.png                         (../shared/search/search-pref.png)
         skin/classic/browser/search-indicator.png                    (../shared/search/search-indicator.png)
         skin/classic/browser/search-indicator-add-engine.png         (../shared/search/search-indicator-add-engine.png)
         skin/classic/browser/search-engine-placeholder.png           (../shared/search/search-engine-placeholder.png)
         skin/classic/browser/badge-add-engine.png                    (../shared/search/badge-add-engine.png)
         skin/classic/browser/search-indicator-badge-add.png          (../shared/search/search-indicator-badge-add.png)
         skin/classic/browser/search-history-icon.svg                 (../shared/search/history-icon.svg)
         skin/classic/browser/Secure24.png
+        skin/classic/browser/Secure24-aero.png
         skin/classic/browser/setDesktopBackground.css
         skin/classic/browser/slowStartup-16.png
         skin/classic/browser/theme-switcher-icon.png
-        skin/classic/browser/Toolbar.png                             (Toolbar-XP.png)
+        skin/classic/browser/theme-switcher-icon-aero.png
+        skin/classic/browser/Toolbar.png
+        skin/classic/browser/Toolbar-aero.png
         skin/classic/browser/Toolbar-inverted.png
         skin/classic/browser/Toolbar-lunaSilver.png
-        skin/classic/browser/toolbarbutton-dropdown-arrow.png        (toolbarbutton-dropdown-arrow-XPVista7.png)
+        skin/classic/browser/Toolbar-XP.png
+        skin/classic/browser/toolbarbutton-dropdown-arrow.png
+        skin/classic/browser/toolbarbutton-dropdown-arrow-XPVista7.png
         skin/classic/browser/toolbarbutton-dropdown-arrow-inverted.png
         skin/classic/browser/undoCloseTab.png                        (../shared/undoCloseTab.png)
         skin/classic/browser/undoCloseTab@2x.png                     (../shared/undoCloseTab@2x.png)
         skin/classic/browser/urlbar-arrow.png
         skin/classic/browser/urlbar-popup-blocked.png
         skin/classic/browser/urlbar-history-dropmarker.png
         skin/classic/browser/session-restore.svg                     (../shared/incontent-icons/session-restore.svg)
         skin/classic/browser/tab-crashed.svg                         (../shared/incontent-icons/tab-crashed.svg)
@@ -125,135 +141,164 @@ browser.jar:
         skin/classic/browser/webRTC-shareScreen-16.png               (../shared/webrtc/webRTC-shareScreen-16.png)
         skin/classic/browser/webRTC-shareScreen-64.png               (../shared/webrtc/webRTC-shareScreen-64.png)
         skin/classic/browser/webRTC-sharingScreen-16.png             (../shared/webrtc/webRTC-sharingScreen-16.png)
         skin/classic/browser/webRTC-indicator.css                    (../shared/webrtc/indicator.css)
         skin/classic/browser/webRTC-camera-white-16.png              (../shared/webrtc/camera-white-16.png)
         skin/classic/browser/webRTC-microphone-white-16.png          (../shared/webrtc/microphone-white-16.png)
         skin/classic/browser/webRTC-screen-white-16.png              (../shared/webrtc/screen-white-16.png)
         skin/classic/browser/loop/menuPanel.png                      (loop/menuPanel.png)
-        skin/classic/browser/loop/toolbar.png                        (loop/toolbar-XP.png)
+        skin/classic/browser/loop/menuPanel-aero.png                 (loop/menuPanel-aero.png)
+        skin/classic/browser/loop/toolbar.png                        (loop/toolbar.png)
+        skin/classic/browser/loop/toolbar-aero.png                   (loop/toolbar-aero.png)
         skin/classic/browser/loop/toolbar-inverted.png               (loop/toolbar-inverted.png)
+        skin/classic/browser/loop/toolbar-XP.png                     (loop/toolbar-XP.png)
         skin/classic/browser/loop/toolbar-lunaSilver.png             (loop/toolbar-lunaSilver.png)
         skin/classic/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
         skin/classic/browser/customizableui/customizeFavicon.ico  (../shared/customizableui/customizeFavicon.ico)
         skin/classic/browser/customizableui/customize-illustration.png  (../shared/customizableui/customize-illustration.png)
         skin/classic/browser/customizableui/customize-illustration-rtl.png  (../shared/customizableui/customize-illustration-rtl.png)
         skin/classic/browser/customizableui/customize-titleBar-toggle.png  (customizableui/customize-titleBar-toggle.png)
         skin/classic/browser/customizableui/customizeMode-gridTexture.png  (customizableui/customizeMode-gridTexture.png)
         skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png  (customizableui/customizeMode-separatorHorizontal.png)
         skin/classic/browser/customizableui/customizeMode-separatorVertical.png  (customizableui/customizeMode-separatorVertical.png)
         skin/classic/browser/customizableui/info-icon-customizeTip.png  (../shared/customizableui/info-icon-customizeTip.png)
         skin/classic/browser/customizableui/menu-arrow.svg           (customizableui/menu-arrow.svg)
         skin/classic/browser/customizableui/menuPanel-customizeFinish.png  (../shared/customizableui/menuPanel-customizeFinish.png)
         skin/classic/browser/customizableui/panelarrow-customizeTip.png  (../shared/customizableui/panelarrow-customizeTip.png)
 *       skin/classic/browser/customizableui/panelUIOverlay.css       (customizableui/panelUIOverlay.css)
+*       skin/classic/browser/customizableui/panelUIOverlay-aero.css  (customizableui/panelUIOverlay-aero.css)
         skin/classic/browser/customizableui/subView-arrow-back-inverted.png  (../shared/customizableui/subView-arrow-back-inverted.png)
         skin/classic/browser/customizableui/subView-arrow-back-inverted-rtl.png  (../shared/customizableui/subView-arrow-back-inverted-rtl.png)
         skin/classic/browser/customizableui/whimsy.png  (../shared/customizableui/whimsy.png)
         skin/classic/browser/customizableui/whimsy@2x.png  (../shared/customizableui/whimsy@2x.png)
         skin/classic/browser/customizableui/whimsy-bw.png  (../shared/customizableui/whimsy-bw.png)
         skin/classic/browser/customizableui/whimsy-bw@2x.png  (../shared/customizableui/whimsy-bw@2x.png)
 *       skin/classic/browser/downloads/allDownloadsViewOverlay.css   (downloads/allDownloadsViewOverlay.css)
+*       skin/classic/browser/downloads/allDownloadsViewOverlay-aero.css (downloads/allDownloadsViewOverlay-aero.css)
         skin/classic/browser/downloads/buttons.png                   (downloads/buttons.png)
+        skin/classic/browser/downloads/buttons-aero.png              (downloads/buttons-aero.png)
         skin/classic/browser/downloads/contentAreaDownloadsView.css  (downloads/contentAreaDownloadsView.css)
         skin/classic/browser/downloads/download-glow-menuPanel-XPVista7.png   (downloads/download-glow-menuPanel-XPVista7.png)
         skin/classic/browser/downloads/download-notification-finish.png (downloads/download-notification-finish.png)
         skin/classic/browser/downloads/download-notification-start.png (downloads/download-notification-start.png)
         skin/classic/browser/downloads/download-summary.png          (downloads/download-summary.png)
 *       skin/classic/browser/downloads/downloads.css                 (downloads/downloads.css)
+*       skin/classic/browser/downloads/downloads-aero.css            (downloads/downloads-aero.css)
         skin/classic/browser/feeds/feedIcon.png                      (feeds/feedIcon.png)
         skin/classic/browser/feeds/feedIcon16.png                    (feeds/feedIcon16.png)
-        skin/classic/browser/feeds/audioFeedIcon.png                 (feeds/feedIcon.png)
-        skin/classic/browser/feeds/audioFeedIcon16.png               (feeds/feedIcon16.png)
-        skin/classic/browser/feeds/videoFeedIcon.png                 (feeds/feedIcon.png)
-        skin/classic/browser/feeds/videoFeedIcon16.png               (feeds/feedIcon16.png)
+        skin/classic/browser/feeds/feedIcon-aero.png                 (feeds/feedIcon-aero.png)
+        skin/classic/browser/feeds/feedIcon16-aero.png               (feeds/feedIcon16-aero.png)
         skin/classic/browser/feeds/subscribe.css                     (feeds/subscribe.css)
         skin/classic/browser/feeds/subscribe-ui.css                  (feeds/subscribe-ui.css)
 *       skin/classic/browser/newtab/newTab.css                       (newtab/newTab.css)
         skin/classic/browser/newtab/controls.svg                     (../shared/newtab/controls.svg)
         skin/classic/browser/panic-panel/header.png                  (../shared/panic-panel/header.png)
         skin/classic/browser/panic-panel/header-small.png            (../shared/panic-panel/header-small.png)
         skin/classic/browser/panic-panel/icons.png                   (../shared/panic-panel/icons.png)
         skin/classic/browser/places/places.css                       (places/places.css)
+*       skin/classic/browser/places/places-aero.css                  (places/places-aero.css)
 *       skin/classic/browser/places/organizer.css                    (places/organizer.css)
+*       skin/classic/browser/places/organizer-aero.css               (places/organizer-aero.css)
         skin/classic/browser/places/bookmark.png                     (places/bookmark.png)
+        skin/classic/browser/places/bookmark-aero.png                (places/bookmark-aero.png)
         skin/classic/browser/places/query.png                        (places/query.png)
+        skin/classic/browser/places/query-aero.png                   (places/query-aero.png)
         skin/classic/browser/places/bookmarksMenu.png                (places/bookmarksMenu.png)
+        skin/classic/browser/places/bookmarksMenu-aero.png           (places/bookmarksMenu-aero.png)
         skin/classic/browser/places/bookmarksToolbar.png             (places/bookmarksToolbar.png)
+        skin/classic/browser/places/bookmarksToolbar-aero.png        (places/bookmarksToolbar-aero.png)
         skin/classic/browser/places/bookmarksToolbar-menuPanel.png   (places/bookmarksToolbar-menuPanel.png)
+        skin/classic/browser/places/bookmarksToolbar-menuPanel-aero.png (places/bookmarksToolbar-menuPanel-aero.png)
         skin/classic/browser/places/bookmarks-notification-finish.png (places/bookmarks-notification-finish.png)
         skin/classic/browser/places/calendar.png                     (places/calendar.png)
+        skin/classic/browser/places/calendar-aero.png                (places/calendar-aero.png)
         skin/classic/browser/places/toolbarDropMarker.png            (places/toolbarDropMarker.png)
+        skin/classic/browser/places/toolbarDropMarker-aero.png       (places/toolbarDropMarker-aero.png)
         skin/classic/browser/places/editBookmarkOverlay.css          (places/editBookmarkOverlay.css)
         skin/classic/browser/places/libraryToolbar.png               (places/libraryToolbar.png)
+        skin/classic/browser/places/libraryToolbar-aero.png          (places/libraryToolbar-aero.png)
         skin/classic/browser/places/starred48.png                    (places/starred48.png)
+        skin/classic/browser/places/starred48-aero.png               (places/starred48-aero.png)
         skin/classic/browser/places/unstarred48.png                  (places/unstarred48.png)
         skin/classic/browser/places/tag.png                          (places/tag.png)
+        skin/classic/browser/places/tag-aero.png                     (places/tag-aero.png)
         skin/classic/browser/places/history.png                      (places/history.png)
+        skin/classic/browser/places/history-aero.png                 (places/history-aero.png)
         skin/classic/browser/places/allBookmarks.png                 (places/allBookmarks.png)
+        skin/classic/browser/places/allBookmarks-aero.png            (places/allBookmarks-aero.png)
         skin/classic/browser/places/unsortedBookmarks.png            (places/unsortedBookmarks.png)
+        skin/classic/browser/places/unsortedBookmarks-aero.png       (places/unsortedBookmarks-aero.png)
         skin/classic/browser/places/downloads.png                    (places/downloads.png)
         skin/classic/browser/places/livemark-item.png                (places/livemark-item.png)
         skin/classic/browser/preferences/alwaysAsk.png               (preferences/alwaysAsk.png)
+        skin/classic/browser/preferences/alwaysAsk-aero.png          (preferences/alwaysAsk-aero.png)
         skin/classic/browser/preferences/application.png             (preferences/application.png)
+        skin/classic/browser/preferences/application-aero.png        (preferences/application-aero.png)
         skin/classic/browser/preferences/mail.png                    (preferences/mail.png)
+        skin/classic/browser/preferences/mail-aero.png               (preferences/mail-aero.png)
         skin/classic/browser/preferences/Options.png                 (preferences/Options.png)
+        skin/classic/browser/preferences/Options-aero.png            (preferences/Options-aero.png)
 #ifdef MOZ_SERVICES_SYNC
         skin/classic/browser/preferences/Options-sync.png            (preferences/Options-sync.png)
 #endif
         skin/classic/browser/preferences/saveFile.png                (preferences/saveFile.png)
+        skin/classic/browser/preferences/saveFile-aero.png           (preferences/saveFile-aero.png)
 *       skin/classic/browser/preferences/preferences.css             (preferences/preferences.css)
 *       skin/classic/browser/preferences/in-content/preferences.css  (preferences/in-content/preferences.css)
 *       skin/classic/browser/preferences/in-content/dialog.css       (preferences/in-content/dialog.css)
         skin/classic/browser/preferences/in-content/favicon.ico      (../shared/incontentprefs/favicon.ico)
         skin/classic/browser/preferences/in-content/icons.svg        (../shared/incontentprefs/icons.svg)
         skin/classic/browser/preferences/in-content/search.css       (../shared/incontentprefs/search.css)
         skin/classic/browser/preferences/in-content/default-profile-image.svg   (../shared/incontentprefs/default-profile-image.svg)
         skin/classic/browser/preferences/applications.css            (preferences/applications.css)
         skin/classic/browser/preferences/aboutPermissions.css        (preferences/aboutPermissions.css)
         skin/classic/browser/preferences/search.css                  (preferences/search.css)
-        skin/classic/browser/preferences/checkbox.png                (preferences/checkbox-xp.png)
+        skin/classic/browser/preferences/checkbox.png                (preferences/checkbox.png)
+        skin/classic/browser/preferences/checkbox-aero.png           (preferences/checkbox-aero.png)
         skin/classic/browser/preferences/checkbox-classic.png        (preferences/checkbox-classic.png)
+        skin/classic/browser/preferences/checkbox-xp.png             (preferences/checkbox-xp.png)
         skin/classic/browser/social/services-16.png                  (social/services-16.png)
         skin/classic/browser/social/services-64.png                  (social/services-64.png)
         skin/classic/browser/social/chat-icons.svg                   (../shared/social/chat-icons.svg)
         skin/classic/browser/social/gear_default.png                 (../shared/social/gear_default.png)
         skin/classic/browser/social/gear_clicked.png                 (../shared/social/gear_clicked.png)
-        skin/classic/browser/tabbrowser/newtab.png                   (tabbrowser/newtab-XPVista7.png)
+        skin/classic/browser/tabbrowser/newtab.png                   (tabbrowser/newtab.png)
+        skin/classic/browser/tabbrowser/newtab-XPVista7.png          (tabbrowser/newtab-XPVista7.png)
         skin/classic/browser/tabbrowser/newtab-inverted.png          (tabbrowser/newtab-inverted.png)
         skin/classic/browser/tabbrowser/connecting.png               (tabbrowser/connecting.png)
         skin/classic/browser/tabbrowser/crashed.svg                  (../shared/tabbrowser/crashed.svg)
         skin/classic/browser/tabbrowser/loading.png                  (tabbrowser/loading.png)
         skin/classic/browser/tabbrowser/tab-active-middle.png        (tabbrowser/tab-active-middle.png)
         skin/classic/browser/tabbrowser/tab-active-middle@2x.png     (tabbrowser/tab-active-middle@2x.png)
-        skin/classic/browser/tabbrowser/tab-arrow-left.png           (tabbrowser/tab-arrow-left-XPVista7.png)
+        skin/classic/browser/tabbrowser/tab-arrow-left.png           (tabbrowser/tab-arrow-left.png)
+        skin/classic/browser/tabbrowser/tab-arrow-left-XPVista7.png  (tabbrowser/tab-arrow-left-XPVista7.png)
         skin/classic/browser/tabbrowser/tab-arrow-left-inverted.png  (tabbrowser/tab-arrow-left-inverted.png)
         skin/classic/browser/tabbrowser/tab-background-start.png     (tabbrowser/tab-background-start.png)
         skin/classic/browser/tabbrowser/tab-background-start@2x.png  (tabbrowser/tab-background-start@2x.png)
         skin/classic/browser/tabbrowser/tab-background-middle.png    (tabbrowser/tab-background-middle.png)
         skin/classic/browser/tabbrowser/tab-background-middle@2x.png (tabbrowser/tab-background-middle@2x.png)
         skin/classic/browser/tabbrowser/tab-background-end.png       (tabbrowser/tab-background-end.png)
         skin/classic/browser/tabbrowser/tab-background-end@2x.png    (tabbrowser/tab-background-end@2x.png)
         skin/classic/browser/tabbrowser/tab-overflow-indicator.png   (../shared/tabbrowser/tab-overflow-indicator.png)
-
         skin/classic/browser/tabbrowser/pendingpaint.png             (../shared/tabbrowser/pendingpaint.png)
 
 # NOTE: The following two files (tab-selected-end.svg, tab-selected-start.svg) get pre-processed in
 #       Makefile.in with a non-default marker of "%" and the result of that gets packaged.
         skin/classic/browser/tabbrowser/tab-selected-end.svg         (tab-selected-end.svg)
         skin/classic/browser/tabbrowser/tab-selected-start.svg       (tab-selected-start.svg)
 
         skin/classic/browser/tabbrowser/tab-stroke-end.png           (tabbrowser/tab-stroke-end.png)
         skin/classic/browser/tabbrowser/tab-stroke-end@2x.png        (tabbrowser/tab-stroke-end@2x.png)
         skin/classic/browser/tabbrowser/tab-stroke-start.png         (tabbrowser/tab-stroke-start.png)
         skin/classic/browser/tabbrowser/tab-stroke-start@2x.png      (tabbrowser/tab-stroke-start@2x.png)
         skin/classic/browser/tabbrowser/tabDragIndicator.png         (tabbrowser/tabDragIndicator.png)
+        skin/classic/browser/tabbrowser/tab-separator.png            (tabbrowser/tab-separator.png)
+        skin/classic/browser/tabbrowser/tab-separator-aero.png       (tabbrowser/tab-separator-aero.png)
         skin/classic/browser/tabbrowser/tab-separator-luna-blue.png  (tabbrowser/tab-separator-luna-blue.png)
-        skin/classic/browser/tabbrowser/tab-separator.png            (tabbrowser/tab-separator.png)
         skin/classic/browser/tabview/close.png                      (tabview/close.png)
         skin/classic/browser/tabview/edit-light.png                 (tabview/edit-light.png)
         skin/classic/browser/tabview/grain.png                      (tabview/grain.png)
         skin/classic/browser/tabview/search.png                     (tabview/search.png)
         skin/classic/browser/tabview/stack-expander.png             (tabview/stack-expander.png)
         skin/classic/browser/tabview/tabview.png                    (tabview/tabview.png)
         skin/classic/browser/tabview/tabview-inverted.png           (tabview/tabview-inverted.png)
         skin/classic/browser/tabview/tabview.css                    (tabview/tabview.css)
@@ -467,516 +512,83 @@ browser.jar:
         skin/classic/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
         skin/classic/browser/devtools/tooltip/arrow-vertical-light@2x.png   (../shared/devtools/tooltip/arrow-vertical-light@2x.png)
 #ifdef E10S_TESTING_ONLY
         skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
 #endif
         skin/classic/browser/warning16.png                            (../shared/warning16.png)
         skin/classic/browser/warning16@2x.png                         (../shared/warning16@2x.png)
 
-#ifdef XP_WIN
-browser.jar:
-% skin browser classic/1.0 %skin/classic/aero/browser/ os=WINNT osversion>=6
-        skin/classic/aero/browser/sanitizeDialog.css                       (sanitizeDialog.css)
-*       skin/classic/aero/browser/aboutSessionRestore.css             (../shared/aboutSessionRestore.css)
-        skin/classic/aero/browser/aboutSessionRestore-window-icon.png (aboutSessionRestore-window-icon-aero.png)
-        skin/classic/aero/browser/aboutCertError.css
-        skin/classic/aero/browser/aboutCertError_sectionCollapsed.png
-        skin/classic/aero/browser/aboutCertError_sectionCollapsed-rtl.png
-        skin/classic/aero/browser/aboutCertError_sectionExpanded.png
-        skin/classic/aero/browser/aboutNetError.css                   (../shared/aboutNetError.css)
-        skin/classic/aero/browser/aboutNetError_info.svg              (../shared/aboutNetError_info.svg)
-        skin/classic/aero/browser/aboutNetError_alert.svg             (../shared/aboutNetError_alert.svg)
-        skin/classic/aero/browser/aboutSocialError.css                (../shared/aboutSocialError.css)
-*       skin/classic/aero/browser/aboutProviderDirectory.css          (../shared/aboutProviderDirectory.css)
-#ifdef MOZ_SERVICES_SYNC
-        skin/classic/aero/browser/aboutSyncTabs.css
-#endif
-        skin/classic/aero/browser/aboutTabCrashed.css                (../shared/aboutTabCrashed.css)
-        skin/classic/aero/browser/aboutWelcomeBack.css               (../shared/aboutWelcomeBack.css)
-        skin/classic/aero/browser/actionicon-tab.png
-*       skin/classic/aero/browser/browser.css                        (browser-aero.css)
-*       skin/classic/aero/browser/devedition.css                     (devedition-aero.css)
-*       skin/classic/aero/browser/browser-lightweightTheme.css
-        skin/classic/aero/browser/click-to-play-warning-stripes.png
-        skin/classic/aero/browser/content-contextmenu.svg
-        skin/classic/aero/browser/drm-icon.svg                       (../shared/drm-icon.svg)
-*       skin/classic/aero/browser/engineManager.css
-        skin/classic/aero/browser/fullscreen-darknoise.png
-        skin/classic/aero/browser/Geolocation-16.png
-        skin/classic/aero/browser/Geolocation-64.png
-        skin/classic/aero/browser/heartbeat-icon.svg                 (../shared/heartbeat-icon.svg)
-        skin/classic/aero/browser/heartbeat-star-lit.svg             (../shared/heartbeat-star-lit.svg)
-        skin/classic/aero/browser/heartbeat-star-off.svg             (../shared/heartbeat-star-off.svg)
-        skin/classic/aero/browser/Info.png                           (Info-aero.png)
-        skin/classic/aero/browser/identity.png                       (identity-aero.png)
-        skin/classic/aero/browser/identity-icons-generic.png
-        skin/classic/aero/browser/identity-icons-https.png
-        skin/classic/aero/browser/identity-icons-https-ev.png
-        skin/classic/aero/browser/identity-icons-https-mixed-active.png
-        skin/classic/aero/browser/identity-icons-https-mixed-display.png
-        skin/classic/aero/browser/keyhole-forward-mask.svg
-        skin/classic/aero/browser/KUI-background.png
-        skin/classic/aero/browser/livemark-folder.png                (livemark-folder-aero.png)
-        skin/classic/aero/browser/magnifier.png                      (../shared/magnifier.png)
-        skin/classic/aero/browser/magnifier@2x.png                   (../shared/magnifier@2x.png)
-        skin/classic/aero/browser/mask.png                           (../shared/mask.png)
-        skin/classic/aero/browser/mask@2x.png                        (../shared/mask@2x.png)
-        skin/classic/aero/browser/menu-back.png                      (menu-back-aero.png)
-        skin/classic/aero/browser/menu-forward.png                   (menu-forward-aero.png)
-        skin/classic/aero/browser/menuPanel.png
-        skin/classic/aero/browser/menuPanel-aero.png
-        skin/classic/aero/browser/menuPanel-customize.png
-        skin/classic/aero/browser/menuPanel-exit.png
-        skin/classic/aero/browser/menuPanel-help.png
-        skin/classic/aero/browser/menuPanel-small.png
-        skin/classic/aero/browser/menuPanel-small-aero.png
-        skin/classic/aero/browser/Metro_Glyph.png                    (Metro_Glyph-aero.png)
-        skin/classic/aero/browser/Metro_Glyph-inverted.png
-        skin/classic/aero/browser/Metro_Glyph-menuPanel.png
-        skin/classic/aero/browser/bad-content-blocked-16.png         (../shared/bad-content-blocked-16.png)
-        skin/classic/aero/browser/bad-content-blocked-16@2x.png      (../shared/bad-content-blocked-16@2x.png)
-        skin/classic/aero/browser/bad-content-blocked-64.png         (../shared/bad-content-blocked-64.png)
-        skin/classic/aero/browser/bad-content-unblocked-16.png       (../shared/bad-content-unblocked-16.png)
-        skin/classic/aero/browser/bad-content-unblocked-64.png       (../shared/bad-content-unblocked-64.png)
-        skin/classic/aero/browser/monitor.png
-        skin/classic/aero/browser/monitor_16-10.png
-        skin/classic/aero/browser/notification-16.png
-        skin/classic/aero/browser/notification-64.png
-        skin/classic/aero/browser/pageInfo.css
-        skin/classic/aero/browser/pageInfo.png                       (pageInfo-aero.png)
-        skin/classic/aero/browser/page-livemarks.png                 (feeds/feedIcon16-aero.png)
-        skin/classic/aero/browser/pointerLock-16.png
-        skin/classic/aero/browser/pointerLock-64.png
-        skin/classic/aero/browser/Privacy-16.png                     (Privacy-16-aero.png)
-        skin/classic/aero/browser/Privacy-32.png                     (Privacy-32-aero.png)
-        skin/classic/aero/browser/privatebrowsing-mask-tabstrip.png
-        skin/classic/aero/browser/privatebrowsing-mask-tabstrip-XPVista7.png
-        skin/classic/aero/browser/privatebrowsing-mask-titlebar.png
-        skin/classic/aero/browser/privatebrowsing-mask-titlebar-XPVista7.png
-        skin/classic/aero/browser/privatebrowsing-mask-titlebar-XPVista7-tall.png
-        skin/classic/aero/browser/reload-stop-go.png
-        skin/classic/aero/browser/searchbar.css
-        skin/classic/aero/browser/searchbar-dropdown-arrow.png       (searchbar-dropdown-arrow-aero.png)
-        skin/classic/aero/browser/search-pref.png                    (../shared/search/search-pref.png)
-        skin/classic/aero/browser/search-indicator.png               (../shared/search/search-indicator.png)
-        skin/classic/aero/browser/search-indicator-add-engine.png    (../shared/search/search-indicator-add-engine.png)
-        skin/classic/aero/browser/search-engine-placeholder.png      (../shared/search/search-engine-placeholder.png)
-        skin/classic/aero/browser/badge-add-engine.png               (../shared/search/badge-add-engine.png)
-        skin/classic/aero/browser/search-indicator-badge-add.png     (../shared/search/search-indicator-badge-add.png)
-        skin/classic/aero/browser/search-history-icon.svg            (../shared/search/history-icon.svg)
-        skin/classic/aero/browser/Secure24.png                       (Secure24-aero.png)
-        skin/classic/aero/browser/setDesktopBackground.css
-        skin/classic/aero/browser/slowStartup-16.png
-        skin/classic/aero/browser/theme-switcher-icon.png
-        skin/classic/aero/browser/theme-switcher-icon-aero.png
-        skin/classic/aero/browser/Toolbar.png
-        skin/classic/aero/browser/Toolbar-inverted.png
-        skin/classic/aero/browser/Toolbar-aero.png
-        skin/classic/aero/browser/toolbarbutton-dropdown-arrow.png
-        skin/classic/aero/browser/toolbarbutton-dropdown-arrow-XPVista7.png
-        skin/classic/aero/browser/toolbarbutton-dropdown-arrow-inverted.png
-        skin/classic/aero/browser/undoCloseTab.png                        (../shared/undoCloseTab.png)
-        skin/classic/aero/browser/undoCloseTab@2x.png                     (../shared/undoCloseTab@2x.png)
-        skin/classic/aero/browser/urlbar-arrow.png
-        skin/classic/aero/browser/urlbar-popup-blocked.png
-        skin/classic/aero/browser/urlbar-history-dropmarker.png
-        skin/classic/aero/browser/session-restore.svg               (../shared/incontent-icons/session-restore.svg)
-        skin/classic/aero/browser/tab-crashed.svg                   (../shared/incontent-icons/tab-crashed.svg)
-        skin/classic/aero/browser/welcome-back.svg                  (../shared/incontent-icons/welcome-back.svg)
-        skin/classic/aero/browser/readerMode.svg                    (../shared/reader/readerMode.svg)
-        skin/classic/aero/browser/readinglist/icons.svg             (../shared/readinglist/icons.svg)
-        skin/classic/aero/browser/readinglist/readinglist-icon.svg  (../shared/readinglist/readinglist-icon.svg)
-*       skin/classic/aero/browser/readinglist/sidebar.css           (readinglist/sidebar.css)
-        skin/classic/aero/browser/notification-pluginNormal.png     (../shared/plugins/notification-pluginNormal.png)
-        skin/classic/aero/browser/notification-pluginAlert.png      (../shared/plugins/notification-pluginAlert.png)
-        skin/classic/aero/browser/notification-pluginBlocked.png    (../shared/plugins/notification-pluginBlocked.png)
-        skin/classic/aero/browser/webRTC-shareDevice-16.png
-        skin/classic/aero/browser/webRTC-shareDevice-64.png
-        skin/classic/aero/browser/webRTC-sharingDevice-16.png             (../shared/webrtc/webRTC-sharingDevice-16.png)
-        skin/classic/aero/browser/webRTC-shareMicrophone-16.png
-        skin/classic/aero/browser/webRTC-shareMicrophone-64.png
-        skin/classic/aero/browser/webRTC-sharingMicrophone-16.png         (../shared/webrtc/webRTC-sharingMicrophone-16.png)
-        skin/classic/aero/browser/webRTC-shareScreen-16.png               (../shared/webrtc/webRTC-shareScreen-16.png)
-        skin/classic/aero/browser/webRTC-shareScreen-64.png               (../shared/webrtc/webRTC-shareScreen-64.png)
-        skin/classic/aero/browser/webRTC-sharingScreen-16.png             (../shared/webrtc/webRTC-sharingScreen-16.png)
-        skin/classic/aero/browser/webRTC-indicator.css                    (../shared/webrtc/indicator.css)
-        skin/classic/aero/browser/webRTC-camera-white-16.png              (../shared/webrtc/camera-white-16.png)
-        skin/classic/aero/browser/webRTC-microphone-white-16.png          (../shared/webrtc/microphone-white-16.png)
-        skin/classic/aero/browser/webRTC-screen-white-16.png              (../shared/webrtc/screen-white-16.png)
-        skin/classic/aero/browser/loop/menuPanel.png                      (loop/menuPanel.png)
-        skin/classic/aero/browser/loop/menuPanel-aero.png                 (loop/menuPanel-aero.png)
-        skin/classic/aero/browser/loop/toolbar.png                        (loop/toolbar.png)
-        skin/classic/aero/browser/loop/toolbar-aero.png                   (loop/toolbar-aero.png)
-        skin/classic/aero/browser/loop/toolbar-inverted.png               (loop/toolbar-inverted.png)
-        skin/classic/aero/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
-        skin/classic/aero/browser/customizableui/customize-illustration.png  (../shared/customizableui/customize-illustration.png)
-        skin/classic/aero/browser/customizableui/customize-illustration-rtl.png  (../shared/customizableui/customize-illustration-rtl.png)
-        skin/classic/aero/browser/customizableui/customize-titleBar-toggle.png  (customizableui/customize-titleBar-toggle.png)
-        skin/classic/aero/browser/customizableui/customizeFavicon.ico  (../shared/customizableui/customizeFavicon.ico)
-        skin/classic/aero/browser/customizableui/customizeMode-gridTexture.png  (customizableui/customizeMode-gridTexture.png)
-        skin/classic/aero/browser/customizableui/customizeMode-separatorHorizontal.png  (customizableui/customizeMode-separatorHorizontal.png)
-        skin/classic/aero/browser/customizableui/customizeMode-separatorVertical.png  (customizableui/customizeMode-separatorVertical.png)
-        skin/classic/aero/browser/customizableui/info-icon-customizeTip.png  (../shared/customizableui/info-icon-customizeTip.png)
-        skin/classic/aero/browser/customizableui/menu-arrow.svg      (customizableui/menu-arrow.svg)
-        skin/classic/aero/browser/customizableui/menuPanel-customizeFinish.png  (../shared/customizableui/menuPanel-customizeFinish.png)
-        skin/classic/aero/browser/customizableui/panelarrow-customizeTip.png  (../shared/customizableui/panelarrow-customizeTip.png)
-*       skin/classic/aero/browser/customizableui/panelUIOverlay.css  (customizableui/panelUIOverlay-aero.css)
-        skin/classic/aero/browser/customizableui/subView-arrow-back-inverted.png  (../shared/customizableui/subView-arrow-back-inverted.png)
-        skin/classic/aero/browser/customizableui/subView-arrow-back-inverted-rtl.png  (../shared/customizableui/subView-arrow-back-inverted-rtl.png)
-        skin/classic/aero/browser/customizableui/whimsy.png  (../shared/customizableui/whimsy.png)
-        skin/classic/aero/browser/customizableui/whimsy@2x.png  (../shared/customizableui/whimsy@2x.png)
-        skin/classic/aero/browser/customizableui/whimsy-bw.png  (../shared/customizableui/whimsy-bw.png)
-        skin/classic/aero/browser/customizableui/whimsy-bw@2x.png  (../shared/customizableui/whimsy-bw@2x.png)
-*       skin/classic/aero/browser/downloads/allDownloadsViewOverlay.css (downloads/allDownloadsViewOverlay-aero.css)
-        skin/classic/aero/browser/downloads/buttons.png              (downloads/buttons-aero.png)
-        skin/classic/aero/browser/downloads/contentAreaDownloadsView.css (downloads/contentAreaDownloadsView.css)
-        skin/classic/aero/browser/downloads/download-glow-menuPanel.png   (downloads/download-glow-menuPanel.png)
-        skin/classic/aero/browser/downloads/download-glow-menuPanel-XPVista7.png   (downloads/download-glow-menuPanel-XPVista7.png)
-        skin/classic/aero/browser/downloads/download-notification-finish.png (downloads/download-notification-finish.png)
-        skin/classic/aero/browser/downloads/download-notification-start.png (downloads/download-notification-start.png)
-        skin/classic/aero/browser/downloads/download-summary.png     (downloads/download-summary.png)
-*       skin/classic/aero/browser/downloads/downloads.css            (downloads/downloads-aero.css)
-        skin/classic/aero/browser/feeds/feedIcon.png                 (feeds/feedIcon-aero.png)
-        skin/classic/aero/browser/feeds/feedIcon16.png               (feeds/feedIcon16-aero.png)
-        skin/classic/aero/browser/feeds/audioFeedIcon.png            (feeds/feedIcon-aero.png)
-        skin/classic/aero/browser/feeds/audioFeedIcon16.png          (feeds/feedIcon16-aero.png)
-        skin/classic/aero/browser/feeds/videoFeedIcon.png            (feeds/feedIcon-aero.png)
-        skin/classic/aero/browser/feeds/videoFeedIcon16.png          (feeds/feedIcon16-aero.png)
-        skin/classic/aero/browser/feeds/subscribe.css                (feeds/subscribe.css)
-        skin/classic/aero/browser/feeds/subscribe-ui.css             (feeds/subscribe-ui.css)
-*       skin/classic/aero/browser/newtab/newTab.css                  (newtab/newTab.css)
-        skin/classic/aero/browser/newtab/controls.svg                (../shared/newtab/controls.svg)
-        skin/classic/aero/browser/panic-panel/header.png             (../shared/panic-panel/header.png)
-        skin/classic/aero/browser/panic-panel/header-small.png       (../shared/panic-panel/header-small.png)
-        skin/classic/aero/browser/panic-panel/icons.png              (../shared/panic-panel/icons.png)
-*       skin/classic/aero/browser/places/places.css                  (places/places-aero.css)
-*       skin/classic/aero/browser/places/organizer.css               (places/organizer-aero.css)
-        skin/classic/aero/browser/places/bookmark.png                (places/bookmark-aero.png)
-        skin/classic/aero/browser/places/query.png                   (places/query-aero.png)
-        skin/classic/aero/browser/places/bookmarksMenu.png           (places/bookmarksMenu-aero.png)
-        skin/classic/aero/browser/places/bookmarksToolbar.png        (places/bookmarksToolbar-aero.png)
-        skin/classic/aero/browser/places/bookmarksToolbar-menuPanel.png (places/bookmarksToolbar-menuPanel-aero.png)
-        skin/classic/aero/browser/places/bookmarks-notification-finish.png   (places/bookmarks-notification-finish.png)
-        skin/classic/aero/browser/places/calendar.png                (places/calendar-aero.png)
-        skin/classic/aero/browser/places/toolbarDropMarker.png       (places/toolbarDropMarker-aero.png)
-        skin/classic/aero/browser/places/editBookmarkOverlay.css     (places/editBookmarkOverlay.css)
-        skin/classic/aero/browser/places/libraryToolbar.png          (places/libraryToolbar-aero.png)
-        skin/classic/aero/browser/places/starred48.png               (places/starred48-aero.png)
-        skin/classic/aero/browser/places/unstarred48.png             (places/unstarred48.png)
-        skin/classic/aero/browser/places/tag.png                     (places/tag-aero.png)
-        skin/classic/aero/browser/places/history.png                 (places/history-aero.png)
-        skin/classic/aero/browser/places/allBookmarks.png            (places/allBookmarks-aero.png)
-        skin/classic/aero/browser/places/unsortedBookmarks.png       (places/unsortedBookmarks-aero.png)
-        skin/classic/aero/browser/places/downloads.png               (places/downloads.png)
-        skin/classic/aero/browser/places/livemark-item.png           (places/livemark-item.png)
-        skin/classic/aero/browser/preferences/alwaysAsk.png          (preferences/alwaysAsk-aero.png)
-        skin/classic/aero/browser/preferences/application.png        (preferences/application-aero.png)
-        skin/classic/aero/browser/preferences/mail.png               (preferences/mail-aero.png)
-        skin/classic/aero/browser/preferences/Options.png            (preferences/Options-aero.png)
-#ifdef MOZ_SERVICES_SYNC
-        skin/classic/aero/browser/preferences/Options-sync.png       (preferences/Options-sync.png)
-#endif
-        skin/classic/aero/browser/preferences/saveFile.png           (preferences/saveFile-aero.png)
-*       skin/classic/aero/browser/preferences/preferences.css        (preferences/preferences.css)
-*       skin/classic/aero/browser/preferences/in-content/preferences.css (preferences/in-content/preferences.css)
-*       skin/classic/aero/browser/preferences/in-content/dialog.css      (preferences/in-content/dialog.css)
-        skin/classic/aero/browser/preferences/in-content/favicon.ico     (../shared/incontentprefs/favicon.ico)
-        skin/classic/aero/browser/preferences/in-content/icons.svg       (../shared/incontentprefs/icons.svg)
-        skin/classic/aero/browser/preferences/in-content/search.css      (../shared/incontentprefs/search.css)
-        skin/classic/aero/browser/preferences/applications.css       (preferences/applications.css)
-        skin/classic/aero/browser/preferences/aboutPermissions.css   (preferences/aboutPermissions.css)
-        skin/classic/aero/browser/preferences/search.css             (preferences/search.css)
-        skin/classic/aero/browser/preferences/checkbox.png           (preferences/checkbox-8.png)
-        skin/classic/aero/browser/preferences/checkbox-aero.png      (preferences/checkbox-aero.png)
-        skin/classic/aero/browser/preferences/checkbox-classic.png   (preferences/checkbox-classic.png)
-        skin/classic/aero/browser/social/services-16.png             (social/services-16.png)
-        skin/classic/aero/browser/social/services-64.png             (social/services-64.png)
-        skin/classic/aero/browser/social/chat-icons.svg              (../shared/social/chat-icons.svg)
-        skin/classic/aero/browser/social/gear_default.png            (../shared/social/gear_default.png)
-        skin/classic/aero/browser/social/gear_clicked.png            (../shared/social/gear_clicked.png)
-        skin/classic/aero/browser/tabbrowser/newtab.png              (tabbrowser/newtab.png)
-        skin/classic/aero/browser/tabbrowser/newtab-XPVista7.png     (tabbrowser/newtab-XPVista7.png)
-        skin/classic/aero/browser/tabbrowser/newtab-inverted.png     (tabbrowser/newtab-inverted.png)
-        skin/classic/aero/browser/tabbrowser/connecting.png          (tabbrowser/connecting.png)
-        skin/classic/aero/browser/tabbrowser/crashed.svg             (../shared/tabbrowser/crashed.svg)
-        skin/classic/aero/browser/tabbrowser/loading.png             (tabbrowser/loading.png)
-        skin/classic/aero/browser/tabbrowser/tab-active-middle.png   (tabbrowser/tab-active-middle.png)
-        skin/classic/aero/browser/tabbrowser/tab-active-middle@2x.png (tabbrowser/tab-active-middle@2x.png)
-        skin/classic/aero/browser/tabbrowser/tab-arrow-left.png      (tabbrowser/tab-arrow-left.png)
-        skin/classic/aero/browser/tabbrowser/tab-arrow-left-XPVista7.png (tabbrowser/tab-arrow-left-XPVista7.png)
-        skin/classic/aero/browser/tabbrowser/tab-arrow-left-inverted.png (tabbrowser/tab-arrow-left-inverted.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-start.png    (tabbrowser/tab-background-start.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-start@2x.png (tabbrowser/tab-background-start@2x.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-middle.png   (tabbrowser/tab-background-middle.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-middle@2x.png (tabbrowser/tab-background-middle@2x.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-end.png      (tabbrowser/tab-background-end.png)
-        skin/classic/aero/browser/tabbrowser/tab-background-end@2x.png   (tabbrowser/tab-background-end@2x.png)
-        skin/classic/aero/browser/tabbrowser/tab-overflow-indicator.png  (../shared/tabbrowser/tab-overflow-indicator.png)
+% override chrome://browser/skin/page-livemarks.png                   chrome://browser/skin/feeds/feedIcon16.png
+% override chrome://browser/skin/feeds/audioFeedIcon.png              chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/audioFeedIcon16.png            chrome://browser/skin/feeds/feedIcon16.png
+% override chrome://browser/skin/feeds/videoFeedIcon.png              chrome://browser/skin/feeds/feedIcon.png
+% override chrome://browser/skin/feeds/videoFeedIcon16.png            chrome://browser/skin/feeds/feedIcon16.png
 
-        skin/classic/aero/browser/tabbrowser/pendingpaint.png            (../shared/tabbrowser/pendingpaint.png)
-
-# NOTE: The following two files (tab-selected-end.svg, tab-selected-start.svg) get pre-processed in
-#       Makefile.in with a non-default marker of "%" and the result of that gets packaged.
-        skin/classic/aero/browser/tabbrowser/tab-selected-end.svg    (tab-selected-end-aero.svg)
-        skin/classic/aero/browser/tabbrowser/tab-selected-start.svg  (tab-selected-start-aero.svg)
+% override chrome://browser/skin/aboutSessionRestore-window-icon.png  chrome://browser/skin/preferences/application.png                 os!=WINNT
+% override chrome://browser/skin/aboutSessionRestore-window-icon.png  chrome://browser/skin/preferences/application.png                 os=WINNT osversion<6
+% override chrome://browser/skin/aboutSessionRestore-window-icon.png  chrome://browser/skin/aboutSessionRestore-window-icon-aero.png    os=WINNT osversion>=6
 
-        skin/classic/aero/browser/tabbrowser/tab-stroke-end.png      (tabbrowser/tab-stroke-end.png)
-        skin/classic/aero/browser/tabbrowser/tab-stroke-end@2x.png   (tabbrowser/tab-stroke-end@2x.png)
-        skin/classic/aero/browser/tabbrowser/tab-stroke-start.png    (tabbrowser/tab-stroke-start.png)
-        skin/classic/aero/browser/tabbrowser/tab-stroke-start@2x.png (tabbrowser/tab-stroke-start@2x.png)
-        skin/classic/aero/browser/tabbrowser/tabDragIndicator.png    (tabbrowser/tabDragIndicator.png)
-        skin/classic/aero/browser/tabbrowser/tab-separator.png       (tabbrowser/tab-separator-aero.png)
-        skin/classic/aero/browser/tabview/close.png                  (tabview/close.png)
-        skin/classic/aero/browser/tabview/edit-light.png             (tabview/edit-light.png)
-        skin/classic/aero/browser/tabview/grain.png                  (tabview/grain.png)
-        skin/classic/aero/browser/tabview/search.png                 (tabview/search.png)
-        skin/classic/aero/browser/tabview/stack-expander.png         (tabview/stack-expander.png)
-        skin/classic/aero/browser/tabview/tabview.png                (tabview/tabview.png)
-        skin/classic/aero/browser/tabview/tabview-inverted.png       (tabview/tabview-inverted.png)
-        skin/classic/aero/browser/tabview/tabview.css                (tabview/tabview.css)
-        skin/classic/aero/browser/translating-16.png                 (../shared/translation/translating-16.png)
-        skin/classic/aero/browser/translating-16@2x.png              (../shared/translation/translating-16@2x.png)
-        skin/classic/aero/browser/translation-16.png                 (../shared/translation/translation-16.png)
-        skin/classic/aero/browser/translation-16@2x.png              (../shared/translation/translation-16@2x.png)
-        skin/classic/aero/browser/devedition/search.svg              (../shared/devedition/search.svg)
-        skin/classic/aero/browser/devedition/urlbar-history-dropmarker.svg            (../shared/devedition/urlbar-history-dropmarker.svg)
-*       skin/classic/aero/browser/devtools/common.css                (../shared/devtools/common.css)
-*       skin/classic/aero/browser/devtools/dark-theme.css            (../shared/devtools/dark-theme.css)
-*       skin/classic/aero/browser/devtools/light-theme.css           (../shared/devtools/light-theme.css)
-        skin/classic/aero/browser/devtools/filters.svg               (../shared/devtools/filters.svg)
-        skin/classic/aero/browser/devtools/controls.png              (../shared/devtools/images/controls.png)
-        skin/classic/aero/browser/devtools/controls@2x.png           (../shared/devtools/images/controls@2x.png)
-        skin/classic/aero/browser/devtools/performance-icons.svg     (../shared/devtools/images/performance-icons.svg)
-        skin/classic/aero/browser/devtools/newtab.png                (../shared/devtools/images/newtab.png)
-        skin/classic/aero/browser/devtools/newtab@2x.png             (../shared/devtools/images/newtab@2x.png)
-        skin/classic/aero/browser/devtools/newtab-inverted.png       (../shared/devtools/images/newtab-inverted.png)
-        skin/classic/aero/browser/devtools/newtab-inverted@2x.png    (../shared/devtools/images/newtab-inverted@2x.png)
-*       skin/classic/aero/browser/devtools/widgets.css               (devtools/widgets.css)
-        skin/classic/aero/browser/devtools/power.svg                 (../shared/devtools/images/power.svg)
-        skin/classic/aero/browser/devtools/filetype-dir-close.svg    (../shared/devtools/images/filetypes/dir-close.svg)
-        skin/classic/aero/browser/devtools/filetype-dir-open.svg     (../shared/devtools/images/filetypes/dir-open.svg)
-        skin/classic/aero/browser/devtools/filetype-globe.svg        (../shared/devtools/images/filetypes/globe.svg)
-        skin/classic/aero/browser/devtools/filetype-store.svg        (../shared/devtools/images/filetypes/store.svg)
-        skin/classic/aero/browser/devtools/commandline-icon.png      (../shared/devtools/images/commandline-icon.png)
-        skin/classic/aero/browser/devtools/commandline-icon@2x.png      (../shared/devtools/images/commandline-icon@2x.png)
-        skin/classic/aero/browser/devtools/command-paintflashing.png    (../shared/devtools/images/command-paintflashing.png)
-        skin/classic/aero/browser/devtools/command-paintflashing@2x.png (../shared/devtools/images/command-paintflashing@2x.png)
-        skin/classic/aero/browser/devtools/command-screenshot.png    (../shared/devtools/images/command-screenshot.png)
-        skin/classic/aero/browser/devtools/command-screenshot@2x.png (../shared/devtools/images/command-screenshot@2x.png)
-        skin/classic/aero/browser/devtools/command-responsivemode.png    (../shared/devtools/images/command-responsivemode.png)
-        skin/classic/aero/browser/devtools/command-responsivemode@2x.png (../shared/devtools/images/command-responsivemode@2x.png)
-        skin/classic/aero/browser/devtools/command-scratchpad.png    (../shared/devtools/images/command-scratchpad.png)
-        skin/classic/aero/browser/devtools/command-scratchpad@2x.png (../shared/devtools/images/command-scratchpad@2x.png)
-        skin/classic/aero/browser/devtools/command-tilt.png          (../shared/devtools/images/command-tilt.png)
-        skin/classic/aero/browser/devtools/command-tilt@2x.png       (../shared/devtools/images/command-tilt@2x.png)
-        skin/classic/aero/browser/devtools/command-pick.png          (../shared/devtools/images/command-pick.png)
-        skin/classic/aero/browser/devtools/command-pick@2x.png       (../shared/devtools/images/command-pick@2x.png)
-        skin/classic/aero/browser/devtools/command-frames.png        (../shared/devtools/images/command-frames.png)
-        skin/classic/aero/browser/devtools/command-frames@2x.png     (../shared/devtools/images/command-frames@2x.png)
-        skin/classic/aero/browser/devtools/command-console.png       (../shared/devtools/images/command-console.png)
-        skin/classic/aero/browser/devtools/command-console@2x.png    (../shared/devtools/images/command-console@2x.png)
-        skin/classic/aero/browser/devtools/command-eyedropper.png        (../shared/devtools/images/command-eyedropper.png)
-        skin/classic/aero/browser/devtools/command-eyedropper@2x.png     (../shared/devtools/images/command-eyedropper@2x.png)
-        skin/classic/aero/browser/devtools/alerticon-warning.png     (../shared/devtools/images/alerticon-warning.png)
-        skin/classic/aero/browser/devtools/alerticon-warning@2x.png  (../shared/devtools/images/alerticon-warning@2x.png)
-*       skin/classic/aero/browser/devtools/ruleview.css              (../shared/devtools/ruleview.css)
-        skin/classic/aero/browser/devtools/commandline.css           (devtools/commandline.css)
-        skin/classic/aero/browser/devtools/markup-view.css           (../shared/devtools/markup-view.css)
-        skin/classic/aero/browser/devtools/editor-error.png           (../shared/devtools/images/editor-error.png)
-        skin/classic/aero/browser/devtools/editor-breakpoint.png      (../shared/devtools/images/editor-breakpoint.png)
-        skin/classic/aero/browser/devtools/editor-breakpoint@2x.png      (../shared/devtools/images/editor-breakpoint@2x.png)
-        skin/classic/aero/browser/devtools/editor-debug-location.png  (../shared/devtools/images/editor-debug-location.png)
-        skin/classic/aero/browser/devtools/editor-debug-location@2x.png  (../shared/devtools/images/editor-debug-location@2x.png)
-*       skin/classic/aero/browser/devtools/webconsole.css                  (devtools/webconsole.css)
-        skin/classic/aero/browser/devtools/webconsole_networkpanel.css     (devtools/webconsole_networkpanel.css)
-        skin/classic/aero/browser/devtools/webconsole.png                  (../shared/devtools/images/webconsole.png)
-        skin/classic/aero/browser/devtools/webconsole@2x.png                  (../shared/devtools/images/webconsole@2x.png)
-        skin/classic/aero/browser/devtools/breadcrumbs-divider@2x.png      (../shared/devtools/images/breadcrumbs-divider@2x.png)
-        skin/classic/aero/browser/devtools/breadcrumbs-scrollbutton.png    (../shared/devtools/images/breadcrumbs-scrollbutton.png)
-        skin/classic/aero/browser/devtools/breadcrumbs-scrollbutton@2x.png (../shared/devtools/images/breadcrumbs-scrollbutton@2x.png)
-        skin/classic/aero/browser/devtools/animationinspector.css    (../shared/devtools/animationinspector.css)
-*       skin/classic/aero/browser/devtools/canvasdebugger.css        (devtools/canvasdebugger.css)
-*       skin/classic/aero/browser/devtools/debugger.css              (devtools/debugger.css)
-        skin/classic/aero/browser/devtools/eyedropper.css            (../shared/devtools/eyedropper.css)
-*       skin/classic/aero/browser/devtools/netmonitor.css            (devtools/netmonitor.css)
-*       skin/classic/aero/browser/devtools/profiler.css              (devtools/profiler.css)
-*       skin/classic/aero/browser/devtools/performance.css           (devtools/performance.css)
-*       skin/classic/aero/browser/devtools/timeline.css              (devtools/timeline.css)
-        skin/classic/aero/browser/devtools/timeline-filter.svg       (../shared/devtools/images/timeline-filter.svg)
-*       skin/classic/aero/browser/devtools/scratchpad.css            (devtools/scratchpad.css)
-*       skin/classic/aero/browser/devtools/shadereditor.css          (devtools/shadereditor.css)
-*       skin/classic/aero/browser/devtools/splitview.css             (../shared/devtools/splitview.css)
-        skin/classic/aero/browser/devtools/styleeditor.css           (../shared/devtools/styleeditor.css)
-        skin/classic/aero/browser/devtools/storage.css               (../shared/devtools/storage.css)
-*       skin/classic/aero/browser/devtools/webaudioeditor.css        (devtools/webaudioeditor.css)
-        skin/classic/aero/browser/devtools/magnifying-glass.png      (../shared/devtools/images/magnifying-glass.png)
-        skin/classic/aero/browser/devtools/magnifying-glass@2x.png   (../shared/devtools/images/magnifying-glass@2x.png)
-        skin/classic/aero/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
-        skin/classic/aero/browser/devtools/magnifying-glass-light@2x.png  (../shared/devtools/images/magnifying-glass-light@2x.png)
-        skin/classic/aero/browser/devtools/itemToggle.png            (../shared/devtools/images/itemToggle.png)
-        skin/classic/aero/browser/devtools/itemToggle@2x.png         (../shared/devtools/images/itemToggle@2x.png)
-        skin/classic/aero/browser/devtools/itemArrow-dark-rtl.svg    (../shared/devtools/images/itemArrow-dark-rtl.svg)
-        skin/classic/aero/browser/devtools/itemArrow-dark-ltr.svg    (../shared/devtools/images/itemArrow-dark-ltr.svg)
-        skin/classic/aero/browser/devtools/itemArrow-rtl.svg         (../shared/devtools/images/itemArrow-rtl.svg)
-        skin/classic/aero/browser/devtools/itemArrow-ltr.svg         (../shared/devtools/images/itemArrow-ltr.svg)
-        skin/classic/aero/browser/devtools/noise.png                 (../shared/devtools/images/noise.png)
-        skin/classic/aero/browser/devtools/dropmarker.svg            (../shared/devtools/images/dropmarker.svg)
-        skin/classic/aero/browser/devtools/layoutview.css            (../shared/devtools/layoutview.css)
-        skin/classic/aero/browser/devtools/debugger-collapse.png     (../shared/devtools/images/debugger-collapse.png)
-        skin/classic/aero/browser/devtools/debugger-collapse@2x.png  (../shared/devtools/images/debugger-collapse@2x.png)
-        skin/classic/aero/browser/devtools/debugger-expand.png       (../shared/devtools/images/debugger-expand.png)
-        skin/classic/aero/browser/devtools/debugger-expand@2x.png    (../shared/devtools/images/debugger-expand@2x.png)
-        skin/classic/aero/browser/devtools/debugger-pause.png        (../shared/devtools/images/debugger-pause.png)
-        skin/classic/aero/browser/devtools/debugger-pause@2x.png     (../shared/devtools/images/debugger-pause@2x.png)
-        skin/classic/aero/browser/devtools/debugger-play.png         (../shared/devtools/images/debugger-play.png)
-        skin/classic/aero/browser/devtools/debugger-play@2x.png      (../shared/devtools/images/debugger-play@2x.png)
-        skin/classic/aero/browser/devtools/fast-forward.png          (../shared/devtools/images/fast-forward.png)
-        skin/classic/aero/browser/devtools/fast-forward@2x.png       (../shared/devtools/images/fast-forward@2x.png)
-        skin/classic/aero/browser/devtools/rewind.png                (../shared/devtools/images/rewind.png)
-        skin/classic/aero/browser/devtools/rewind@2x.png             (../shared/devtools/images/rewind@2x.png)
-        skin/classic/aero/browser/devtools/debugger-step-in.png      (../shared/devtools/images/debugger-step-in.png)
-        skin/classic/aero/browser/devtools/debugger-step-in@2x.png   (../shared/devtools/images/debugger-step-in@2x.png)
-        skin/classic/aero/browser/devtools/debugger-step-out.png     (../shared/devtools/images/debugger-step-out.png)
-        skin/classic/aero/browser/devtools/debugger-step-out@2x.png  (../shared/devtools/images/debugger-step-out@2x.png)
-        skin/classic/aero/browser/devtools/debugger-step-over.png    (../shared/devtools/images/debugger-step-over.png)
-        skin/classic/aero/browser/devtools/debugger-step-over@2x.png  (../shared/devtools/images/debugger-step-over@2x.png)
-        skin/classic/aero/browser/devtools/debugger-blackbox.png      (../shared/devtools/images/debugger-blackbox.png)
-        skin/classic/aero/browser/devtools/debugger-blackbox@2x.png   (../shared/devtools/images/debugger-blackbox@2x.png)
-        skin/classic/aero/browser/devtools/debugger-prettyprint.png    (../shared/devtools/images/debugger-prettyprint.png)
-        skin/classic/aero/browser/devtools/debugger-prettyprint@2x.png (../shared/devtools/images/debugger-prettyprint@2x.png)
-        skin/classic/aero/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
-        skin/classic/aero/browser/devtools/debugger-toggleBreakpoints@2x.png (../shared/devtools/images/debugger-toggleBreakpoints@2x.png)
-        skin/classic/aero/browser/devtools/tracer-icon.png           (../shared/devtools/images/tracer-icon.png)
-        skin/classic/aero/browser/devtools/tracer-icon@2x.png        (../shared/devtools/images/tracer-icon@2x.png)
-        skin/classic/aero/browser/devtools/responsive-se-resizer.png          (../shared/devtools/images/responsivemode/responsive-se-resizer.png)
-        skin/classic/aero/browser/devtools/responsive-se-resizer@2x.png       (../shared/devtools/images/responsivemode/responsive-se-resizer@2x.png)
-        skin/classic/aero/browser/devtools/responsive-vertical-resizer.png    (../shared/devtools/images/responsivemode/responsive-vertical-resizer.png)
-        skin/classic/aero/browser/devtools/responsive-vertical-resizer@2x.png (../shared/devtools/images/responsivemode/responsive-vertical-resizer@2x.png)
-        skin/classic/aero/browser/devtools/responsive-horizontal-resizer.png  (../shared/devtools/images/responsivemode/responsive-horizontal-resizer.png)
-        skin/classic/aero/browser/devtools/responsive-horizontal-resizer@2x.png  (../shared/devtools/images/responsivemode/responsive-horizontal-resizer@2x.png)
-        skin/classic/aero/browser/devtools/responsiveui-rotate.png          (../shared/devtools/images/responsivemode/responsiveui-rotate.png)
-        skin/classic/aero/browser/devtools/responsiveui-rotate@2x.png       (../shared/devtools/images/responsivemode/responsiveui-rotate@2x.png)
-        skin/classic/aero/browser/devtools/responsiveui-touch.png           (../shared/devtools/images/responsivemode/responsiveui-touch.png)
-        skin/classic/aero/browser/devtools/responsiveui-touch@2x.png        (../shared/devtools/images/responsivemode/responsiveui-touch@2x.png)
-        skin/classic/aero/browser/devtools/responsiveui-screenshot.png      (../shared/devtools/images/responsivemode/responsiveui-screenshot.png)
-        skin/classic/aero/browser/devtools/responsiveui-screenshot@2x.png   (../shared/devtools/images/responsivemode/responsiveui-screenshot@2x.png)
-        skin/classic/aero/browser/devtools/toggle-tools.png          (../shared/devtools/images/toggle-tools.png)
-        skin/classic/aero/browser/devtools/toggle-tools@2x.png       (../shared/devtools/images/toggle-tools@2x.png)
-        skin/classic/aero/browser/devtools/dock-bottom@2x.png        (../shared/devtools/images/dock-bottom@2x.png)
-        skin/classic/aero/browser/devtools/dock-side@2x.png          (../shared/devtools/images/dock-side@2x.png)
-        skin/classic/aero/browser/devtools/floating-scrollbars.css   (devtools/floating-scrollbars.css)
-        skin/classic/aero/browser/devtools/floating-scrollbars-light.css (devtools/floating-scrollbars-light.css)
-*       skin/classic/aero/browser/devtools/inspector.css             (../shared/devtools/inspector.css)
-        skin/classic/aero/browser/devtools/profiler-stopwatch.svg    (../shared/devtools/images/profiler-stopwatch.svg)
-        skin/classic/aero/browser/devtools/profiler-stopwatch-checked.svg      (../shared/devtools/images/profiler-stopwatch-checked.svg)
-        skin/classic/aero/browser/devtools/tool-options.svg          (../shared/devtools/images/tool-options.svg)
-        skin/classic/aero/browser/devtools/tool-webconsole.svg       (../shared/devtools/images/tool-webconsole.svg)
-        skin/classic/aero/browser/devtools/tool-debugger.svg         (../shared/devtools/images/tool-debugger.svg)
-        skin/classic/aero/browser/devtools/tool-debugger-paused.svg  (../shared/devtools/images/tool-debugger-paused.svg)
-        skin/classic/aero/browser/devtools/tool-inspector.svg        (../shared/devtools/images/tool-inspector.svg)
-        skin/classic/aero/browser/devtools/tool-styleeditor.svg      (../shared/devtools/images/tool-styleeditor.svg)
-        skin/classic/aero/browser/devtools/tool-storage.svg          (../shared/devtools/images/tool-storage.svg)
-        skin/classic/aero/browser/devtools/tool-profiler.svg         (../shared/devtools/images/tool-profiler.svg)
-        skin/classic/aero/browser/devtools/tool-network.svg          (../shared/devtools/images/tool-network.svg)
-        skin/classic/aero/browser/devtools/tool-scratchpad.svg       (../shared/devtools/images/tool-scratchpad.svg)
-        skin/classic/aero/browser/devtools/tool-webaudio.svg         (../shared/devtools/images/tool-webaudio.svg)
-        skin/classic/aero/browser/devtools/close.png                 (../shared/devtools/images/close.png)
-        skin/classic/aero/browser/devtools/close@2x.png              (../shared/devtools/images/close@2x.png)
-        skin/classic/aero/browser/devtools/vview-delete.png          (../shared/devtools/images/vview-delete.png)
-        skin/classic/aero/browser/devtools/vview-delete@2x.png       (../shared/devtools/images/vview-delete@2x.png)
-        skin/classic/aero/browser/devtools/vview-edit.png            (../shared/devtools/images/vview-edit.png)
-        skin/classic/aero/browser/devtools/vview-edit@2x.png         (../shared/devtools/images/vview-edit@2x.png)
-        skin/classic/aero/browser/devtools/vview-lock.png            (../shared/devtools/images/vview-lock.png)
-        skin/classic/aero/browser/devtools/vview-lock@2x.png         (../shared/devtools/images/vview-lock@2x.png)
-        skin/classic/aero/browser/devtools/vview-open-inspector.png  (../shared/devtools/images/vview-open-inspector.png)
-        skin/classic/aero/browser/devtools/vview-open-inspector@2x.png (../shared/devtools/images/vview-open-inspector@2x.png)
-        skin/classic/aero/browser/devtools/cubic-bezier-swatch.png   (../shared/devtools/images/cubic-bezier-swatch.png)
-        skin/classic/aero/browser/devtools/cubic-bezier-swatch@2x.png  (../shared/devtools/images/cubic-bezier-swatch@2x.png)
-        skin/classic/aero/browser/devtools/undock@2x.png             (../shared/devtools/images/undock@2x.png)
-        skin/classic/aero/browser/devtools/font-inspector.css        (../shared/devtools/font-inspector.css)
-        skin/classic/aero/browser/devtools/computedview.css          (../shared/devtools/computedview.css)
-        skin/classic/aero/browser/devtools/arrow-e.png               (../shared/devtools/images/arrow-e.png)
-        skin/classic/aero/browser/devtools/arrow-e@2x.png               (../shared/devtools/images/arrow-e@2x.png)
-        skin/classic/browser/devtools/responsiveui-home.png          (../shared/devtools/responsiveui-home.png)
-        skin/classic/aero/browser/devtools/projecteditor/projecteditor.css       (../shared/devtools/projecteditor/projecteditor.css)
-        skin/classic/aero/browser/devtools/app-manager/connection-footer.css     (../shared/devtools/app-manager/connection-footer.css)
-        skin/classic/aero/browser/devtools/app-manager/index.css                 (../shared/devtools/app-manager/index.css)
-        skin/classic/aero/browser/devtools/app-manager/device.css                (../shared/devtools/app-manager/device.css)
-        skin/classic/aero/browser/devtools/app-manager/projects.css              (../shared/devtools/app-manager/projects.css)
-        skin/classic/aero/browser/devtools/app-manager/help.css                  (../shared/devtools/app-manager/help.css)
-        skin/classic/aero/browser/devtools/app-manager/warning.svg               (../shared/devtools/app-manager/images/warning.svg)
-        skin/classic/aero/browser/devtools/app-manager/error.svg                 (../shared/devtools/app-manager/images/error.svg)
-        skin/classic/aero/browser/devtools/app-manager/plus.svg                  (../shared/devtools/app-manager/images/plus.svg)
-        skin/classic/aero/browser/devtools/app-manager/remove.svg                (../shared/devtools/app-manager/images/remove.svg)
-        skin/classic/aero/browser/devtools/app-manager/add.svg                   (../shared/devtools/app-manager/images/add.svg)
-        skin/classic/aero/browser/devtools/app-manager/index-icons.svg           (../shared/devtools/app-manager/images/index-icons.svg)
-        skin/classic/aero/browser/devtools/app-manager/rocket.svg                (../shared/devtools/app-manager/images/rocket.svg)
-        skin/classic/aero/browser/devtools/app-manager/noise.png                 (../shared/devtools/app-manager/images/noise.png)
-        skin/classic/aero/browser/devtools/app-manager/default-app-icon.png      (../shared/devtools/app-manager/images/default-app-icon.png)
-#ifdef MOZ_SERVICES_SYNC
-        skin/classic/aero/browser/sync-16.png
-        skin/classic/aero/browser/sync-32.png
-        skin/classic/aero/browser/sync-128.png
-        skin/classic/aero/browser/sync-bg.png
-        skin/classic/aero/browser/sync-desktopIcon.png
-        skin/classic/aero/browser/sync-horizontalbar.png
-        skin/classic/aero/browser/sync-horizontalbar-XPVista7.png
-        skin/classic/aero/browser/sync-mobileIcon.png
-        skin/classic/aero/browser/sync-notification-24.png
-        skin/classic/aero/browser/syncSetup.css
-        skin/classic/aero/browser/syncCommon.css
-        skin/classic/aero/browser/syncQuota.css
-        skin/classic/aero/browser/syncProgress.css
-        skin/classic/aero/browser/syncProgress-horizontalbar.png
-        skin/classic/aero/browser/syncProgress-horizontalbar-XPVista7.png
-        skin/classic/aero/browser/syncProgress-menuPanel.png
-        skin/classic/aero/browser/syncProgress-toolbar.png
-        skin/classic/aero/browser/syncProgress-toolbar-inverted.png
-        skin/classic/aero/browser/syncProgress-toolbar-XPVista7.png
-#endif
-#endif
-        skin/classic/aero/browser/devtools/tooltip/arrow-horizontal-dark.png   (../shared/devtools/tooltip/arrow-horizontal-dark.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-horizontal-dark@2x.png   (../shared/devtools/tooltip/arrow-horizontal-dark@2x.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-vertical-dark.png   (../shared/devtools/tooltip/arrow-vertical-dark.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-vertical-dark@2x.png   (../shared/devtools/tooltip/arrow-vertical-dark@2x.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-horizontal-light.png   (../shared/devtools/tooltip/arrow-horizontal-light.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-horizontal-light@2x.png   (../shared/devtools/tooltip/arrow-horizontal-light@2x.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
-        skin/classic/aero/browser/devtools/tooltip/arrow-vertical-light@2x.png   (../shared/devtools/tooltip/arrow-vertical-light@2x.png)
-#ifdef E10S_TESTING_ONLY
-        skin/classic/aero/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
-#endif
-        skin/classic/aero/browser/warning16.png                       (../shared/warning16.png)
-        skin/classic/aero/browser/warning16@2x.png                    (../shared/warning16@2x.png)
+% override chrome://browser/skin/browser.css                          chrome://browser/skin/browser-aero.css                            os=WINNT osversion>=6
+% override chrome://browser/skin/devedition.css                       chrome://browser/skin/devedition-aero.css                         os=WINNT osversion>=6
+% override chrome://browser/skin/Info.png                             chrome://browser/skin/Info-aero.png                               os=WINNT osversion>=6
+% override chrome://browser/skin/identity.png                         chrome://browser/skin/identity-aero.png                           os=WINNT osversion>=6
+% override chrome://browser/skin/livemark-folder.png                  chrome://browser/skin/livemark-folder-aero.png                    os=WINNT osversion>=6
+% override chrome://browser/skin/menu-back.png                        chrome://browser/skin/menu-back-aero.png                          os=WINNT osversion>=6
+% override chrome://browser/skin/menu-forward.png                     chrome://browser/skin/menu-forward-aero.png                       os=WINNT osversion>=6
+% override chrome://browser/skin/pageInfo.png                         chrome://browser/skin/pageInfo-aero.png                           os=WINNT osversion>=6
+% override chrome://browser/skin/Privacy-16.png                       chrome://browser/skin/Privacy-16-aero.png                         os=WINNT osversion>=6
+% override chrome://browser/skin/Privacy-32.png                       chrome://browser/skin/Privacy-32-aero.png                         os=WINNT osversion>=6
+% override chrome://browser/skin/searchbar-dropdown-arrow.png         chrome://browser/skin/searchbar-dropdown-arrow-aero.png           os=WINNT osversion>=6
+% override chrome://browser/skin/Secure24.png                         chrome://browser/skin/Secure24-aero.png                           os=WINNT osversion>=6
+% override chrome://browser/skin/customizableui/panelUIOverlay.css    chrome://browser/skin/customizableui/panelUIOverlay-aero.css      os=WINNT osversion>=6
+% override chrome://browser/skin/downloads/allDownloadsViewOverlay.css  chrome://browser/skin/downloads/allDownloadsViewOverlay-aero.css  os=WINNT osversion>=6
+% override chrome://browser/skin/downloads/buttons.png                chrome://browser/skin/downloads/buttons-aero.png                  os=WINNT osversion>=6
+% override chrome://browser/skin/downloads/downloads.css              chrome://browser/skin/downloads/downloads-aero.css                os=WINNT osversion>=6
+% override chrome://browser/skin/feeds/feedIcon.png                   chrome://browser/skin/feeds/feedIcon-aero.png                     os=WINNT osversion>=6
+% override chrome://browser/skin/feeds/feedIcon16.png                 chrome://browser/skin/feeds/feedIcon16-aero.png                   os=WINNT osversion>=6
+% override chrome://browser/skin/places/places.css                    chrome://browser/skin/places/places-aero.css                      os=WINNT osversion>=6
+% override chrome://browser/skin/places/organizer.css                 chrome://browser/skin/places/organizer-aero.css                   os=WINNT osversion>=6
+% override chrome://browser/skin/places/bookmark.png                  chrome://browser/skin/places/bookmark-aero.png                    os=WINNT osversion>=6
+% override chrome://browser/skin/places/query.png                     chrome://browser/skin/places/query-aero.png                       os=WINNT osversion>=6
+% override chrome://browser/skin/places/bookmarksMenu.png             chrome://browser/skin/places/bookmarksMenu-aero.png               os=WINNT osversion>=6
+% override chrome://browser/skin/places/bookmarksToolbar.png          chrome://browser/skin/places/bookmarksToolbar-aero.png            os=WINNT osversion>=6
+% override chrome://browser/skin/places/bookmarksToolbar-menuPanel.png  chrome://browser/skin/places/bookmarksToolbar-menuPanel-aero.png  os=WINNT osversion>=6
+% override chrome://browser/skin/places/calendar.png                  chrome://browser/skin/places/calendar-aero.png                    os=WINNT osversion>=6
+% override chrome://browser/skin/places/toolbarDropMarker.png         chrome://browser/skin/places/toolbarDropMarker-aero.png           os=WINNT osversion>=6
+% override chrome://browser/skin/places/libraryToolbar.png            chrome://browser/skin/places/libraryToolbar-aero.png              os=WINNT osversion>=6
+% override chrome://browser/skin/places/starred48.png                 chrome://browser/skin/places/starred48-aero.png                   os=WINNT osversion>=6
+% override chrome://browser/skin/places/tag.png                       chrome://browser/skin/places/tag-aero.png                         os=WINNT osversion>=6
+% override chrome://browser/skin/places/history.png                   chrome://browser/skin/places/history-aero.png                     os=WINNT osversion>=6
+% override chrome://browser/skin/places/allBookmarks.png              chrome://browser/skin/places/allBookmarks-aero.png                os=WINNT osversion>=6
+% override chrome://browser/skin/places/unsortedBookmarks.png         chrome://browser/skin/places/unsortedBookmarks-aero.png           os=WINNT osversion>=6
+% override chrome://browser/skin/preferences/alwaysAsk.png            chrome://browser/skin/preferences/alwaysAsk-aero.png              os=WINNT osversion>=6
+% override chrome://browser/skin/preferences/application.png          chrome://browser/skin/preferences/application-aero.png            os=WINNT osversion>=6
+% override chrome://browser/skin/preferences/mail.png                 chrome://browser/skin/preferences/mail-aero.png                   os=WINNT osversion>=6
+% override chrome://browser/skin/preferences/Options.png              chrome://browser/skin/preferences/Options-aero.png                os=WINNT osversion>=6
+% override chrome://browser/skin/preferences/saveFile.png             chrome://browser/skin/preferences/saveFile-aero.png               os=WINNT osversion>=6
+% override chrome://browser/skin/tabbrowser/tab-separator.png         chrome://browser/skin/tabbrowser/tab-separator-aero.png           os=WINNT osversion>=6
 
-% override chrome://browser/skin/Toolbar.png               chrome://browser/skin/Toolbar-aero.png                  os=WINNT osversion=6
-% override chrome://browser/skin/Toolbar.png               chrome://browser/skin/Toolbar-aero.png                  os=WINNT osversion=6.1
-
-% override chrome://browser/skin/menuPanel.png             chrome://browser/skin/menuPanel-aero.png                os=WINNT osversion=6
-% override chrome://browser/skin/menuPanel.png             chrome://browser/skin/menuPanel-aero.png                os=WINNT osversion=6.1
-
-% override chrome://browser/skin/menuPanel-small.png       chrome://browser/skin/menuPanel-small-aero.png          os=WINNT osversion=6
-% override chrome://browser/skin/menuPanel-small.png       chrome://browser/skin/menuPanel-small-aero.png          os=WINNT osversion=6.1
-
-% override chrome://browser/skin/preferences/checkbox.png  chrome://browser/skin/preferences/checkbox-aero.png     os=WINNT osversion=6
-% override chrome://browser/skin/preferences/checkbox.png  chrome://browser/skin/preferences/checkbox-aero.png     os=WINNT osversion=6.1
-
-% override chrome://browser/skin/theme-switcher-icon.png   chrome://browser/skin/theme-switcher-icon-aero.png      os=WINNT osversion=6
-% override chrome://browser/skin/theme-switcher-icon.png   chrome://browser/skin/theme-switcher-icon-aero.png      os=WINNT osversion=6.1
+% override chrome://browser/skin/sync-horizontalbar.png               chrome://browser/skin/sync-horizontalbar-XPVista7.png             os=WINNT osversion<=6.1
+% override chrome://browser/skin/syncProgress-horizontalbar.png       chrome://browser/skin/syncProgress-horizontalbar-XPVista7.png     os=WINNT osversion<=6.1
+% override chrome://browser/skin/toolbarbutton-dropdown-arrow.png     chrome://browser/skin/toolbarbutton-dropdown-arrow-XPVista7.png   os=WINNT osversion<=6.1
+% override chrome://browser/skin/tabbrowser/newtab.png                chrome://browser/skin/tabbrowser/newtab-XPVista7.png              os=WINNT osversion<=6.1
+% override chrome://browser/skin/tabbrowser/tab-arrow-left.png        chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png      os=WINNT osversion<=6.1
 
-% override chrome://browser/skin/sync-horizontalbar.png          chrome://browser/skin/sync-horizontalbar-XPVista7.png          os=WINNT osversion<6.2
-% override chrome://browser/skin/syncProgress-horizontalbar.png  chrome://browser/skin/syncProgress-horizontalbar-XPVista7.png  os=WINNT osversion<6.2
-
-% override chrome://browser/skin/toolbarbutton-dropdown-arrow.png  chrome://browser/skin/toolbarbutton-dropdown-arrow-XPVista7.png  os=WINNT osversion=6
-% override chrome://browser/skin/toolbarbutton-dropdown-arrow.png  chrome://browser/skin/toolbarbutton-dropdown-arrow-XPVista7.png  os=WINNT osversion=6.1
-
-% override chrome://browser/skin/tabbrowser/newtab.png     chrome://browser/skin/tabbrowser/newtab-XPVista7.png    os=WINNT osversion=6
-% override chrome://browser/skin/tabbrowser/newtab.png     chrome://browser/skin/tabbrowser/newtab-XPVista7.png    os=WINNT osversion=6.1
+% override chrome://browser/skin/menuPanel.png                        chrome://browser/skin/menuPanel-aero.png                          os=WINNT osversion=6
+% override chrome://browser/skin/menuPanel.png                        chrome://browser/skin/menuPanel-aero.png                          os=WINNT osversion=6.1
+% override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6
+% override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6.1
+% override chrome://browser/skin/theme-switcher-icon.png              chrome://browser/skin/theme-switcher-icon-aero.png                os=WINNT osversion=6
+% override chrome://browser/skin/theme-switcher-icon.png              chrome://browser/skin/theme-switcher-icon-aero.png                os=WINNT osversion=6.1
+% override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6
+% override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6.1
 
-% override chrome://browser/skin/tabbrowser/tab-arrow-left.png     chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png    os=WINNT osversion=6
-% override chrome://browser/skin/tabbrowser/tab-arrow-left.png     chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png    os=WINNT osversion=6.1
+% override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6
+% override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6.1
+% override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-XP.png                              os=WINNT osversion=5.2
+% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6
+% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6.1
+% override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-XP.png                         os=WINNT osversion=5.2
+% override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-aero.png               os=WINNT osversion=6
+% override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-aero.png               os=WINNT osversion=6.1
+% override chrome://browser/skin/preferences/checkbox.png             chrome://browser/skin/preferences/checkbox-xp.png                 os=WINNT osversion=5.2
 
-% override chrome://browser/skin/loop/toolbar.png          chrome://browser/skin/loop/toolbar-aero.png             os=WINNT osversion=6
-% override chrome://browser/skin/loop/toolbar.png          chrome://browser/skin/loop/toolbar-aero.png             os=WINNT osversion=6.1
-
-% override chrome://browser/skin/loop/menuPanel.png        chrome://browser/skin/loop/menuPanel-aero.png           os=WINNT osversion=6
-% override chrome://browser/skin/loop/menuPanel.png        chrome://browser/skin/loop/menuPanel-aero.png           os=WINNT osversion=6.1
rename from browser/themes/windows/preferences/checkbox-8.png
rename to browser/themes/windows/preferences/checkbox.png
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -81,16 +81,17 @@
     <uses-feature android:name="android.hardware.camera" android:required="false"/>
     <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
 
     <!-- App requires OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" android:required="true" />
 
     <application android:label="@string/moz_app_displayname"
                  android:icon="@drawable/icon"
+                 android:logo="@drawable/logo"
                  android:name="org.mozilla.gecko.GeckoApplication"
                  android:hardwareAccelerated="true"
 # The preprocessor does not yet support arbitrary parentheses, so this cannot
 # be parenthesized thus to clarify that the logical AND operator has precedence:
 #   !defined(MOZILLA_OFFICIAL) || (defined(NIGHTLY_BUILD) && defined(MOZ_DEBUG))
 #if !defined(MOZILLA_OFFICIAL) || defined(NIGHTLY_BUILD) && defined(MOZ_DEBUG)
                  android:debuggable="true">
 #else
--- a/mobile/android/base/preferences/GeckoPreferences.java
+++ b/mobile/android/base/preferences/GeckoPreferences.java
@@ -396,23 +396,16 @@ OnSharedPreferenceChangeListener
                 if (listItem instanceof CustomListPreference && listItem instanceof View.OnLongClickListener) {
                     final View.OnLongClickListener longClickListener = (View.OnLongClickListener) listItem;
                     return longClickListener.onLongClick(view);
                 }
                 return false;
             }
         });
 
-        if (Versions.feature14Plus) {
-            final ActionBar actionBar = getActionBar();
-            if (actionBar != null) {
-                actionBar.setHomeButtonEnabled(true);
-            }
-        }
-
         // N.B., if we ever need to redisplay the locale selection UI without
         // just finishing and recreating the activity, right here we'll need to
         // capture EXTRA_SHOW_FRAGMENT_TITLE from the intent and store the title ID.
 
         // If launched from notification, explicitly cancel the notification.
         if (intentExtras != null && intentExtras.containsKey(DataReportingNotification.ALERT_NAME_DATAREPORTING_NOTIFICATION)) {
             NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
             notificationManager.cancel(DataReportingNotification.ALERT_NAME_DATAREPORTING_NOTIFICATION.hashCode());
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/resources/drawable-v21/logo.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- The action bar scales the application icon to be too large (bug 1132751)
+     so add some padding to prevent it from scaling so much. -->
+<inset
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/icon"
+    android:insetTop="6dp"
+    android:insetBottom="6dp"
+    android:insetLeft="6dp"
+    android:insetRight="6dp"
+    />
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/resources/drawable/logo.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Overidden. -->
+<bitmap
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/icon"/>
--- a/mobile/android/base/resources/values-v11/styles.xml
+++ b/mobile/android/base/resources/values-v11/styles.xml
@@ -43,17 +43,17 @@
         <item name="android:ellipsize">marquee</item>
     </style>
 
     <!-- ActionBar -->
     <style name="ActionBar" parent="android:style/Widget.Holo.ActionBar" />
  
     <!-- GeckoPreferences ActionBar -->
     <style name="ActionBar.GeckoPreferences">
-         <item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
+         <item name="android:displayOptions">showHome|homeAsUp|showTitle|useLogo</item>
     </style>
  
     <!-- TabsLayout ActionBar -->
     <style name="ActionBar.TabsLayout">
          <item name="android:visibility">gone</item>
     </style>
 
     <!-- DropDown List View -->
--- a/testing/profiles/prefs_general.js
+++ b/testing/profiles/prefs_general.js
@@ -305,8 +305,13 @@ user_pref("browser.tabs.remote.autostart
 user_pref("dom.ipc.tabs.shutdownTimeoutSecs", 0);
 
 // Avoid performing Readinglist Intro during tests.
 user_pref("browser.readinglist.introShown", true);
 
 // Don't let PAC generator to set PAC, as mochitest framework has its own PAC
 // rules during testing.
 user_pref("network.proxy.pac_generator", false);
+
+// Make tests run consistently on DevEdition (which has a lightweight theme
+// selected by default).
+user_pref("lightweightThemes.selectedThemeID", "");
+user_pref("browser.devedition.theme.enabled", false);
--- a/testing/xpcshell/head.js
+++ b/testing/xpcshell/head.js
@@ -1417,8 +1417,20 @@ try {
   if (runningInParent) {
     let prefs = Components.classes["@mozilla.org/preferences-service;1"]
       .getService(Components.interfaces.nsIPrefBranch);
 
     prefs.setCharPref("media.gmp-manager.url.override", "http://%(server)s/dummy-gmp-manager.xml");
     prefs.setCharPref("browser.selfsupport.url", "https://%(server)s/selfsupport-dummy/");
   }
 } catch (e) { }
+
+// Make tests run consistently on DevEdition (which has a lightweight theme
+// selected by default).
+try {
+  if (runningInParent) {
+    let prefs = Components.classes["@mozilla.org/preferences-service;1"]
+      .getService(Components.interfaces.nsIPrefBranch);
+
+    prefs.deleteBranch("lightweightThemes.selectedThemeID");
+    prefs.deleteBranch("browser.devedition.theme.enabled");
+  }
+} catch (e) { }
--- a/toolkit/content/contentAreaUtils.js
+++ b/toolkit/content/contentAreaUtils.js
@@ -94,41 +94,39 @@ function saveURL(aURL, aFileName, aFileP
 // Just like saveURL, but will get some info off the image before
 // calling internalSave
 // Clientele: (Make sure you don't break any of these)
 //  - Context ->  Save Image As...
 const imgICache = Components.interfaces.imgICache;
 const nsISupportsCString = Components.interfaces.nsISupportsCString;
 
 function saveImageURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
-                      aSkipPrompt, aReferrer, aDoc)
+                      aSkipPrompt, aReferrer, aDoc, aContentType, aContentDisp)
 {
   forbidCPOW(aURL, "saveImageURL", "aURL");
   forbidCPOW(aReferrer, "saveImageURL", "aReferrer");
   // Allow aSourceDocument to be a CPOW.
 
-  var contentType = null;
-  var contentDisposition = null;
-  if (!aShouldBypassCache) {
+  if (!aShouldBypassCache &&
+      (!aContentType && !aContentDisp)) {
     try {
       var imageCache = Components.classes["@mozilla.org/image/tools;1"]
                                  .getService(Components.interfaces.imgITools)
                                  .getImgCacheForDocument(aDoc);
       var props =
         imageCache.findEntryProperties(makeURI(aURL, getCharsetforSave(null)));
       if (props) {
-        contentType = props.get("type", nsISupportsCString);
-        contentDisposition = props.get("content-disposition",
-                                       nsISupportsCString);
+        aContentType = props.get("type", nsISupportsCString);
+        aContentDisp = props.get("content-disposition", nsISupportsCString);
       }
     } catch (e) {
       // Failure to get type and content-disposition off the image is non-fatal
     }
   }
-  internalSave(aURL, null, aFileName, contentDisposition, contentType,
+  internalSave(aURL, null, aFileName, aContentDisp, aContentType,
                aShouldBypassCache, aFilePickerTitleKey, null, aReferrer,
                aDoc, aSkipPrompt, null);
 }
 
 function saveDocument(aDocument, aSkipPrompt)
 {
   if (!aDocument)
     throw "Must have a document when calling saveDocument";
--- a/toolkit/mozapps/extensions/LightweightThemeManager.jsm
+++ b/toolkit/mozapps/extensions/LightweightThemeManager.jsm
@@ -297,17 +297,17 @@ this.LightweightThemeManager = {
           _notifyWindows(this.currentThemeForDisplay);
         }.bind(this));
       }
     }
 
     if (aData)
       _prefs.setCharPref("selectedThemeID", aData.id);
     else
-      _prefs.clearUserPref("selectedThemeID");
+      _prefs.deleteBranch("selectedThemeID");
 
     _notifyWindows(aData);
     Services.obs.notifyObservers(null, "lightweight-theme-changed", null);
   },
 
   /**
    * Starts the Addons provider and enables the new lightweight theme if
    * necessary.
--- a/toolkit/mozapps/update/nsUpdateService.js
+++ b/toolkit/mozapps/update/nsUpdateService.js
@@ -2701,16 +2701,17 @@ UpdateService.prototype = {
       return;
     }
 
     if (!getPref("getBoolPref", PREF_APP_UPDATE_AUTO, true)) {
       LOG("UpdateService:_selectAndInstallUpdate - prompting because silent " +
           "install is disabled");
       AUSTLMY.pingCheckCode(this._pingSuffix, AUSTLMY.CHK_SHOWPROMPT_PREF);
       this._showPrompt(update);
+      return;
     }
 
     if (getPref("getIntPref", PREF_APP_UPDATE_MODE, 1) == 0) {
       // Do not prompt regardless of add-on incompatibilities
       LOG("UpdateService:_selectAndInstallUpdate - add-on compatibility " +
           "check disabled by preference, just download the update");
       var status = this.downloadUpdate(update, true);
       if (status == STATE_NONE)
--- a/toolkit/mozapps/update/nsUpdateService.manifest
+++ b/toolkit/mozapps/update/nsUpdateService.manifest
@@ -5,11 +5,8 @@ component {093C2356-4843-4C65-8709-D7DBC
 contract @mozilla.org/updates/update-manager;1 {093C2356-4843-4C65-8709-D7DBCBBE7DFB}
 component {898CDC9B-E43F-422F-9CC4-2F6291B415A3} nsUpdateService.js
 contract @mozilla.org/updates/update-checker;1 {898CDC9B-E43F-422F-9CC4-2F6291B415A3}
 component {27ABA825-35B5-4018-9FDD-F99250A0E722} nsUpdateService.js
 contract @mozilla.org/updates/update-prompt;1 {27ABA825-35B5-4018-9FDD-F99250A0E722}
 component {e43b0010-04ba-4da6-b523-1f92580bc150} nsUpdateServiceStub.js
 contract @mozilla.org/updates/update-service-stub;1 {e43b0010-04ba-4da6-b523-1f92580bc150}
 category profile-after-change nsUpdateServiceStub @mozilla.org/updates/update-service-stub;1
-#ifdef MOZ_SERVICES_HEALTHREPORT
-category healthreport-js-provider-default UpdateProvider resource://gre/modules/UpdaterHealthProvider.jsm
-#endif
--- a/toolkit/themes/windows/global/aboutReader.css
+++ b/toolkit/themes/windows/global/aboutReader.css
@@ -290,34 +290,30 @@ body.loaded {
 .dropdown li {
   margin: 0;
   padding: 0;
 }
 
 /*======= Font style popup =======*/
 
 .dropdown-popup {
-  min-width: 250px;
+  min-width: 300px;
   text-align: start;
   position: absolute;
   left: 48px; /* offset to account for toolbar width */
   z-index: 1000;
   background-color: #fbfbfb;
   visibility: hidden;
   border-radius: 4px;
   border: 1px 1px 0 1px solid #b5b5b5;
   box-shadow: 0 1px 12px #666;
 }
 
 .dropdown-popup > hr {
-  width: 100%;
-  height: 0;
-  border: 0;
-  border-top: 1px solid #b5b5b5;
-  margin: 0;
+  display: none;
 }
 
 .open > .dropdown-popup {
   visibility: visible;
 }
 
 .dropdown-arrow {
   position: absolute;
@@ -348,55 +344,75 @@ body.loaded {
 #color-scheme-buttons > button:last-child {
   border-bottom-right-radius: 3px;
 }
 
 #font-type-buttons > button,
 #font-size-buttons > button,
 #color-scheme-buttons > button {
   text-align: center;
-  border-left: 1px solid #b5b5b5;
-  border-right: 0;
-  border-top: 0;
-  border-bottom: 0;
-  padding: 10px;
+  border: 0;
 }
 
 #font-type-buttons > button,
 #font-size-buttons > button {
   width: 50%;
   background-color: transparent;
+  border-left: 1px solid #B5B5B5;
+  border-bottom: 1px solid #B5B5B5;
 }
 
 #color-scheme-buttons > button {
   width: 33.33%;
   font-size: 14px;
 }
 
+#color-scheme-buttons > .dark-button {
+  margin-top: -1px;
+  height: 61px;
+}
+
 #font-type-buttons > button:first-child,
-#font-size-buttons > button:first-child,
-#color-scheme-buttons > button:first-child {
+#font-size-buttons > button:first-child {
   border-left: 0;
 }
 
 #font-type-buttons > button {
   display: inline-block;
-  font-size: 48px;
+  font-size: 58px;
+  height: 100px;
+}
+
+/* Make the serif button content the same size as the sans-serif button content. */
+#font-type-buttons > .serif-button {
+  padding-top: 1px;
+  font-size: 60px;
+}
+
+#font-size-buttons > button,
+#color-scheme-buttons > button {
+  height: 60px;
 }
 
 #font-type-buttons > button:active:hover,
 #font-type-buttons > button.selected,
 #color-scheme-buttons > button:active:hover,
 #color-scheme-buttons > button.selected {
   box-shadow: inset 0 -3px 0 0 #fc6420;
 }
 
+#font-type-buttons > button:active:hover,
+#font-type-buttons > button.selected {
+  border-bottom: 1px solid #FC6420;
+}
+
 #font-type-buttons > button > div {
   color: #666;
   font-size: 12px;
+  margin-top: -4px;
 }
 
 .button:hover,
 #font-size-buttons > button:hover,
 #font-type-buttons > button:hover {
   background-color: #ebebeb;
 }
 
@@ -415,17 +431,16 @@ body.loaded {
 .serif-button {
   font-family: "Charis SIL", Georgia, "Times New Roman", serif;
 }
 
 .minus-button,
 .plus-button {
   background-color: transparent;
   border: 0;
-  height: 50px;
   background-size: 18px 18px;
   background-repeat: no-repeat;
   background-position: center;
 }
 
 .footer {
   height: 64px;
   background-color: #ebebeb;