| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 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 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 let nodeData = new WeakMap(); | 27 let nodeData = new WeakMap(); |
| 28 let windowStats = new WeakMap(); | 28 let windowStats = new WeakMap(); |
| 29 let windowSelection = new WeakMap(); | 29 let windowSelection = new WeakMap(); |
| 30 | 30 |
| 31 let setEntry, hasEntry, getEntry; | 31 let setEntry, hasEntry, getEntry; |
| 32 if (false) | 32 if (false) |
| 33 { | 33 { |
| 34 // This branch can be enabled again once all of bug 673468, bug 819131 and | 34 // This branch can be enabled again once all of bug 673468, bug 819131 and |
| 35 // bug 982561 are fixed and we can use weak maps. | 35 // bug 982561 are fixed and we can use weak maps. |
| 36 setEntry = function(map, key, value) map.set(key, value); | 36 setEntry = function(map, key, value) { map.set(key, value); }; |
| 37 hasEntry = function(map, key) map.has(key); | 37 hasEntry = function(map, key) { return map.has(key); }; |
| 38 getEntry = function(map, key) map.get(key); | 38 getEntry = function(map, key) { return map.get(key); }; |
| 39 } | 39 } |
| 40 else | 40 else |
| 41 { | 41 { |
| 42 // Fall back to user data | 42 // Fall back to user data |
| 43 let dataSeed = Math.random(); | 43 let dataSeed = Math.random(); |
| 44 let nodeDataProp = "abpNodeData" + dataSeed; | 44 let nodeDataProp = "abpNodeData" + dataSeed; |
| 45 let windowStatsProp = "abpWindowStats" + dataSeed; | 45 let windowStatsProp = "abpWindowStats" + dataSeed; |
| 46 let windowSelectionProp = "abpWindowSelection" + dataSeed; | 46 let windowSelectionProp = "abpWindowSelection" + dataSeed; |
| 47 let getProp = function(map) | 47 let getProp = function(map) |
| 48 { | 48 { |
| 49 switch (map) | 49 switch (map) |
| 50 { | 50 { |
| 51 case nodeData: | 51 case nodeData: |
| 52 return nodeDataProp; | 52 return nodeDataProp; |
| 53 case windowStats: | 53 case windowStats: |
| 54 return windowStatsProp; | 54 return windowStatsProp; |
| 55 case windowSelection: | 55 case windowSelection: |
| 56 return windowSelectionProp; | 56 return windowSelectionProp; |
| 57 default: | 57 default: |
| 58 return null; | 58 return null; |
| 59 } | 59 } |
| 60 }; | 60 }; |
| 61 | 61 |
| 62 setEntry = function(map, key, value) key.setUserData(getProp(map), value, null
); | 62 setEntry = function(map, key, value) { |
| 63 hasEntry = function(map, key) key.getUserData(getProp(map)); | 63 key.setUserData(getProp(map), value, null); |
| 64 getEntry = function(map, key) key.getUserData(getProp(map)) || undefined; | 64 }; |
| 65 hasEntry = function(map, key) { |
| 66 return key.getUserData(getProp(map)); |
| 67 }; |
| 68 getEntry = function(map, key) { |
| 69 return key.getUserData(getProp(map)) || undefined; |
| 70 }; |
| 65 } | 71 } |
| 66 | 72 |
| 67 /** | 73 /** |
| 68 * List of notifiers in use - these notifiers need to receive notifications on | 74 * List of notifiers in use - these notifiers need to receive notifications on |
| 69 * new requests. | 75 * new requests. |
| 70 * @type RequestNotifier[] | 76 * @type RequestNotifier[] |
| 71 */ | 77 */ |
| 72 let activeNotifiers = []; | 78 let activeNotifiers = []; |
| 73 | 79 |
| 74 /** | 80 /** |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 location: null, | 347 location: null, |
| 342 /** | 348 /** |
| 343 * Filter that was applied to this request (if any) | 349 * Filter that was applied to this request (if any) |
| 344 * @type Filter | 350 * @type Filter |
| 345 */ | 351 */ |
| 346 filter: null, | 352 filter: null, |
| 347 /** | 353 /** |
| 348 * String representation of the content type, e.g. "subdocument" | 354 * String representation of the content type, e.g. "subdocument" |
| 349 * @type String | 355 * @type String |
| 350 */ | 356 */ |
| 351 get typeDescr() require("contentPolicy").Policy.typeDescr[this.type], | 357 get typeDescr() { return require("contentPolicy").Policy.typeDescr[this.type];
}, |
| 352 /** | 358 /** |
| 353 * User-visible localized representation of the content type, e.g. "frame" | 359 * User-visible localized representation of the content type, e.g. "frame" |
| 354 * @type String | 360 * @type String |
| 355 */ | 361 */ |
| 356 get localizedDescr() require("contentPolicy").Policy.localizedDescr[this.type]
, | 362 get localizedDescr() { return require("contentPolicy").Policy.localizedDescr[t
his.type]; }, |
| 357 | 363 |
| 358 /** | 364 /** |
| 359 * Attaches this request object to a DOM node. | 365 * Attaches this request object to a DOM node. |
| 360 */ | 366 */ |
| 361 attachToNode: function(/**Node*/ node) | 367 attachToNode: function(/**Node*/ node) |
| 362 { | 368 { |
| 363 let existingData = getEntry(nodeData, node); | 369 let existingData = getEntry(nodeData, node); |
| 364 if (typeof existingData == "undefined") | 370 if (typeof existingData == "undefined") |
| 365 { | 371 { |
| 366 existingData = {}; | 372 existingData = {}; |
| 367 setEntry(nodeData, node, existingData); | 373 setEntry(nodeData, node, existingData); |
| 368 } | 374 } |
| 369 | 375 |
| 370 // Add this request to the node data | 376 // Add this request to the node data |
| 371 existingData[this.type + " " + this.location] = this; | 377 existingData[this.type + " " + this.location] = this; |
| 372 } | 378 } |
| 373 }; | 379 }; |
| OLD | NEW |