Есть ли API для отключения/включения расширения Firefox?

Есть ли вызов API, позволяющий включать/отключать надстройку Firefox?


person DVK    schedule 13.01.2010    source источник


Ответы (2)


Вы хотите использовать nsIExtensionManager. интерфейс.

person sdwilsh    schedule 13.01.2010
comment
Похоже, что сейчас эта ссылка не работает, но она частично описана на этой странице. Имейте в виду, что это несовместимо с Fx 4. - person Paul Lammertsma; 28.11.2010
comment
(и очень жаль, что я не могу удалить принятый ответ, который принадлежит мне) - person sdwilsh; 01.12.2010

Начиная с Firefox 4, это можно сделать через AddonManager.

Например, чтобы отключить надстройку:

AddonManager.getAddonByID(id, function(addon) {
    addon.userDisabled = true;
});

Для поддержки Gecko ‹= 1.9.1 и > 1.9.1:

var man = Components.classes["@mozilla.org/extensions/manager;1"];
if (man) {
    man = man.getService(Components.interfaces.nsIExtensionManager);
}
if (man) {
    man.disableItem(id);
} else {
    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID(id, function(addon) {
        addon.userDisabled = true;
    });
}
person Paul Lammertsma    schedule 28.11.2010