| 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-2016 Eyeo GmbH | 3  * Copyright (C) 2006-2016 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 "use strict"; | 18 "use strict"; | 
| 19 | 19 | 
| 20 { | 20 { | 
|  | 21   /* eslint-disable no-var */ | 
| 21   var ext = {}; | 22   var ext = {}; | 
|  | 23   /* eslint-enable no-var */ | 
| 22 | 24 | 
| 23   let EventTarget = ext._EventTarget = function() | 25   let EventTarget = ext._EventTarget = function() | 
| 24   { | 26   { | 
| 25     this._listeners = []; | 27     this._listeners = []; | 
| 26   }; | 28   }; | 
| 27   EventTarget.prototype = { | 29   EventTarget.prototype = { | 
| 28     addListener(listener) | 30     addListener(listener) | 
| 29     { | 31     { | 
| 30       if (this._listeners.indexOf(listener) == -1) | 32       if (this._listeners.indexOf(listener) == -1) | 
| 31         this._listeners.push(listener); | 33         this._listeners.push(listener); | 
| 32     }, | 34     }, | 
| 33     removeListener(listener) | 35     removeListener(listener) | 
| 34     { | 36     { | 
| 35       let idx = this._listeners.indexOf(listener); | 37       let idx = this._listeners.indexOf(listener); | 
| 36       if (idx != -1) | 38       if (idx != -1) | 
| 37         this._listeners.splice(idx, 1); | 39         this._listeners.splice(idx, 1); | 
| 38     }, | 40     }, | 
| 39     _dispatch() | 41     _dispatch(...args) | 
| 40     { | 42     { | 
| 41       let results = []; | 43       let results = []; | 
| 42       let listeners = this._listeners.slice(); | 44       let listeners = this._listeners.slice(); | 
| 43 | 45 | 
| 44       for (let listener of listeners) | 46       for (let listener of listeners) | 
| 45         results.push(listener.apply(null, arguments)); | 47         results.push(listener(...args)); | 
| 46 | 48 | 
| 47       return results; | 49       return results; | 
| 48     } | 50     } | 
| 49   }; | 51   }; | 
|  | 52 | 
|  | 53   // Workaround since HTMLCollection and NodeList didn't have iterator support | 
|  | 54   // before Chrome 51. | 
|  | 55   // https://bugs.chromium.org/p/chromium/issues/detail?id=401699 | 
|  | 56   let arrayIterator = Array.prototype[Symbol.iterator]; | 
|  | 57   if (!(Symbol.iterator in HTMLCollection.prototype)) | 
|  | 58     HTMLCollection.prototype[Symbol.iterator] = arrayIterator; | 
|  | 59   if (!(Symbol.iterator in NodeList.prototype)) | 
|  | 60     NodeList.prototype[Symbol.iterator] = arrayIterator; | 
|  | 61 | 
|  | 62   /* Message passing */ | 
|  | 63 | 
|  | 64   ext.onMessage = new ext._EventTarget(); | 
|  | 65 | 
|  | 66 | 
|  | 67   /* Background page */ | 
|  | 68 | 
|  | 69   ext.backgroundPage = { | 
|  | 70     sendMessage: chrome.runtime.sendMessage, | 
|  | 71     getWindow() | 
|  | 72     { | 
|  | 73       return chrome.extension.getBackgroundPage(); | 
|  | 74     } | 
|  | 75   }; | 
|  | 76 | 
|  | 77 | 
|  | 78   /* Utils */ | 
|  | 79 | 
|  | 80   ext.getURL = chrome.extension.getURL; | 
|  | 81   ext.i18n = chrome.i18n; | 
| 50 } | 82 } | 
| OLD | NEW | 
|---|