| 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 /** | 18 /** | 
| 19  * @fileOverview CSS property filtering implementation. | 19  * @fileOverview Element hiding emulation implementation. | 
| 20  */ | 20  */ | 
| 21 | 21 | 
| 22 let {ElemHide} = require("elemHide"); | 22 let {ElemHide} = require("elemHide"); | 
| 23 let {Filter} =  require("filterClasses"); | 23 let {Filter} =  require("filterClasses"); | 
| 24 | 24 | 
| 25 var filters = Object.create(null); | 25 var filters = Object.create(null); | 
| 26 | 26 | 
| 27 /** | 27 /** | 
| 28  * CSS rules component | 28  * Container for element hiding emulation filters | 
| 29  * @class | 29  * @class | 
| 30  */ | 30  */ | 
| 31 let CSSRules = exports.CSSRules = | 31 let ElemHideEmulation = exports.ElemHideEmulation = | 
| 32 { | 32 { | 
| 33   /** | 33   /** | 
| 34    * Removes all known filters | 34    * Removes all known filters | 
| 35    */ | 35    */ | 
| 36   clear: function() | 36   clear: function() | 
| 37   { | 37   { | 
| 38     filters = Object.create(null); | 38     filters = Object.create(null); | 
| 39   }, | 39   }, | 
| 40 | 40 | 
| 41   /** | 41   /** | 
| 42    * Add a new CSS property filter | 42    * Add a new element hiding emulation filter | 
| 43    * @param {CSSPropertyFilter} filter | 43    * @param {ElemHideEmulationFilter} filter | 
| 44    */ | 44    */ | 
| 45   add: function(filter) | 45   add: function(filter) | 
| 46   { | 46   { | 
| 47     filters[filter.text] = true; | 47     filters[filter.text] = true; | 
| 48   }, | 48   }, | 
| 49 | 49 | 
| 50   /** | 50   /** | 
| 51    * Removes a CSS property filter | 51    * Removes an element hiding emulation filter | 
| 52    * @param {CSSPropertyFilter} filter | 52    * @param {ElemHideEmulationFilter} filter | 
| 53    */ | 53    */ | 
| 54   remove: function(filter) | 54   remove: function(filter) | 
| 55   { | 55   { | 
| 56     delete filters[filter.text]; | 56     delete filters[filter.text]; | 
| 57   }, | 57   }, | 
| 58 | 58 | 
| 59   /** | 59   /** | 
| 60    * Returns a list of all rules active on a particular domain | 60    * Returns a list of all rules active on a particular domain | 
| 61    * @param {String} domain | 61    * @param {String} domain | 
| 62    * @return {CSSPropertyFilter[]} | 62    * @return {ElemHideEmulationFilter[]} | 
| 63    */ | 63    */ | 
| 64   getRulesForDomain: function(domain) | 64   getRulesForDomain: function(domain) | 
| 65   { | 65   { | 
| 66     let result = []; | 66     let result = []; | 
| 67     let keys = Object.getOwnPropertyNames(filters); | 67     let keys = Object.getOwnPropertyNames(filters); | 
| 68     for (let key of keys) | 68     for (let key of keys) | 
| 69     { | 69     { | 
| 70       let filter = Filter.fromText(key); | 70       let filter = Filter.fromText(key); | 
| 71       if (filter.isActiveOnDomain(domain) && !ElemHide.getException(filter, doma
    in)) | 71       if (filter.isActiveOnDomain(domain) && !ElemHide.getException(filter, doma
    in)) | 
| 72         result.push(filter); | 72         result.push(filter); | 
| 73     } | 73     } | 
| 74     return result; | 74     return result; | 
| 75   } | 75   } | 
| 76 }; | 76 }; | 
| OLD | NEW | 
|---|