diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties
index dba396ed47e4..f2056a49dc63 100644
--- a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties
@@ -42,16 +42,8 @@ notification.vulnerableUpdatable.link=Update Now
#LOCALIZATION NOTE (notification.vulnerableNoUpdate) %1$S is the add-on name
notification.vulnerableNoUpdate=%1$S is known to be vulnerable. Use with caution.
notification.vulnerableNoUpdate.link=More Information
-#LOCALIZATION NOTE (notification.enable) %1$S is the add-on name, %2$S is brand name
-notification.enable=%1$S will be enabled after you restart %2$S.
-#LOCALIZATION NOTE (notification.disable) %1$S is the add-on name, %2$S is brand name
-notification.disable=%1$S will be disabled after you restart %2$S.
-#LOCALIZATION NOTE (notification.install) %1$S is the add-on name, %2$S is brand name
-notification.install=%1$S will be installed after you restart %2$S.
-#LOCALIZATION NOTE (notification.uninstall) %1$S is the add-on name, %2$S is brand name
-notification.uninstall=%1$S will be uninstalled after you restart %2$S.
-#LOCALIZATION NOTE (notification.upgrade) %1$S is the add-on name, %2$S is brand name
-notification.upgrade=%1$S will be updated after you restart %2$S.
+#LOCALIZATION NOTE (notification.restartless-uninstall) %1$S is the add-on name
+notification.restartless-uninstall=%1$S will be uninstalled after you close this tab.
#LOCALIZATION NOTE (notification.downloadError) %1$S is the add-on name.
notification.downloadError=There was an error downloading %1$S.
notification.downloadError.retry=Try again
@@ -71,8 +63,6 @@ installDownloaded=Downloaded
installDownloadFailed=Error downloading
installVerifying=Verifying
installInstalling=Installing
-installEnablePending=Restart to enable
-installDisablePending=Restart to disable
installFailed=Error installing
installCancelled=Install cancelled
@@ -97,16 +87,8 @@ details.notification.vulnerableUpdatable.link=Update Now
#LOCALIZATION NOTE (details.notification.vulnerableNoUpdate) %1$S is the add-on name
details.notification.vulnerableNoUpdate=%1$S is known to be vulnerable. Use with caution.
details.notification.vulnerableNoUpdate.link=More Information
-#LOCALIZATION NOTE (details.notification.enable) %1$S is the add-on name, %2$S is brand name
-details.notification.enable=%1$S will be enabled after you restart %2$S.
-#LOCALIZATION NOTE (details.notification.disable) %1$S is the add-on name, %2$S is brand name
-details.notification.disable=%1$S will be disabled after you restart %2$S.
-#LOCALIZATION NOTE (details.notification.install) %1$S is the add-on name, %2$S is brand name
-details.notification.install=%1$S will be installed after you restart %2$S.
-#LOCALIZATION NOTE (details.notification.uninstall) %1$S is the add-on name, %2$S is brand name
-details.notification.uninstall=%1$S will be uninstalled after you restart %2$S.
-#LOCALIZATION NOTE (details.notification.upgrade) %1$S is the add-on name, %2$S is brand name
-details.notification.upgrade=%1$S will be updated after you restart %2$S.
+#LOCALIZATION NOTE (details.notification.restartless-uninstall) %1$S is the add-on name.
+details.notification.restartless-uninstall=%1$S will be uninstalled after you close this tab.
#LOCALIZATION NOTE (details.notification.gmpPending) %1$S is the add-on name
details.notification.gmpPending=%1$S will be installed shortly.
@@ -152,11 +134,8 @@ installFromFile.dialogTitle=Select add-on to install
installFromFile.filterName=Add-ons
uninstallAddonTooltip=Uninstall this add-on
-uninstallAddonRestartRequiredTooltip=Uninstall this add-on (restart required)
enableAddonTooltip=Enable this add-on
-enableAddonRestartRequiredTooltip=Enable this add-on (restart required)
disableAddonTooltip=Disable this add-on
-disableAddonRestartRequiredTooltip=Disable this add-on (restart required)
#LOCALIZATION NOTE (eulaHeader) %S is name of the add-on asking the user to agree to the EULA
eulaHeader=%S requires that you accept the following End User License Agreement before installation can proceed:
diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
index 2d00973efbeb..12a83e0e0522 100644
--- a/toolkit/mozapps/extensions/content/extensions.js
+++ b/toolkit/mozapps/extensions/content/extensions.js
@@ -933,22 +933,6 @@ var gViewController = {
}
},
- cmd_restartApp: {
- isEnabled() {
- return true;
- },
- doCommand() {
- let cancelQuit = Cc["@mozilla.org/supports-PRBool;1"].
- createInstance(Ci.nsISupportsPRBool);
- Services.obs.notifyObservers(cancelQuit, "quit-application-requested",
- "restart");
- if (cancelQuit.data)
- return; // somebody canceled our quit request
-
- Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
- }
- },
-
cmd_enableCheckCompatibility: {
isEnabled() {
return true;
@@ -1053,7 +1037,6 @@ var gViewController = {
var pendingChecks = 0;
var numUpdated = 0;
var numManualUpdates = 0;
- var restartNeeded = false;
let updateStatus = () => {
if (pendingChecks > 0)
@@ -1076,12 +1059,7 @@ var gViewController = {
return;
}
- if (restartNeeded) {
- document.getElementById("updates-downloaded").hidden = false;
- document.getElementById("updates-restart-btn").hidden = false;
- } else {
- document.getElementById("updates-installed").hidden = false;
- }
+ document.getElementById("updates-installed").hidden = false;
};
var updateInstallListener = {
@@ -1100,8 +1078,6 @@ var gViewController = {
onInstallEnded(aInstall, aAddon) {
pendingChecks--;
numUpdated++;
- if (isPending(aInstall.existingAddon, "upgrade"))
- restartNeeded = true;
updateStatus();
}
};
@@ -1238,8 +1214,6 @@ var gViewController = {
getTooltip(aAddon) {
if (!aAddon)
return "";
- if (aAddon.operationsRequiringRestart & AddonManager.OP_NEEDS_RESTART_ENABLE)
- return gStrings.ext.GetStringFromName("enableAddonRestartRequiredTooltip");
return gStrings.ext.GetStringFromName("enableAddonTooltip");
}
},
@@ -1258,8 +1232,6 @@ var gViewController = {
getTooltip(aAddon) {
if (!aAddon)
return "";
- if (aAddon.operationsRequiringRestart & AddonManager.OP_NEEDS_RESTART_DISABLE)
- return gStrings.ext.GetStringFromName("disableAddonRestartRequiredTooltip");
return gStrings.ext.GetStringFromName("disableAddonTooltip");
}
},
@@ -1301,8 +1273,6 @@ var gViewController = {
getTooltip(aAddon) {
if (!aAddon)
return "";
- if (aAddon.operationsRequiringRestart & AddonManager.OP_NEEDS_RESTART_UNINSTALL)
- return gStrings.ext.GetStringFromName("uninstallAddonRestartRequiredTooltip");
return gStrings.ext.GetStringFromName("uninstallAddonTooltip");
}
},
@@ -1372,16 +1342,8 @@ var gViewController = {
return aAddon.pendingOperations != AddonManager.PENDING_NONE;
},
doCommand(aAddon) {
- if (isPending(aAddon, "install")) {
- aAddon.install.cancel();
- } else if (isPending(aAddon, "upgrade")) {
- aAddon.pendingUpgrade.install.cancel();
- } else if (isPending(aAddon, "uninstall")) {
+ if (isPending(aAddon, "uninstall")) {
aAddon.cancelUninstall();
- } else if (isPending(aAddon, "enable")) {
- aAddon.userDisabled = true;
- } else if (isPending(aAddon, "disable")) {
- aAddon.userDisabled = false;
}
}
},
@@ -1785,8 +1747,7 @@ function doPendingUninstalls(aListBox) {
var items = [];
var listitem = aListBox.firstChild;
while (listitem) {
- if (listitem.getAttribute("pending") == "uninstall" &&
- !(listitem.opRequiresRestart("UNINSTALL")))
+ if (listitem.getAttribute("pending") == "uninstall")
items.push(listitem.mAddon);
listitem = listitem.nextSibling;
}
@@ -1925,7 +1886,7 @@ var gCategories = {
this._maybeShowCategory(aAddon);
},
- onExternalInstall(aAddon, aExistingAddon, aRequiresRestart) {
+ onExternalInstall(aAddon, aExistingAddon) {
this._maybeShowCategory(aAddon);
},
@@ -2588,7 +2549,7 @@ var gListView = {
sortList(this._listBox, aSortBy, aAscending);
},
- onExternalInstall(aAddon, aExistingAddon, aRequiresRestart) {
+ onExternalInstall(aAddon, aExistingAddon) {
// The existing list item will take care of upgrade installs
if (aExistingAddon)
return;
@@ -2980,22 +2941,15 @@ var gDetailView = {
gViewController.updateCommands();
var pending = this._addon.pendingOperations;
- if (pending != AddonManager.PENDING_NONE) {
+ if (pending & AddonManager.PENDING_UNINSTALL) {
this.node.removeAttribute("notification");
- pending = null;
- const PENDING_OPERATIONS = ["enable", "disable", "install", "uninstall",
- "upgrade"];
- for (let op of PENDING_OPERATIONS) {
- if (isPending(this._addon, op))
- pending = op;
- }
-
- this.node.setAttribute("pending", pending);
+ // We don't care about pending operations other than uninstall.
+ // They're transient, and cannot be undone.
+ this.node.setAttribute("pending", "uninstall");
document.getElementById("detail-pending").textContent = gStrings.ext.formatStringFromName(
- "details.notification." + pending,
- [this._addon.name, gStrings.brandShortName], 2
- );
+ "details.notification.restartless-uninstall",
+ [this._addon.name], 1);
} else {
this.node.removeAttribute("pending");
@@ -3329,9 +3283,9 @@ var gDetailView = {
this.fillSettingsRows();
},
- onDisabling(aNeedsRestart) {
+ onDisabling() {
this.updateState();
- if (!aNeedsRestart && hasInlineOptions(this._addon)) {
+ if (hasInlineOptions(this._addon)) {
Services.obs.notifyObservers(document,
AddonManager.OPTIONS_NOTIFICATION_HIDDEN,
this._addon.id);
@@ -3368,15 +3322,12 @@ var gDetailView = {
this.updateState();
},
- onExternalInstall(aAddon, aExistingAddon, aNeedsRestart) {
+ onExternalInstall(aAddon, aExistingAddon) {
// Only care about upgrades for the currently displayed add-on
if (!aExistingAddon || aExistingAddon.id != this._addon.id)
return;
- if (!aNeedsRestart)
- this._updateView(aAddon, false);
- else
- this.updateState();
+ this._updateView(aAddon, false);
},
onInstallCancelled(aInstall) {
diff --git a/toolkit/mozapps/extensions/content/extensions.xml b/toolkit/mozapps/extensions/content/extensions.xml
index 434c6c520f8a..f3227f12d84d 100644
--- a/toolkit/mozapps/extensions/content/extensions.xml
+++ b/toolkit/mozapps/extensions/content/extensions.xml
@@ -467,10 +467,6 @@
document.getAnonymousElementByAttribute(this, "anonid",
"install-remote-btn");
-
- document.getAnonymousElementByAttribute(this, "anonid",
- "restart-needed");
-
document.getAnonymousElementByAttribute(this, "anonid",
"undo-btn");
@@ -601,19 +597,6 @@
]]>