| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <https://adblockplus.org/>, |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-2015 Eyeo GmbH |    3  * Copyright (C) 2006-2015 Eyeo GmbH | 
|    4  * |    4  * | 
|    5  * Adblock Plus is free software: you can redistribute it and/or modify |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
|    6  * it under the terms of the GNU General Public License version 3 as |    6  * it under the terms of the GNU General Public License version 3 as | 
|    7  * published by the Free Software Foundation. |    7  * published by the Free Software Foundation. | 
|    8  * |    8  * | 
|    9  * Adblock Plus is distributed in the hope that it will be useful, |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|   12  * GNU General Public License for more details. |   12  * GNU General Public License for more details. | 
|   13  * |   13  * | 
|   14  * You should have received a copy of the GNU General Public License |   14  * You should have received a copy of the GNU General Public License | 
|   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|   16  */ |   16  */ | 
|   17  |   17  | 
|   18 /** |   18 /** | 
|   19  * @fileOverview Stores Adblock Plus data to be attached to a window. |   19  * @fileOverview Stores Adblock Plus data to be attached to a window. | 
|   20  */ |   20  */ | 
|   21  |   21  | 
 |   22 let {Utils} = require("utils"); | 
 |   23  | 
|   22 let windowSelection = new WeakMap(); |   24 let windowSelection = new WeakMap(); | 
|   23 let requestNotifierMaxId = 0; |   25 let requestNotifierMaxId = 0; | 
|   24  |   26  | 
|   25 /** |   27 /** | 
|   26  * Active RequestNotifier instances by their ID |   28  * Active RequestNotifier instances by their ID | 
|   27  * @type Map.<number,RequestNotifier> |   29  * @type Map.<number,RequestNotifier> | 
|   28  */ |   30  */ | 
|   29 let notifiers = new Map(); |   31 let notifiers = new Map(); | 
|   30  |   32  | 
|   31 let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"] |   33 let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"] | 
|   32                        .getService(Ci.nsIMessageListenerManager) |   34                        .getService(Ci.nsIMessageListenerManager) | 
|   33                        .QueryInterface(Ci.nsIMessageBroadcaster); |   35                        .QueryInterface(Ci.nsIMessageBroadcaster); | 
|   34 messageManager.addMessageListener("AdblockPlus:FoundNodeData", onNodeData); |  | 
|   35 messageManager.addMessageListener("AdblockPlus:ScanComplete", onScanComplete); |  | 
|   36  |   36  | 
|   37 onShutdown.add(() => { |   37 Utils.addChildMessageListener("AdblockPlus:FoundNodeData", onNodeData); | 
|   38   messageManager.removeMessageListener("AdblockPlus:FoundNodeData", onNodeData); |   38 Utils.addChildMessageListener("AdblockPlus:ScanComplete", onScanComplete); | 
|   39   messageManager.removeMessageListener("AdblockPlus:ScanComplete", onScanComplet
     e); |  | 
|   40 }); |  | 
|   41  |   39  | 
|   42 function onNodeData(message) |   40 function onNodeData({notifierID, data}) | 
|   43 { |   41 { | 
|   44   let {notifierID, data} = message.data; |  | 
|   45   let notifier = notifiers.get(notifierID); |   42   let notifier = notifiers.get(notifierID); | 
|   46   if (notifier) |   43   if (notifier) | 
|   47     notifier.notifyListener(data); |   44     notifier.notifyListener(data); | 
|   48 } |   45 } | 
|   49  |   46  | 
|   50 function onScanComplete(message) |   47 function onScanComplete(notifierID) | 
|   51 { |   48 { | 
|   52   let notifier = notifiers.get(message.data); |   49   let notifier = notifiers.get(notifierID); | 
|   53   if (notifier) |   50   if (notifier) | 
|   54     notifier.onComplete(); |   51     notifier.onComplete(); | 
|   55 } |   52 } | 
|   56  |   53  | 
|   57 /** |   54 /** | 
|   58  * Creates a notifier object for a particular window. After creation the window |   55  * Creates a notifier object for a particular window. After creation the window | 
|   59  * will first be scanned for previously saved requests. Once that scan is |   56  * will first be scanned for previously saved requests. Once that scan is | 
|   60  * complete only new requests for this window will be reported. |   57  * complete only new requests for this window will be reported. | 
|   61  * @param {Integer} outerWindowID  ID of the window to attach the notifier to |   58  * @param {Integer} outerWindowID  ID of the window to attach the notifier to | 
|   62  * @param {Function} listener  listener to be called whenever a new request is f
     ound |   59  * @param {Function} listener  listener to be called whenever a new request is f
     ound | 
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  190       node = node.parentNode; |  187       node = node.parentNode; | 
|  191     } |  188     } | 
|  192     else |  189     else | 
|  193     { |  190     { | 
|  194       node = null; |  191       node = null; | 
|  195     } |  192     } | 
|  196   } |  193   } | 
|  197  |  194  | 
|  198   return null; |  195   return null; | 
|  199 }; |  196 }; | 
| OLD | NEW |