aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.7/packages/api-utils/lib/channel.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.7/packages/api-utils/lib/channel.js')
-rw-r--r--tools/addon-sdk-1.7/packages/api-utils/lib/channel.js46
1 files changed, 0 insertions, 46 deletions
diff --git a/tools/addon-sdk-1.7/packages/api-utils/lib/channel.js b/tools/addon-sdk-1.7/packages/api-utils/lib/channel.js
deleted file mode 100644
index a888af8..0000000
--- a/tools/addon-sdk-1.7/packages/api-utils/lib/channel.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* 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/. */
-
-const { jetpackID } = require('@packaging');
-const { when } = require('./unload');
-
-// TODO: Create a bug report and remove this workaround once it's fixed.
-// Only function needs defined in the context of the message manager window
-// can be registered via `addMessageListener`.
-function listener(callee) {
- return function listener() { return callee.apply(this, arguments); };
-}
-function messageListener(scope, callee) {
- return scope ? scope.eval('(' + listener + ')')(callee) : callee
-}
-
-exports.channel = function channel(scope, messageManager, address, raw) {
- address = jetpackID + ':' + address
- return {
- input: function input(next, stop) {
- let listener = messageListener(scope, function onMessage(message) {
- if (false === next(raw ? message : message.json) && listener) {
- messageManager.removeMessageListener(address, listener);
- listener = null;
- }
- });
- messageManager.addMessageListener(address, listener);
-
- // Bug 724433: do not leak `listener` on addon disabling
- when(function () {
- if (listener) {
- messageManager.removeMessageListener(address, listener);
- listener = null;
- }
- });
- },
- output: function output(data) {
- messageManager.sendAsyncMessage(address, data);
- },
- sync: !messageManager.sendSyncMessage ? null : function sync(data) {
- messageManager.sendSyncMessage(address, data);
- }
- };
-};
-