зеркало из https://github.com/mozilla/gecko-dev.git
Bug 563135: Add-ons manager should expose outdated plugins. r=Unfocused, a=blocking-b6
This commit is contained in:
Родитель
a29c57459f
Коммит
8fea742a3e
|
@ -23,6 +23,9 @@ notification.blocked.link=More Information
|
||||||
#LOCALIZATION NOTE (notification.softblocked) %1$S is the add-on name
|
#LOCALIZATION NOTE (notification.softblocked) %1$S is the add-on name
|
||||||
notification.softblocked=%1$S is known to cause security or stability issues.
|
notification.softblocked=%1$S is known to cause security or stability issues.
|
||||||
notification.softblocked.link=More Information
|
notification.softblocked.link=More Information
|
||||||
|
#LOCALIZATION NOTE (notification.outdated) %1$S is the add-on name
|
||||||
|
notification.outdated=An important update is available for %1$S.
|
||||||
|
notification.outdated.link=Update Now
|
||||||
#LOCALIZATION NOTE (notification.enable) %1$S is the add-on name, %2$S is brand name
|
#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.
|
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
|
#LOCALIZATION NOTE (notification.disable) %1$S is the add-on name, %2$S is brand name
|
||||||
|
@ -55,6 +58,9 @@ details.notification.blocked.link=More Information
|
||||||
#LOCALIZATION NOTE (details.notification.softblocked) %1$S is the add-on name
|
#LOCALIZATION NOTE (details.notification.softblocked) %1$S is the add-on name
|
||||||
details.notification.softblocked=%1$S is known to cause security or stability issues.
|
details.notification.softblocked=%1$S is known to cause security or stability issues.
|
||||||
details.notification.softblocked.link=More Information
|
details.notification.softblocked.link=More Information
|
||||||
|
#LOCALIZATION NOTE (details.notification.outdated) %1$S is the add-on name
|
||||||
|
details.notification.outdated=An important update is available for %1$S.
|
||||||
|
details.notification.outdated.link=Update Now
|
||||||
#LOCALIZATION NOTE (details.notification.enable) %1$S is the add-on name, %2$S is brand name
|
#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.
|
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
|
#LOCALIZATION NOTE (details.notification.disable) %1$S is the add-on name, %2$S is brand name
|
||||||
|
|
|
@ -1823,6 +1823,16 @@ var gDetailView = {
|
||||||
warningLink.value = gStrings.ext.GetStringFromName("details.notification.softblocked.link");
|
warningLink.value = gStrings.ext.GetStringFromName("details.notification.softblocked.link");
|
||||||
warningLink.href = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
warningLink.href = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
||||||
warningLink.hidden = false;
|
warningLink.hidden = false;
|
||||||
|
} else if (this._addon.blocklistState == Ci.nsIBlocklistService.STATE_OUTDATED) {
|
||||||
|
this.node.setAttribute("notification", "warning");
|
||||||
|
document.getElementById("detail-warning").textContent = gStrings.ext.formatStringFromName(
|
||||||
|
"details.notification.outdated",
|
||||||
|
[this._addon.name], 1
|
||||||
|
);
|
||||||
|
var warningLink = document.getElementById("detail-warning-link");
|
||||||
|
warningLink.value = gStrings.ext.GetStringFromName("details.notification.outdated.link");
|
||||||
|
warningLink.href = Services.urlFormatter.formatURLPref("plugins.update.url");
|
||||||
|
warningLink.hidden = false;
|
||||||
} else {
|
} else {
|
||||||
this.node.removeAttribute("notification");
|
this.node.removeAttribute("notification");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1081,6 +1081,15 @@
|
||||||
this._warningLink.value = gStrings.ext.GetStringFromName("notification.softblocked.link");
|
this._warningLink.value = gStrings.ext.GetStringFromName("notification.softblocked.link");
|
||||||
this._warningLink.href = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
this._warningLink.href = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
||||||
this._warningLink.hidden = false;
|
this._warningLink.hidden = false;
|
||||||
|
} else if (this.mAddon.blocklistState == Ci.nsIBlocklistService.STATE_OUTDATED) {
|
||||||
|
this.setAttribute("notification", "warning");
|
||||||
|
this._warning.textContent = gStrings.ext.formatStringFromName(
|
||||||
|
"notification.outdated",
|
||||||
|
[this.mAddon.name], 1
|
||||||
|
);
|
||||||
|
this._warningLink.value = gStrings.ext.GetStringFromName("notification.outdated.link");
|
||||||
|
this._warningLink.href = Services.urlFormatter.formatURLPref("plugins.update.url");
|
||||||
|
this._warningLink.hidden = false;
|
||||||
} else {
|
} else {
|
||||||
this.removeAttribute("notification");
|
this.removeAttribute("notification");
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ var gCategoryUtilities;
|
||||||
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
|
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
|
||||||
var gVersion = Services.appinfo.version;
|
var gVersion = Services.appinfo.version;
|
||||||
var gBlocklistURL = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
var gBlocklistURL = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
||||||
|
var gPluginURL = Services.urlFormatter.formatURLPref("plugins.update.url");
|
||||||
var gDate = new Date(2010, 7, 1);
|
var gDate = new Date(2010, 7, 1);
|
||||||
|
|
||||||
function open_details(aId, aType, aCallback) {
|
function open_details(aId, aType, aCallback) {
|
||||||
|
@ -111,6 +112,10 @@ function test() {
|
||||||
name: "Test add-on 7",
|
name: "Test add-on 7",
|
||||||
_userDisabled: true,
|
_userDisabled: true,
|
||||||
isActive: false
|
isActive: false
|
||||||
|
}, {
|
||||||
|
id: "addon8@tests.mozilla.org",
|
||||||
|
name: "Test add-on 8",
|
||||||
|
blocklistState: Ci.nsIBlocklistService.STATE_OUTDATED
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
open_manager(null, function(aWindow) {
|
open_manager(null, function(aWindow) {
|
||||||
|
@ -540,3 +545,71 @@ add_test(function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Opens and tests the details view for add-on 8
|
||||||
|
add_test(function() {
|
||||||
|
open_details("addon8@tests.mozilla.org", "extension", function() {
|
||||||
|
is(get("detail-name").value, "Test add-on 8", "Name should be correct");
|
||||||
|
|
||||||
|
is_element_hidden(get("detail-prefs"), "Preferences button should be hidden");
|
||||||
|
is_element_hidden(get("detail-enable"), "Enable button should be hidden");
|
||||||
|
is_element_visible(get("detail-disable"), "Disable button should be visible");
|
||||||
|
is_element_visible(get("detail-uninstall"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_visible(get("detail-warning"), "Warning message should be visible");
|
||||||
|
is(get("detail-warning").textContent, "An important update is available for Test add-on 8.", "Warning message should be correct");
|
||||||
|
is_element_visible(get("detail-warning-link"), "Warning link should be visible");
|
||||||
|
is(get("detail-warning-link").value, "Update Now", "Warning link text should be correct");
|
||||||
|
is(get("detail-warning-link").href, gPluginURL, "Warning link should be correct");
|
||||||
|
is_element_hidden(get("detail-error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get("detail-error-link"), "Error link should be hidden");
|
||||||
|
is_element_hidden(get("detail-pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
|
// Disable it
|
||||||
|
EventUtils.synthesizeMouse(get("detail-disable"), 2, 2, {}, gManagerWindow);
|
||||||
|
is_element_hidden(get("detail-prefs"), "Preferences button should be hidden");
|
||||||
|
is_element_visible(get("detail-enable"), "Enable button should be visible");
|
||||||
|
is_element_hidden(get("detail-disable"), "Disable button should be hidden");
|
||||||
|
is_element_visible(get("detail-uninstall"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_hidden(get("detail-warning"), "Warning message should be hidden");
|
||||||
|
is_element_hidden(get("detail-warning-link"), "Warning link should be hidden");
|
||||||
|
is_element_hidden(get("detail-error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get("detail-error-link"), "Error link should be hidden");
|
||||||
|
is_element_visible(get("detail-pending"), "Pending message should be visible");
|
||||||
|
is(get("detail-pending").textContent, "Test add-on 8 will be disabled after you restart " + gApp + ".", "Pending message should be correct");
|
||||||
|
|
||||||
|
// Reopen it
|
||||||
|
open_details("addon8@tests.mozilla.org", "extension", function() {
|
||||||
|
is_element_hidden(get("detail-prefs"), "Preferences button should be hidden");
|
||||||
|
is_element_visible(get("detail-enable"), "Enable button should be visible");
|
||||||
|
is_element_hidden(get("detail-disable"), "Disable button should be hidden");
|
||||||
|
is_element_visible(get("detail-uninstall"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_hidden(get("detail-warning"), "Warning message should be hidden");
|
||||||
|
is_element_hidden(get("detail-warning-link"), "Warning link should be hidden");
|
||||||
|
is_element_hidden(get("detail-error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get("detail-error-link"), "Error link should be hidden");
|
||||||
|
is_element_visible(get("detail-pending"), "Pending message should be visible");
|
||||||
|
is(get("detail-pending").textContent, "Test add-on 8 will be disabled after you restart " + gApp + ".", "Pending message should be correct");
|
||||||
|
|
||||||
|
// Undo disabling
|
||||||
|
EventUtils.synthesizeMouse(get("detail-undo"), 2, 2, {}, gManagerWindow);
|
||||||
|
is_element_hidden(get("detail-prefs"), "Preferences button should be hidden");
|
||||||
|
is_element_hidden(get("detail-enable"), "Enable button should be hidden");
|
||||||
|
is_element_visible(get("detail-disable"), "Disable button should be visible");
|
||||||
|
is_element_visible(get("detail-uninstall"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_visible(get("detail-warning"), "Warning message should be visible");
|
||||||
|
is(get("detail-warning").textContent, "An important update is available for Test add-on 8.", "Warning message should be correct");
|
||||||
|
is_element_visible(get("detail-warning-link"), "Warning link should be visible");
|
||||||
|
is(get("detail-warning-link").value, "Update Now", "Warning link text should be correct");
|
||||||
|
is(get("detail-warning-link").href, gPluginURL, "Warning link should be correct");
|
||||||
|
is_element_hidden(get("detail-error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get("detail-error-link"), "Error link should be hidden");
|
||||||
|
is_element_hidden(get("detail-pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
|
run_next_test();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -11,6 +11,7 @@ var gCategoryUtilities;
|
||||||
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
|
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
|
||||||
var gVersion = Services.appinfo.version;
|
var gVersion = Services.appinfo.version;
|
||||||
var gBlocklistURL = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
var gBlocklistURL = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL");
|
||||||
|
var gPluginURL = Services.urlFormatter.formatURLPref("plugins.update.url");
|
||||||
var gDate = new Date(2010, 7, 16);
|
var gDate = new Date(2010, 7, 16);
|
||||||
|
|
||||||
function test() {
|
function test() {
|
||||||
|
@ -58,6 +59,10 @@ function test() {
|
||||||
id: "addon6@tests.mozilla.org",
|
id: "addon6@tests.mozilla.org",
|
||||||
name: "Test add-on 6",
|
name: "Test add-on 6",
|
||||||
operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE
|
operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE
|
||||||
|
}, {
|
||||||
|
id: "addon7@tests.mozilla.org",
|
||||||
|
name: "Test add-on 7",
|
||||||
|
blocklistState: Ci.nsIBlocklistService.STATE_OUTDATED,
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
open_manager(null, function(aWindow) {
|
open_manager(null, function(aWindow) {
|
||||||
|
@ -101,7 +106,7 @@ function get_class_node(parent, cls) {
|
||||||
add_test(function() {
|
add_test(function() {
|
||||||
gCategoryUtilities.openType("extension", function() {
|
gCategoryUtilities.openType("extension", function() {
|
||||||
let items = get_test_items();
|
let items = get_test_items();
|
||||||
is(items.length, 6, "Should be six add-ons installed");
|
is(items.length, 7, "Should be seven add-ons installed");
|
||||||
|
|
||||||
info("Addon 1");
|
info("Addon 1");
|
||||||
let addon = items[0];
|
let addon = items[0];
|
||||||
|
@ -280,6 +285,39 @@ add_test(function() {
|
||||||
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
|
info("Addon 7");
|
||||||
|
addon = items[6];
|
||||||
|
addon.parentNode.ensureElementIsVisible(addon);
|
||||||
|
is(get_node(addon, "name").value, "Test add-on 7", "Name should be correct");
|
||||||
|
|
||||||
|
is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible");
|
||||||
|
is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_visible(get_node(addon, "warning"), "Warning message should be hidden");
|
||||||
|
is(get_node(addon, "warning").textContent, "An important update is available for Test add-on 7.", "Warning message should be correct");
|
||||||
|
is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible");
|
||||||
|
is(get_node(addon, "warning-link").value, "Update Now", "Warning link text should be correct");
|
||||||
|
is(get_node(addon, "warning-link").href, gPluginURL, "Warning link should be correct");
|
||||||
|
is_element_hidden(get_node(addon, "error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
|
info("Disabling");
|
||||||
|
EventUtils.synthesizeMouse(get_node(addon, "disable-btn"), 2, 2, {}, gManagerWindow);
|
||||||
|
is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible");
|
||||||
|
is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_hidden(get_node(addon, "warning"), "Warning message should be visible");
|
||||||
|
is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "pending"), "Pending message should be visible");
|
||||||
|
is(get_node(addon, "pending").textContent, "Test add-on 7 will be disabled after you restart " + gApp + ".", "Pending message should be correct");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -305,7 +343,7 @@ add_test(function() {
|
||||||
gCategoryUtilities.openType("plugin", function() {
|
gCategoryUtilities.openType("plugin", function() {
|
||||||
gCategoryUtilities.openType("extension", function() {
|
gCategoryUtilities.openType("extension", function() {
|
||||||
let items = get_test_items();
|
let items = get_test_items();
|
||||||
is(items.length, 6, "Should be six add-ons installed");
|
is(items.length, 7, "Should be seven add-ons installed");
|
||||||
|
|
||||||
info("Addon 1");
|
info("Addon 1");
|
||||||
let addon = items[0];
|
let addon = items[0];
|
||||||
|
@ -447,6 +485,39 @@ add_test(function() {
|
||||||
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
|
info("Addon 7");
|
||||||
|
addon = items[6];
|
||||||
|
addon.parentNode.ensureElementIsVisible(addon);
|
||||||
|
is(get_node(addon, "name").value, "Test add-on 7", "Name should be correct");
|
||||||
|
|
||||||
|
is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible");
|
||||||
|
is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_hidden(get_node(addon, "warning"), "Warning message should be visible");
|
||||||
|
is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "pending"), "Pending message should be visible");
|
||||||
|
is(get_node(addon, "pending").textContent, "Test add-on 7 will be disabled after you restart " + gApp + ".", "Pending message should be correct");
|
||||||
|
|
||||||
|
info("Undoing");
|
||||||
|
EventUtils.synthesizeMouse(get_node(addon, "undo"), 2, 2, {}, gManagerWindow);
|
||||||
|
is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden");
|
||||||
|
is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible");
|
||||||
|
is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible");
|
||||||
|
|
||||||
|
is_element_visible(get_node(addon, "warning"), "Warning message should be hidden");
|
||||||
|
is(get_node(addon, "warning").textContent, "An important update is available for Test add-on 7.", "Warning message should be correct");
|
||||||
|
is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible");
|
||||||
|
is(get_node(addon, "warning-link").value, "Update Now", "Warning link text should be correct");
|
||||||
|
is(get_node(addon, "warning-link").href, gPluginURL, "Warning link should be correct");
|
||||||
|
is_element_hidden(get_node(addon, "error"), "Error message should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden");
|
||||||
|
is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Загрузка…
Ссылка в новой задаче