| 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 Element hiding emulation implementation. | 21  * @fileOverview Element hiding emulation implementation. | 
| 22  */ | 22  */ | 
| 23 | 23 | 
|  | 24 const {ElemHideTemplate} = require("./elemHide"); | 
| 24 const {ElemHideExceptions} = require("./elemHideExceptions"); | 25 const {ElemHideExceptions} = require("./elemHideExceptions"); | 
| 25 const {Filter} = require("./filterClasses"); |  | 
| 26 |  | 
| 27 let filters = new Set(); |  | 
| 28 | 26 | 
| 29 /** | 27 /** | 
| 30  * Container for element hiding emulation filters | 28  * Container for element hiding emulation filters | 
| 31  * @class | 29  * @class | 
| 32  */ | 30  */ | 
| 33 let ElemHideEmulation = { | 31 exports.ElemHideEmulation = Object.assign(new ElemHideTemplate(), { | 
| 34   /** |  | 
| 35    * Removes all known filters |  | 
| 36    */ |  | 
| 37   clear() |  | 
| 38   { |  | 
| 39     filters.clear(); |  | 
| 40   }, |  | 
| 41 |  | 
| 42   /** |  | 
| 43    * Add a new element hiding emulation filter |  | 
| 44    * @param {ElemHideEmulationFilter} filter |  | 
| 45    */ |  | 
| 46   add(filter) |  | 
| 47   { |  | 
| 48     filters.add(filter.text); |  | 
| 49   }, |  | 
| 50 |  | 
| 51   /** |  | 
| 52    * Removes an element hiding emulation filter |  | 
| 53    * @param {ElemHideEmulationFilter} filter |  | 
| 54    */ |  | 
| 55   remove(filter) |  | 
| 56   { |  | 
| 57     filters.delete(filter.text); |  | 
| 58   }, |  | 
| 59 |  | 
| 60   /** | 32   /** | 
| 61    * Returns a list of all rules active on a particular domain | 33    * Returns a list of all rules active on a particular domain | 
| 62    * @param {string} domain | 34    * @param {string} domain | 
| 63    * @return {ElemHideEmulationFilter[]} | 35    * @return {ElemHideEmulationFilter[]} | 
| 64    */ | 36    */ | 
| 65   getRulesForDomain(domain) | 37   getRulesForDomain(domain) | 
| 66   { | 38   { | 
| 67     let result = []; | 39     let result = []; | 
| 68     for (let text of filters.values()) | 40     for (let filter of this._knownFilters) | 
| 69     { | 41     { | 
| 70       let filter = Filter.fromText(text); |  | 
| 71       if (filter.isActiveOnDomain(domain) && | 42       if (filter.isActiveOnDomain(domain) && | 
| 72           !ElemHideExceptions.getException(filter, domain)) | 43           !ElemHideExceptions.getException(filter, domain)) | 
| 73       { | 44       { | 
| 74         result.push(filter); | 45         result.push(filter); | 
| 75       } | 46       } | 
| 76     } | 47     } | 
| 77     return result; | 48     return result; | 
| 78   } | 49   } | 
| 79 }; | 50 }); | 
| 80 exports.ElemHideEmulation = ElemHideEmulation; |  | 
| OLD | NEW | 
|---|