Components.utils.import("resource://gre/modules/Services.jsm"); var permChangedObs = { observe: function(subject, topic, data) { if (topic == 'perm-changed') { var permission = subject.QueryInterface(Components.interfaces.nsIPermission); var msg = { op: data, type: permission.type }; sendAsyncMessage('perm-changed', msg); } } }; Services.obs.addObserver(permChangedObs, 'perm-changed', false);