Bug 590511 - Removing Jetpacks under the Recent Updates pane doesn't work. r=mossop, a=blocking-betaN

This commit is contained in:
Drew Willcoxon 2010-12-10 18:32:10 -08:00
Родитель 91f5d83bdc
Коммит be59406936
1 изменённых файлов: 17 добавлений и 27 удалений

Просмотреть файл

@ -1258,6 +1258,20 @@ function getAddonsAndInstalls(aType, aCallback) {
}); });
} }
function doPendingUninstalls(aListBox) {
// Uninstalling add-ons can mutate the list so find the add-ons first then
// uninstall them
var items = [];
var listitem = aListBox.firstChild;
while (listitem) {
if (listitem.getAttribute("pending") == "uninstall" &&
!listitem.isPending("uninstall"))
items.push(listitem.mAddon);
listitem = listitem.nextSibling;
}
items.forEach(function(aAddon) { aAddon.uninstall(); });
}
var gCategories = { var gCategories = {
node: null, node: null,
@ -1728,19 +1742,7 @@ var gSearchView = {
hide: function() { hide: function() {
gEventManager.unregisterInstallListener(this); gEventManager.unregisterInstallListener(this);
doPendingUninstalls(this._listBox);
// Uninstalling add-ons can mutate the list so find the add-ons first then
// uninstall them
var items = [];
var listitem = this._listBox.firstChild;
while (listitem) {
if (listitem.getAttribute("pending") == "uninstall" &&
!listitem.isPending("uninstall"))
items.push(listitem.mAddon);
listitem = listitem.nextSibling;
}
items.forEach(function(aAddon) { aAddon.uninstall(); });
}, },
getMatchScore: function(aObj, aQuery) { getMatchScore: function(aObj, aQuery) {
@ -1940,19 +1942,7 @@ var gListView = {
hide: function() { hide: function() {
gEventManager.unregisterInstallListener(this); gEventManager.unregisterInstallListener(this);
doPendingUninstalls(this._listBox);
// Uninstalling add-ons can mutate the list so find the add-ons first then
// uninstall them
var items = [];
var listitem = this._listBox.firstChild;
while (listitem) {
if (listitem.getAttribute("pending") == "uninstall" &&
!listitem.isPending("uninstall"))
items.push(listitem.mAddon);
listitem = listitem.nextSibling;
}
items.forEach(function(aAddon) { aAddon.uninstall(); });
}, },
showEmptyNotice: function(aShow) { showEmptyNotice: function(aShow) {
@ -2454,8 +2444,8 @@ var gUpdatesView = {
hide: function() { hide: function() {
this._updateSelected.hidden = true; this._updateSelected.hidden = true;
this._categoryItem.disabled = this._categoryItem.badgeCount == 0; this._categoryItem.disabled = this._categoryItem.badgeCount == 0;
doPendingUninstalls(this._listBox);
}, },
_showRecentUpdates: function(aRequest) { _showRecentUpdates: function(aRequest) {