| Index: toolkit/components/extensions/ext-c-runtime.js | 
| =================================================================== | 
| --- a/toolkit/components/extensions/ext-c-runtime.js | 
| +++ b/toolkit/components/extensions/ext-c-runtime.js | 
| @@ -1,16 +1,38 @@ | 
| "use strict"; | 
| +Components.utils.import("resource://gre/modules/Messaging.jsm"); | 
| + | 
| this.runtime = class extends ExtensionAPI { | 
| getAPI(context) { | 
| let {extension} = context; | 
| return { | 
| runtime: { | 
| + | 
| + // Added functions in order to make possible the communication between | 
| + // the Android part and the extension. | 
| + // See https://issues.adblockplus.org/ticket/6865 | 
| + registerAbbMessageListener: function(listener) { | 
| + EventDispatcher.instance.registerListener((event, data, callback) => | 
| + { | 
| + let result = context.runSafe(listener, data); | 
| + if (result["success"]) { | 
| + callback.onSuccess(result); | 
| + } else { | 
| + let errorMsg = result["error"] ? result["error"] : "An error has ocurred"; | 
| + callback.onError(errorMsg); | 
| + } | 
| + }, "Abb:Api"); | 
| + }, | 
| + sendAbbMessage: function(type) { | 
| + EventDispatcher.instance.sendRequest({"type": "Abb:" + type}); | 
| + }, | 
| + | 
| onConnect: context.messenger.onConnect("runtime.onConnect"), | 
| onMessage: context.messenger.onMessage("runtime.onMessage"), | 
| onConnectExternal: context.messenger.onConnectExternal("runtime.onConnectExternal"), | 
| onMessageExternal: context.messenger.onMessageExternal("runtime.onMessageExternal"), |