| Index: lib/child/bootstrap.js |
| =================================================================== |
| --- a/lib/child/bootstrap.js |
| +++ b/lib/child/bootstrap.js |
| @@ -20,18 +20,16 @@ |
| const Cc = Components.classes; |
| const Ci = Components.interfaces; |
| const Cr = Components.results; |
| const Cu = Components.utils; |
| let {Loader, main, unload} = Cu.import("resource://gre/modules/commonjs/toolkit/loader.js", {}); |
| let {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
| - let loader = null; |
| - |
| let shutdownHandlers = []; |
| let onShutdown = |
| { |
| done: false, |
| add: function(handler) |
| { |
| if (shutdownHandlers.indexOf(handler) < 0) |
| shutdownHandlers.push(handler); |
| @@ -39,59 +37,24 @@ |
| remove: function(handler) |
| { |
| let index = shutdownHandlers.indexOf(handler); |
| if (index >= 0) |
| shutdownHandlers.splice(index, 1); |
| } |
| }; |
| - let callbackPrefix = Services.appinfo.processID + " "; |
| - let maxCallbackID = 0; |
| - let callbacks = new Map(); |
| - |
| - function sendSyncMessageSingleResponse(messageName, data) |
| - { |
| - return sendRpcMessage(messageName, {data})[0]; |
| - } |
| - |
| - function sendAsyncMessageWithResponse(messageName, data, callback) |
| - { |
| - data = {data}; |
| - if (callback) |
| - { |
| - let callbackID = callbackPrefix + (++maxCallbackID); |
| - callbacks.set(callbackID, callback); |
| - data.callbackID = callbackID; |
| - } |
| - sendAsyncMessage(messageName, data); |
| - } |
| - |
| - function onResponse(message) |
| - { |
| - let {callbackID, response} = message.data; |
| - if (callbacks.has(callbackID)) |
| - { |
| - let callback = callbacks.get(callbackID); |
| - callbacks.delete(callbackID); |
| - callback(response); |
| - } |
| - } |
| - |
| function init(info) |
| { |
| - loader = Loader({ |
| + let loader = Loader({ |
| paths: { |
| "": info.addonRoot + "lib/" |
| }, |
| globals: { |
| - Components, Cc, Ci, Cu, Cr, atob, btoa, onShutdown, |
| - addMessageListener, removeMessageListener, |
| - sendAsyncMessage: sendAsyncMessageWithResponse, |
| - sendSyncMessage: sendSyncMessageSingleResponse |
| + Components, Cc, Ci, Cu, Cr, atob, btoa, onShutdown |
| }, |
| modules: {"info": info, "messageManager": this}, |
| id: info.addonID |
| }); |
| onShutdown.add(() => unload(loader, "disable")) |
| main(loader, "child/main"); |
| } |
| @@ -111,16 +74,17 @@ |
| { |
| Cu.reportError(e); |
| } |
| } |
| shutdownHandlers = null; |
| } |
| } |
| - sendAsyncMessageWithResponse("AdblockPlus:GetInfo", null, init); |
| - addMessageListener("AdblockPlus:Response", onResponse); |
| addMessageListener("AdblockPlus:Shutdown", shutdown); |
| - onShutdown.add(() => { |
| - removeMessageListener("AdblockPlus:Response", onResponse); |
| + onShutdown.add(() => |
| + { |
| removeMessageListener("AdblockPlus:Shutdown", shutdown); |
| }); |
| + |
| + let param = Components.stack.filename.split("#", 2)[1]; |
| + init(JSON.parse(decodeURIComponent(param))); |
| })(); |