diff options
Diffstat (limited to 'b2g/components/SystemMessageInternal.js')
-rw-r--r-- | b2g/components/SystemMessageInternal.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/b2g/components/SystemMessageInternal.js b/b2g/components/SystemMessageInternal.js new file mode 100644 index 000000000..287496a50 --- /dev/null +++ b/b2g/components/SystemMessageInternal.js @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const Cc = Components.classes; +const Ci = Components.interfaces; +const Cu = Components.utils; +const Cr = Components.results; + +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/SystemAppProxy.jsm"); + +function debug(aMsg) { + dump("-- SystemMessageInternal " + Date.now() + " : " + aMsg + "\n"); +} + +// Implementation of the component used by internal users. + +function SystemMessageInternal() { +} + +SystemMessageInternal.prototype = { + + sendMessage: function(aType, aMessage, aPageURI, aManifestURI, aExtra) { + debug(`sendMessage ${aType} ${aMessage} ${aPageURI} ${aExtra}`); + SystemAppProxy._sendCustomEvent("mozSystemMessage", { + action: "send", + type: aType, + message: aMessage, + pageURI: aPageURI, + extra: aExtra + }); + return Promise.resolve(); + }, + + broadcastMessage: function(aType, aMessage, aExtra) { + debug(`broadcastMessage ${aType} ${aMessage} ${aExtra}`); + SystemAppProxy._sendCustomEvent("mozSystemMessage", { + action: "broadcast", + type: aType, + message: aMessage, + extra: aExtra + }); + return Promise.resolve(); + }, + + registerPage: function(aType, aPageURI, aManifestURI) { + SystemAppProxy._sendCustomEvent("mozSystemMessage", { + action: "register", + type: aType, + pageURI: aPageURI + }); + debug(`registerPage ${aType} ${aPageURI} ${aManifestURI}`); + }, + + classID: Components.ID("{70589ca5-91ac-4b9e-b839-d6a88167d714}"), + + QueryInterface: XPCOMUtils.generateQI([Ci.nsISystemMessagesInternal]) +} + +this.NSGetFactory = XPCOMUtils.generateNSGetFactory([SystemMessageInternal]); |