| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, |  | 
| 3  * Copyright (C) 2006-2016 Eyeo GmbH |  | 
| 4  * |  | 
| 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 |  | 
| 7  * published by the Free Software Foundation. |  | 
| 8  * |  | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, |  | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |  | 
| 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | 
| 12  * GNU General Public License for more details. |  | 
| 13  * |  | 
| 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/>. |  | 
| 16  */ |  | 
| 17 |  | 
| 18 /** |  | 
| 19  * @fileOverview This component manages listeners and calls them to distributes |  | 
| 20  * messages about filter changes. |  | 
| 21  */ |  | 
| 22 |  | 
| 23 /** |  | 
| 24  * List of registered listeners |  | 
| 25  * @type function[] |  | 
| 26  */ |  | 
| 27 let listeners = []; |  | 
| 28 |  | 
| 29 /** |  | 
| 30  * This class allows registering and triggering listeners for filter events. |  | 
| 31  * @class |  | 
| 32  */ |  | 
| 33 let FilterNotifier = exports.FilterNotifier = |  | 
| 34 { |  | 
| 35   /** |  | 
| 36    * Adds a listener |  | 
| 37    */ |  | 
| 38   addListener: function(/**function(action, item, newValue, oldValue)*/ listener
    ) |  | 
| 39   { |  | 
| 40     if (listeners.indexOf(listener) >= 0) |  | 
| 41       return; |  | 
| 42 |  | 
| 43     listeners.push(listener); |  | 
| 44   }, |  | 
| 45 |  | 
| 46   /** |  | 
| 47    * Removes a listener that was previosly added via addListener |  | 
| 48    */ |  | 
| 49   removeListener: function(/**function(action, item, newValue, oldValue)*/ liste
    ner) |  | 
| 50   { |  | 
| 51     let index = listeners.indexOf(listener); |  | 
| 52     if (index >= 0) |  | 
| 53       listeners.splice(index, 1); |  | 
| 54   }, |  | 
| 55 |  | 
| 56   /** |  | 
| 57    * Notifies listeners about an event |  | 
| 58    * @param {String} action event code ("load", "save", "elemhideupdate", |  | 
| 59    *                 "subscription.added", "subscription.removed", |  | 
| 60    *                 "subscription.disabled", "subscription.title", |  | 
| 61    *                 "subscription.lastDownload", "subscription.downloadStatus", |  | 
| 62    *                 "subscription.homepage", "subscription.updated", |  | 
| 63    *                 "filter.added", "filter.removed", "filter.moved", |  | 
| 64    *                 "filter.disabled", "filter.hitCount", "filter.lastHit") |  | 
| 65    * @param {Subscription|Filter} item item that the change applies to |  | 
| 66    */ |  | 
| 67   triggerListeners: function(action, item, param1, param2, param3) |  | 
| 68   { |  | 
| 69     let list = listeners.slice(); |  | 
| 70     for (let listener of list) |  | 
| 71       listener(action, item, param1, param2, param3); |  | 
| 72   } |  | 
| 73 }; |  | 
| OLD | NEW | 
|---|