Experimental
Register callbacks that are called when a module is unloaded.
Globals
Functions
ensure(object, name)
Calling ensure()
on an object does two things:
- It replaces a destructor method with a wrapper method that will never call the destructor more than once.
- It ensures that this wrapper method is called when the object's module is unloaded.
Therefore, when you register an object with ensure()
, you can call its destructor method yourself, you can let it happen for you, or you can do both.
The destructor will be called with a single argument describing the reason for the unload; see when()
. If object
does not have the expected destructor method, then an exception is thrown when ensure()
is called.
Parameters
object : object
An object that defines a destructor method.
name : string
Optional name of the destructor method. Default is unload
.
when(callback)
Registers a function to be called when the module is unloaded.
Parameters
callback : function
A function that will be called when the module is unloaded. It is called with a single argument, one of the following strings describing the reason for unload: "uninstall"
, "disable"
, "shutdown"
, "upgrade"
, or "downgrade"
. If a reason could not be determined, undefined
will be passed instead. Note that if an add-on is unloaded with reason "disable"
, it will not be notified about "uninstall"
while it is disabled. See bug 571049.