зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1297028 Expose Addon.canUninstall flag to content r=bz,rhelmer
MozReview-Commit-ID: Ec6QPj9h9k7 --HG-- extra : rebase_source : 747cb4ce54d5e8d0cc7bc2cc3654471b3b07bfcb
This commit is contained in:
Родитель
268da026f6
Коммит
4297232844
|
@ -24,6 +24,8 @@ interface Addon {
|
||||||
readonly attribute boolean isEnabled;
|
readonly attribute boolean isEnabled;
|
||||||
// If the add-on is currently active in the browser.
|
// If the add-on is currently active in the browser.
|
||||||
readonly attribute boolean isActive;
|
readonly attribute boolean isActive;
|
||||||
|
// If the add-on may be uninstalled
|
||||||
|
readonly attribute boolean canUninstall;
|
||||||
|
|
||||||
Promise<boolean> uninstall();
|
Promise<boolean> uninstall();
|
||||||
Promise<void> setEnabled(boolean value);
|
Promise<void> setEnabled(boolean value);
|
||||||
|
|
|
@ -335,6 +335,7 @@ function webAPIForAddon(addon) {
|
||||||
|
|
||||||
// A few properties are computed for a nicer API
|
// A few properties are computed for a nicer API
|
||||||
result.isEnabled = !addon.userDisabled;
|
result.isEnabled = !addon.userDisabled;
|
||||||
|
result.canUninstall = Boolean(addon.permissions & AddonManager.PERM_CAN_UNINSTALL);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ function testWithAPI(task) {
|
||||||
|
|
||||||
let gProvider = new MockProvider();
|
let gProvider = new MockProvider();
|
||||||
|
|
||||||
gProvider.createAddons([{
|
let addons = gProvider.createAddons([{
|
||||||
id: "addon1@tests.mozilla.org",
|
id: "addon1@tests.mozilla.org",
|
||||||
name: "Test add-on 1",
|
name: "Test add-on 1",
|
||||||
version: "2.1",
|
version: "2.1",
|
||||||
|
@ -41,8 +41,18 @@ gProvider.createAddons([{
|
||||||
type: "extension",
|
type: "extension",
|
||||||
userDisabled: true,
|
userDisabled: true,
|
||||||
isActive: false,
|
isActive: false,
|
||||||
|
}, {
|
||||||
|
id: "addon4@tests.mozilla.org",
|
||||||
|
name: "Test add-on 4",
|
||||||
|
version: "1",
|
||||||
|
description: "Longer description",
|
||||||
|
type: "extension",
|
||||||
|
userDisabled: false,
|
||||||
|
isActive: true,
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
addons[3].permissions &= ~AddonManager.PERM_CAN_UNINSTALL;
|
||||||
|
|
||||||
function API_getAddonByID(browser, id) {
|
function API_getAddonByID(browser, id) {
|
||||||
return ContentTask.spawn(browser, id, function*(id) {
|
return ContentTask.spawn(browser, id, function*(id) {
|
||||||
let addon = yield content.navigator.mozAddonManager.getAddonByID(id);
|
let addon = yield content.navigator.mozAddonManager.getAddonByID(id);
|
||||||
|
@ -67,6 +77,10 @@ add_task(testWithAPI(function*(browser) {
|
||||||
case "isEnabled":
|
case "isEnabled":
|
||||||
realVal = !real.userDisabled;
|
realVal = !real.userDisabled;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "canUninstall":
|
||||||
|
realVal = Boolean(real.permissions & AddonManager.PERM_CAN_UNINSTALL);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// null and undefined don't compare well so stringify them first
|
// null and undefined don't compare well so stringify them first
|
||||||
|
|
Загрузка…
Ссылка в новой задаче