diff --git a/mozilla/browser/components/prefwindow/content/pref-themes.js b/mozilla/browser/components/prefwindow/content/pref-themes.js
index 2b17e642167..038c6a5f683 100644
--- a/mozilla/browser/components/prefwindow/content/pref-themes.js
+++ b/mozilla/browser/components/prefwindow/content/pref-themes.js
@@ -76,7 +76,7 @@ function Startup()
var child = list.childNodes[i];
var name = child.getAttribute("name");
if (!theme)
- matches = chromeRegistry.isSkinSelected(name, true) == Components.interfaces.nsIChromeRegistry.FULL;
+ matches = chromeRegistry.isSkinSelectedForPackage(name, "browser", true);
else
matches = name == theme;
if (matches) {
@@ -94,6 +94,14 @@ function Startup()
while (description.hasChildNodes())
description.removeChild(description.firstChild);
}
+
+ var extList = document.getElementById("extList");
+ for (var i = 0; i < extList.childNodes.length; ++i) {
+ if (extList.childNodes[i].getAttribute("name")) {
+ extList.selectItem(extList.childNodes[i]);
+ break;
+ }
+ }
}
function applyTheme()
@@ -264,4 +272,54 @@ function themeSelect()
}
+function extensionSelect()
+{
+ var list = document.getElementById("extList");
+ if (!list)
+ return;
+
+ var selectedItem = list.selectedItems.length ? list.selectedItems[0] : null;
+ if (selectedItem) {
+ var extName = selectedItem.getAttribute("displayName");
+ var nameField = document.getElementById("extDisplayName");
+ var author = document.getElementById("extAuthor");
+ var descText = document.createTextNode(selectedItem.getAttribute("description"));
+ var description = document.getElementById("extDescription");
+ var uninstallButton = document.getElementById("uninstallExtension");
+
+ while (description.hasChildNodes())
+ description.removeChild(description.firstChild);
+
+ nameField.setAttribute("value", extName);
+ author.setAttribute("value", selectedItem.getAttribute("author"));
+
+ description.appendChild(descText);
+
+ updateDisableExtButton(selectedItem);
+ }
+}
+
+function toggleExtension()
+{
+ var list = document.getElementById("extList");
+
+ if (!list)
+ return;
+
+ var selectedItem = list.selectedItems.length ? list.selectedItems[0] : null;
+ if (selectedItem) {
+ var disabled = (selectedItem.getAttribute("disabledState") == "true");
+ chromeRegistry.setAllowOverlaysForPackage(selectedItem.getAttribute("name"), disabled);
+ updateDisableExtButton(selectedItem);
+ }
+}
+
+function updateDisableExtButton(item)
+{
+ var disableButton = document.getElementById("disableExtension");
+ if (item.getAttribute("disabledState") == "true")
+ disableButton.setAttribute("label", "Enable Extension"); // XXXdwh localize
+ else
+ disableButton.setAttribute("label", "Disable Extension"); // XXXdwh localize
+}
diff --git a/mozilla/browser/components/prefwindow/content/pref-themes.xul b/mozilla/browser/components/prefwindow/content/pref-themes.xul
index acbc52aa76b..40ef45f97fa 100644
--- a/mozilla/browser/components/prefwindow/content/pref-themes.xul
+++ b/mozilla/browser/components/prefwindow/content/pref-themes.xul
@@ -94,7 +94,7 @@
- &getNewThemes.label;
@@ -106,8 +106,8 @@
+ onselect="extensionSelect();"
+ ref="urn:mozilla:package:root" rows="10">
+ disabledState="rdf:http://www.mozilla.org/rdf/chrome#disabled"/>
-
-
-
-
-
-
-
+
-
+
-
+
-
+
+
- &getNewThemes.label;
+ Get New Extensions