mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-25 18:01:02 +00:00
31 lines
891 B
JavaScript
31 lines
891 B
JavaScript
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
|
|
this.EXPORTED_SYMBOLS = [ "monitor" ];
|
|
|
|
function notify(event, originalMethod, data, reason) {
|
|
let info = {
|
|
event,
|
|
data: Object.assign({}, data, {
|
|
installPath: data.installPath.path,
|
|
resourceURI: data.resourceURI.spec,
|
|
}),
|
|
reason
|
|
};
|
|
|
|
let subject = {wrappedJSObject: {data}};
|
|
|
|
Services.obs.notifyObservers(subject, "bootstrapmonitor-event", JSON.stringify(info));
|
|
|
|
// If the bootstrap scope already declares a method call it
|
|
if (originalMethod)
|
|
originalMethod(data, reason);
|
|
}
|
|
|
|
// Allows a simple one-line bootstrap script:
|
|
// Components.utils.import("resource://xpcshelldata/bootstrapmonitor.jsm").monitor(this);
|
|
this.monitor = function(scope) {
|
|
for (let event of ["install", "startup", "shutdown", "uninstall"]) {
|
|
scope[event] = notify.bind(null, event, scope[event]);
|
|
}
|
|
}
|