Bug 1236578: Don't display hidden add-ons in the select your add-ons UI. r?rhelmer
MozReview-Commit-ID: 2N5Y6qCyY05
--- a/toolkit/mozapps/extensions/content/selectAddons.js
+++ b/toolkit/mozapps/extensions/content/selectAddons.js
@@ -62,40 +62,46 @@ var gChecking = {
_addonCount: 0,
_completeCount: 0,
show: function() {
showButtons(true, false, false, false);
this._progress = document.getElementById("checking-progress");
AddonManager.getAllAddons(aAddons => {
- if (aAddons.length == 0) {
- window.close();
- return;
- }
+ aAddons = aAddons.filter(function(aAddon) {
+ if (aAddon.hidden) {
+ return false;
+ }
- aAddons = aAddons.filter(function(aAddon) {
if (aAddon.id == AddonManager.hotfixID) {
return false;
}
- if (aAddon.type == "plugin" || aAddon.type == "service")
+
+ if (aAddon.type == "plugin" || aAddon.type == "service") {
return false;
+ }
if (aAddon.type == "theme") {
// Don't show application shipped themes
if (aAddon.scope == AddonManager.SCOPE_APPLICATION)
return false;
// Don't show already disabled themes
if (aAddon.userDisabled)
return false;
}
return true;
});
+ if (aAddons.length == 0) {
+ window.close();
+ return;
+ }
+
this._addonCount = aAddons.length;
this._progress.value = 0;
this._progress.max = aAddons.length;
this._progress.mode = "determined";
AddonRepository.repopulateCache().then(() => {
for (let addonItem of aAddons) {
// Ignore disabled themes
--- a/toolkit/mozapps/extensions/test/browser/browser_select_confirm.js
+++ b/toolkit/mozapps/extensions/test/browser/browser_select_confirm.js
@@ -34,23 +34,24 @@ function waitForView(aView, aCallback) {
* True if the test add-ons should claim to have an update available
*/
function setupUI(aAppDisabled, aUpdateAvailable, aCallback) {
if (gProvider)
gProvider.unregister();
gProvider = new MockProvider();
- for (var i = 1; i < 5; i++) {
+ for (var i = 1; i < 6; i++) {
var addon = new MockAddon("test" + i + "@tests.mozilla.org",
"Test Add-on " + i, "extension");
addon.version = "1.0";
addon.userDisabled = (i > 2);
addon.appDisabled = aAppDisabled;
addon.isActive = !addon.userDisabled && !addon.appDisabled;
+ addon.hidden = i == 5;
addon.findUpdates = function(aListener, aReason, aAppVersion, aPlatformVersion) {
if (aUpdateAvailable) {
var newAddon = new MockAddon(this.id, this.name, "extension");
newAddon.version = "2.0";
var install = new MockInstall(this.name, this.type, newAddon);
install.existingAddon = this;
aListener.onUpdateAvailable(this, install);