mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-05-27 13:28:40 +00:00
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
// An XPCOM service that's registered with the category manager in the parent
|
|
// process for handling push notifications with scope "chrome://test-scope"
|
|
"use strict";
|
|
|
|
const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
|
|
|
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
Cu.import("resource://gre/modules/Services.jsm");
|
|
|
|
let pushService = Cc["@mozilla.org/push/Service;1"].getService(Ci.nsIPushService);
|
|
|
|
function PushServiceHandler() {
|
|
// So JS code can reach into us.
|
|
this.wrappedJSObject = this;
|
|
// Register a push observer.
|
|
this.observed = [];
|
|
Services.obs.addObserver(this, pushService.pushTopic, false);
|
|
Services.obs.addObserver(this, pushService.subscriptionChangeTopic, false);
|
|
Services.obs.addObserver(this, pushService.subscriptionModifiedTopic, false);
|
|
}
|
|
|
|
PushServiceHandler.prototype = {
|
|
classID: Components.ID("{bb7c5199-c0f7-4976-9f6d-1306e32c5591}"),
|
|
QueryInterface: XPCOMUtils.generateQI([]),
|
|
|
|
observe(subject, topic, data) {
|
|
this.observed.push({ subject, topic, data });
|
|
},
|
|
}
|
|
|
|
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PushServiceHandler]);
|