aboutsummaryrefslogtreecommitdiffstats
path: root/js/vapi-background.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vapi-background.js')
-rw-r--r--js/vapi-background.js108
1 files changed, 0 insertions, 108 deletions
diff --git a/js/vapi-background.js b/js/vapi-background.js
index 14544cb..6c874f3 100644
--- a/js/vapi-background.js
+++ b/js/vapi-background.js
@@ -69,114 +69,6 @@
}
};
- // Internal message passing mechanism
- vAPI.messaging = {
- get globalMessageManager() {
- return Cc['@mozilla.org/globalmessagemanager;1']
- .getService(Ci.nsIMessageListenerManager);
- },
- frameScript: vAPI.getURL('frameScript.js'),
- listeners: {},
- defaultHandler: null,
- NOOPFUNC: function(){},
- UNHANDLED: 'vAPI.messaging.notHandled'
- };
-
- vAPI.messaging.listen = function (listenerName, callback) {
- this.listeners[listenerName] = callback;
- };
-
- vAPI.messaging.onMessage = function ({target, data}) {
- let messageManager = target.messageManager;
-
- if (!messageManager) {
- // Message came from a popup, and its message manager is
- // not usable. So instead we broadcast to the parent
- // window.
- messageManager =
- vAPI.browser.
- getOwnerWindow(target.webNavigation
- .QueryInterface(Ci.nsIDocShell)
- .chromeEventHandler).messageManager;
- }
-
- let channelNameRaw = data.channelName;
- let pos = channelNameRaw.indexOf('|');
- let channelName = channelNameRaw.slice(pos + 1);
-
- let callback = vAPI.messaging.NOOPFUNC;
- if (data.requestId !== undefined) {
- callback = CallbackWrapper.factory(messageManager,
- channelName,
- channelNameRaw.slice(0, pos),
- data.requestId).callback;
- }
-
- let sender = {
- tab: {
- id: vAPI.tabs.manager.tabIdFromTarget(target)
- }
- };
-
- // Specific handler
- let r = vAPI.messaging.UNHANDLED;
- let listener = vAPI.messaging.listeners[channelName];
-
- if (typeof listener === 'function') {
- r = listener(data.msg, sender, callback);
- }
- if (r !== vAPI.messaging.UNHANDLED) {
- return;
- }
-
- // Default handler
- r = vAPI.messaging.defaultHandler(data.msg, sender, callback);
- if (r !== vAPI.messaging.UNHANDLED) {
- return;
- }
-
- console.error('eMatrix> messaging > unknown request: %o', data);
-
- // Unhandled: Need to callback anyways in case caller expected
- // an answer, or else there is a memory leak on caller's side
- callback();
- };
-
- vAPI.messaging.setup = function (defaultHandler) {
- // Already setup?
- if (this.defaultHandler !== null) {
- return;
- }
-
- if (typeof defaultHandler !== 'function') {
- defaultHandler = function () {
- return vAPI.messaging.UNHANDLED;
- };
- }
-
- this.defaultHandler = defaultHandler;
- this.globalMessageManager.addMessageListener(location.host
- + ':background',
- this.onMessage);
- this.globalMessageManager.loadFrameScript(this.frameScript, true);
-
- vAPI.addCleanUpTask(function () {
- let gmm = vAPI.messaging.globalMessageManager;
-
- gmm.removeDelayedFrameScript(vAPI.messaging.frameScript);
- gmm.removeMessageListener(location.host + ':background',
- vAPI.messaging.onMessage);
- });
- };
-
- vAPI.messaging.broadcast = function (message) {
- this.globalMessageManager
- .broadcastAsyncMessage(location.host + ':broadcast',
- JSON.stringify({
- broadcast: true,
- msg: message}));
- };
-
let CallbackWrapper = function (messageManager, channelName,
listenerId, requestId) {
// This allows to avoid creating a closure for every single