observer-service
The observer-service module provides access to the
application-wide observer service singleton.
For a list of common observer topics across a variety of Mozilla-based applications, see the MDC page on Observer Notifications.
Observer Callbacks
Observer callbacks are functions of the following form:
| 1 2 3 | functioncallback(subject, data) {  /* Respond to the event notification here... */} | 
In the above example, subject is any JavaScript object, as is
data.  The particulars of what the two contain are specific
to the notification topic.
API Reference
Functions
add(topic, callback, thisObject)
Adds an observer callback to be triggered whenever a notification matching the topic is broadcast throughout the application.
The topic to observe.
Either a function or an object that implements nsIObserver.
If a function, then it is called when the notification occurs.  If an object,
then its observe() method is called when the notification occurs.
An optional object to use as this when a function callback is called.
remove(topic, callback, thisObject)
Unsubscribes a callback from being triggered whenever a notification matching the topic is broadcast throughout the application.
The topic being observed by the previous call to add().
The callback subscribed in the previous call to add(), either a function or
object.
If thisObject was passed to the previous call to add(), it should be
passed to remove() as well.
notify(topic, subject)
Broadcasts a notification event for a topic, passing a subject and data to all applicable observers in the application.
The topic about which to broadcast a notification.
Optional information about the topic.  This can be any JS object or primitive.
If you have multiple values to pass to observers, wrap them in an object,
e.g., { foo: 1, bar: "some string", baz: myObject }.
