mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-12 10:40:12 +00:00
Bug 605965 - Fix test and add check for addons before adding them. r=mfinkle
This commit is contained in:
parent
fe08e462c5
commit
77a4558c16
@ -59,11 +59,6 @@ XPCOMUtils.defineLazyGetter(this, "AddonRepository", function() {
|
||||
return AddonRepository;
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "AddonLogger", function() {
|
||||
Cu.import("resource://gre/modules/AddonLogging.jsm");
|
||||
return LogManager.getLogger("FennecExtensions");
|
||||
});
|
||||
|
||||
var ExtensionsView = {
|
||||
_strings: {},
|
||||
_list: null,
|
||||
@ -329,7 +324,9 @@ var ExtensionsView = {
|
||||
let strings = Strings.browser;
|
||||
let anyUpdateable = false;
|
||||
for (let i = 0; i < items.length; i++) {
|
||||
let listitem = self._createLocalAddon(items[i]);
|
||||
let listitem = self.getElementForAddon(items[i].id)
|
||||
if (!listitem)
|
||||
listitem = self._createLocalAddon(items[i]);
|
||||
if ((items[i].permissions & AddonManager.PERM_CAN_UPGRADE) > 0)
|
||||
anyUpdateable = true;
|
||||
|
||||
@ -374,7 +371,6 @@ var ExtensionsView = {
|
||||
},
|
||||
|
||||
addItem : function ev_addItem(aItem, aPosition) {
|
||||
AddonLogger.log("Adding item: " + aItem.id);
|
||||
if (aPosition == "repo")
|
||||
return this._list.appendChild(aItem);
|
||||
else if (aPosition == "local")
|
||||
@ -453,7 +449,6 @@ var ExtensionsView = {
|
||||
uninstall: function ev_uninstall(aItem) {
|
||||
let opType;
|
||||
if (aItem.getAttribute("type") == "search") {
|
||||
AddonLogger.log("Removing search engine.");
|
||||
// Make sure the engine isn't hidden before removing it, to make sure it's
|
||||
// visible if the user later re-adds it (works around bug 341833)
|
||||
aItem._engine.hidden = false;
|
||||
@ -461,10 +456,7 @@ var ExtensionsView = {
|
||||
// the search-engine-modified observer in browser.js will take care of
|
||||
// updating the list
|
||||
} else {
|
||||
AddonLogger.log("Removing extension.");
|
||||
|
||||
if (!aItem.addon) {
|
||||
AddonLogger.log("No addon object, early return.");
|
||||
this._list.removeChild(aItem);
|
||||
return;
|
||||
}
|
||||
@ -473,7 +465,6 @@ var ExtensionsView = {
|
||||
opType = this._getOpTypeForOperations(aItem.addon.pendingOperations);
|
||||
|
||||
if (aItem.addon.pendingOperations & AddonManager.PENDING_UNINSTALL) {
|
||||
AddonLogger.log("Add-on is not restartless. Keeping in list.");
|
||||
this.showRestart();
|
||||
|
||||
// A disabled addon doesn't need a restart so it has no pending ops and
|
||||
@ -483,7 +474,6 @@ var ExtensionsView = {
|
||||
|
||||
aItem.setAttribute("opType", opType);
|
||||
} else {
|
||||
AddonLogger.log("Add-on is restartless. Removed from list.");
|
||||
this._list.removeChild(aItem);
|
||||
}
|
||||
}
|
||||
|
@ -360,54 +360,48 @@ function testPrompt(aTitle, aMessage, aButtons, aCallback) {
|
||||
// Installs an addon via the urlbar.
|
||||
function installFromURLBar(aAddon) {
|
||||
return function() {
|
||||
loadUrl(gTestURL, function() {
|
||||
loadUrl(aAddon.sourceURL, null, false);
|
||||
let elt = get_addon_element(aAddon.id);
|
||||
ok(!elt, "Addon element is not present before installation");
|
||||
if (elt)
|
||||
info("unexpectedly found element in: " + elt.parentNode.id);
|
||||
checkInstallAlert(true, function() {
|
||||
checkDownloadNotification(function() {
|
||||
checkInstallPopup(aAddon.name, function() {
|
||||
checkInstallNotification(!aAddon.bootstrapped, function() {
|
||||
open_manager(true, function() {
|
||||
isRestartShown(!aAddon.bootstrapped, false, function() {
|
||||
let elt = get_addon_element(aAddon.id);
|
||||
info("elt.id is " + aAddon.id);
|
||||
if (aAddon.bootstrapped) {
|
||||
checkAddonListing(aAddon, elt, "local");
|
||||
var button = document.getAnonymousElementByAttribute(elt, "anonid", "uninstall-button");
|
||||
ok(!!button, "Extension has uninstall button");
|
||||
AddonManager.addInstallListener({
|
||||
onInstallEnded: function (install) {
|
||||
AddonManager.removeInstallListener(this);
|
||||
checkInstallNotification(!aAddon.bootstrapped, function() {
|
||||
open_manager(true, function() {
|
||||
isRestartShown(!aAddon.bootstrapped, false, function() {
|
||||
let elt = get_addon_element(aAddon.id);
|
||||
if (aAddon.bootstrapped) {
|
||||
checkAddonListing(aAddon, elt, "local");
|
||||
var button = document.getAnonymousElementByAttribute(elt, "anonid", "uninstall-button");
|
||||
ok(!!button, "Extension has uninstall button");
|
||||
|
||||
var updateButton = document.getElementById("addons-update-all");
|
||||
is(updateButton.disabled, false, "Update button is enabled");
|
||||
var updateButton = document.getElementById("addons-update-all");
|
||||
is(updateButton.disabled, false, "Update button is enabled");
|
||||
|
||||
ExtensionsView.uninstall(elt);
|
||||
waitForAndContinue(function() {
|
||||
let elt = get_addon_element(aAddon.id);
|
||||
ok(!elt, "Addon element removed during uninstall");
|
||||
Browser.closeTab(gCurrentTab);
|
||||
close_manager(run_next_test);
|
||||
}, function() {
|
||||
let elt = get_addon_element(aAddon.id);
|
||||
info("Looking for element with id " + aAddon.id + ": " + elt);
|
||||
return !elt;
|
||||
});
|
||||
} else {
|
||||
ok(!elt, "Extension not in list");
|
||||
AddonManager.getAllInstalls(function(aInstalls) {
|
||||
for(var i = 0; i < aInstalls.length; i++) {
|
||||
aInstalls[i].cancel();
|
||||
}
|
||||
Browser.closeTab(gCurrentTab);
|
||||
close_manager(run_next_test);
|
||||
});
|
||||
ExtensionsView.uninstall(elt);
|
||||
|
||||
elt = get_addon_element(aAddon.id);
|
||||
ok(!elt, "Addon element removed during uninstall");
|
||||
Browser.closeTab(gCurrentTab);
|
||||
close_manager(run_next_test);
|
||||
} else {
|
||||
ok(!elt, "Extension not in list");
|
||||
AddonManager.getAllInstalls(function(aInstalls) {
|
||||
for(var i = 0; i < aInstalls.length; i++) {
|
||||
aInstalls[i].cancel();
|
||||
}
|
||||
Browser.closeTab(gCurrentTab);
|
||||
close_manager(run_next_test);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
loadUrl(gTestURL, function() {
|
||||
loadUrl(aAddon.sourceURL, null, false);
|
||||
checkInstallAlert(true, function() {
|
||||
checkDownloadNotification(function() {
|
||||
checkInstallPopup(aAddon.name, function() { });
|
||||
});
|
||||
});
|
||||
}, true);
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user