Bug 1260596 - Themes panel is empty when all default-shipped lightweight themes (lwts) are removed. r?gijs
MozReview-Commit-ID: L1s3yxoxU33
--- a/browser/components/customizableui/CustomizeMode.jsm
+++ b/browser/components/customizableui/CustomizeMode.jsm
@@ -1431,27 +1431,16 @@ CustomizeMode.prototype = {
lwthemePrefs.setComplexValue("recommendedThemes",
Ci.nsISupportsString, string);
this.parentNode.hidePopup();
});
panel.insertBefore(tbb, footer);
}
let hideRecommendedLabel = (footer.previousSibling == recommendedLabel);
recommendedLabel.hidden = hideRecommendedLabel;
-
- let hideMyThemesSection = themesInMyThemesSection < 2 && hideRecommendedLabel;
- let headerLabel = doc.getElementById("customization-lwtheme-menu-header");
- if (hideMyThemesSection) {
- let element = recommendedLabel.previousSibling;
- while (element && element != headerLabel) {
- element.hidden = true;
- element = element.previousSibling;
- }
- }
- headerLabel.hidden = hideMyThemesSection;
}.bind(this));
},
resetLWThemesMenu: function(target) {
let doc = target.ownerDocument;
let footer = doc.getElementById("customization-lwtheme-menu-footer");
let recommendedLabel = doc.getElementById("customization-lwtheme-menu-recommended");
this.swatchForTheme(doc);
--- a/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
+++ b/browser/components/customizableui/test/browser_1007336_lwthemes_in_customize_mode.js
@@ -57,16 +57,36 @@ add_task(function* () {
"The second theme in the 'My Themes' section should be the newly installed theme: " +
"Installed theme id: " + installedThemeId + "; First theme ID: " + firstLWThemeId);
is(header.nextSibling.nextSibling.nextSibling, recommendedHeader,
"There should be two themes in the 'My Themes' section");
let defaultTheme = header.nextSibling;
defaultTheme.doCommand();
is(Services.prefs.getCharPref("lightweightThemes.selectedThemeID"), "", "No lwtheme should be selected");
+
+ yield endCustomizing();
+ Services.prefs.setCharPref("lightweightThemes.usedThemes", "[]");
+ Services.prefs.setCharPref("lightweightThemes.recommendedThemes", "[]");
+ info("Removed all recommended themes");
+ yield startCustomizing();
+ popupShownPromise = popupShown(popup);
+ EventUtils.synthesizeMouseAtCenter(themesButton, {});
+ info("Clicked on themes button a second time");
+ yield popupShownPromise;
+ header = document.getElementById("customization-lwtheme-menu-header");
+ is(header.hidden, false, "Header should never be hidden");
+ is(header.nextSibling.theme.id, DEFAULT_THEME_ID, "The first theme should be the Default theme");
+ is(header.nextSibling.hidden, false, "The default theme should never be hidden");
+ recommendedHeader = document.getElementById("customization-lwtheme-menu-recommended");
+ is(header.nextSibling.nextSibling, recommendedHeader,
+ "There should only be one theme (default) in the 'My Themes' section by default");
+ let footer = document.getElementById("customization-lwtheme-menu-footer");
+ is(recommendedHeader.nextSibling.id, footer.id, "There should be no recommended themes in the menu");
+ is(recommendedHeader.hidden, true, "The recommendedHeader should be hidden since there are no recommended themes");
});
add_task(function* asyncCleanup() {
yield endCustomizing();
Services.prefs.clearUserPref("lightweightThemes.usedThemes");
Services.prefs.clearUserPref("lightweightThemes.recommendedThemes");
});