Я нашел где и расширение способен удалить добавочные B: Uninstall/Remove Firefox Extension programmatically?Можно ли удалить расширение Firefox?
Интересно, если тот же метод будет также работать на расширение, чтобы удалить себя (например, если он чувствует превосходное расширение, заменяет его)? Следующий кодом является моей простой адаптацией ответа на выше связанный вопрос:
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("[email protected]", function(betteraddon) {
if (betteraddon) {
AddonManager.getAddonById("[email protected]", function(thisaddon) {
if (!thisaddon) {
// this Add-on not present? Should not happen ...
return;
}
if (!(thisaddon.permissions & AddonManager.PERM_CAN_UNINSTALL)) {
// Add-on cannot be uninstalled
return;
}
thisaddon.uninstall();
if (thisaddon.pendingOperations & AddonManager.PENDING_UNINSTALL) {
// Need to restart to finish the uninstall.
// Might ask the user to do just that. Or not ask and just do.
// Or just wait until the browser is restarted by the user.
}
});
}
});
Это звучит опасно, как самостоятельно удалить аддон по крайней мере, ожидая возвращения на вызов от своего собственного удаления ... Но действительно ли такой подход настолько опасен? В конце концов, в настоящее время деинсталляция даже отменена, а это значит, что удаленный аддон «все еще существует» на некоторое время.?
Похоже, ваш вопрос можно ответить просто попробовать его. Итак, что случилось, когда вы попробовали? – Makyen
@Makyen Что-то, что работает, когда я пытаюсь это сделать на моей собственной машине в моей собственной среде, может все еще терпеть неудачу в условиях, не находящихся под моим контролем (например, условий гонки) –