| 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-present eyeo GmbH | 3  * Copyright (C) 2006-present 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  * @fileOverview This component manages listeners and calls them to distributes | 21  * @fileOverview This component manages listeners and calls them to distributes | 
| 22  * messages about filter changes. | 22  * messages about filter changes. | 
| 23  */ | 23  */ | 
| 24 | 24 | 
| 25 const {EventEmitter} = require("./events"); | 25 const {EventEmitter} = require("./events"); | 
| 26 const {desc} = require("./coreUtils"); |  | 
| 27 |  | 
| 28 const CATCH_ALL = "__all"; |  | 
| 29 |  | 
| 30 /** |  | 
| 31  * @callback FilterNotifierCatchAllListener |  | 
| 32  * @param {string} action |  | 
| 33  * @param {Subscription|Filter} item |  | 
| 34  * @param {...*} additionalInfo |  | 
| 35  */ |  | 
| 36 | 26 | 
| 37 /** | 27 /** | 
| 38  * This class allows registering and triggering listeners for filter events. | 28  * This class allows registering and triggering listeners for filter events. | 
| 39  * @class | 29  * @class | 
| 40  */ | 30  */ | 
| 41 exports.FilterNotifier = Object.create(new EventEmitter(), desc({ | 31 exports.FilterNotifier = Object.create(new EventEmitter()); | 
| 42   /** |  | 
| 43    * Adds a listener |  | 
| 44    * |  | 
| 45    * @deprecated use FilterNotifier.on(action, callback) |  | 
| 46    * @param {FilterNotifierCatchAllListener} listener |  | 
| 47    */ |  | 
| 48   addListener(listener) |  | 
| 49   { |  | 
| 50     let listeners = this._listeners.get(CATCH_ALL); |  | 
| 51     if (!listeners || listeners.indexOf(listener) == -1) |  | 
| 52       this.on(CATCH_ALL, listener); |  | 
| 53   }, |  | 
| 54 |  | 
| 55   /** |  | 
| 56    * Removes a listener that was previosly added via addListener |  | 
| 57    * |  | 
| 58    * @deprecated use FilterNotifier.off(action, callback) |  | 
| 59    * @param {FilterNotifierCatchAllListener} listener |  | 
| 60    */ |  | 
| 61   removeListener(listener) |  | 
| 62   { |  | 
| 63     this.off(CATCH_ALL, listener); |  | 
| 64   }, |  | 
| 65 |  | 
| 66   /** |  | 
| 67    * Notifies listeners about an event |  | 
| 68    * @param {string} action event code ("load", "save", "elemhideupdate", |  | 
| 69    *                 "subscription.added", "subscription.removed", |  | 
| 70    *                 "subscription.disabled", "subscription.title", |  | 
| 71    *                 "subscription.lastDownload", "subscription.downloadStatus", |  | 
| 72    *                 "subscription.homepage", "subscription.updated", |  | 
| 73    *                 "filter.added", "filter.removed", "filter.moved", |  | 
| 74    *                 "filter.disabled", "filter.hitCount", "filter.lastHit") |  | 
| 75    * @param {Subscription|Filter} item item that the change applies to |  | 
| 76    * @param {*} param1 |  | 
| 77    * @param {*} param2 |  | 
| 78    * @param {*} param3 |  | 
| 79    * @deprecated use FilterNotifier.emit(action) |  | 
| 80    */ |  | 
| 81   triggerListeners(action, item, param1, param2, param3) |  | 
| 82   { |  | 
| 83     this.emit(action, item, param1, param2, param3); |  | 
| 84     this.emit(CATCH_ALL, action, item, param1, param2, param3); |  | 
| 85   } |  | 
| 86 })); |  | 
| OLD | NEW | 
|---|