1

I'd like to create a simple Firefox extension to write a simple message to the Javascript console when a push notification is received from any site. I see there is a notification show event that seems like it should work although I can't seem to find an example of it in use. Is this possible?

Dave
  • 5,436
  • 11
  • 48
  • 74

1 Answers1

0

I'm not sure that that API would handle your use case because the event is not global. It is placed on the object e.g.

var notify = new Notification("Hi there!").addEventListener('show', e => console.log("We showed it! ", e));

I can't think of a better solution if you want to watch for global events than what is mentioned in https://stackoverflow.com/a/36868084/4875295 -- Monkey Patching!

Copying the code from that answer for posterity:

function setNotificationCallback(callback) {

    const OldNotify = window.Notification;
    const newNotify = (title, opt) => {
        callback(title, opt);
        return new OldNotify(title, opt);
    };
    newNotify.requestPermission = OldNotify.requestPermission.bind(OldNotify);
    Object.defineProperty(newNotify, 'permission', {
        get: () => {
            return OldNotify.permission;
        }
    });

    window.Notification = newNotify;
}
cameck
  • 2,058
  • 20
  • 32