| 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 | 
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 104     let index = domain.indexOf("."); | 104     let index = domain.indexOf("."); | 
| 105     domain = index == -1 ? "" : domain.substring(index + 1); | 105     domain = index == -1 ? "" : domain.substring(index + 1); | 
| 106   } | 106   } | 
| 107 | 107 | 
| 108   return domain; | 108   return domain; | 
| 109 } | 109 } | 
| 110 | 110 | 
| 111 /** | 111 /** | 
| 112  * Adds a filter to the lookup table of filters by domain. | 112  * Adds a filter to the lookup table of filters by domain. | 
| 113  * @param {Filter} filter | 113  * @param {Filter} filter | 
|  | 114  * @param {?Map.<string,boolean>} [domains] | 
| 114  */ | 115  */ | 
| 115 function addToFiltersByDomain(filter) | 116 function addToFiltersByDomain(filter, domains = filter.domains) | 
| 116 { | 117 { | 
| 117   let domains = filter.domains || defaultDomains; | 118   for (let [domain, isIncluded] of domains || defaultDomains) | 
| 118   for (let [domain, isIncluded] of domains) |  | 
| 119   { | 119   { | 
| 120     // There's no need to note that a filter is generically disabled. | 120     // There's no need to note that a filter is generically disabled. | 
| 121     if (!isIncluded && domain == "") | 121     if (!isIncluded && domain == "") | 
| 122       continue; | 122       continue; | 
| 123 | 123 | 
| 124     let filters = filtersByDomain.get(domain); | 124     let filters = filtersByDomain.get(domain); | 
| 125     if (!filters) | 125     if (!filters) | 
| 126       filtersByDomain.set(domain, filters = new Map()); | 126       filtersByDomain.set(domain, filters = new Map()); | 
| 127     filters.set(filter, isIncluded); | 127     filters.set(filter, isIncluded); | 
| 128   } | 128   } | 
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 278    * Add a new element hiding filter | 278    * Add a new element hiding filter | 
| 279    * @param {ElemHideFilter} filter | 279    * @param {ElemHideFilter} filter | 
| 280    */ | 280    */ | 
| 281   add(filter) | 281   add(filter) | 
| 282   { | 282   { | 
| 283     if (knownFilters.has(filter)) | 283     if (knownFilters.has(filter)) | 
| 284       return; | 284       return; | 
| 285 | 285 | 
| 286     commonStyleSheet = null; | 286     commonStyleSheet = null; | 
| 287 | 287 | 
| 288     let {selector} = filter; | 288     let {domains, selector} = filter; | 
| 289 | 289 | 
| 290     if (!(filter.domains || ElemHideExceptions.hasExceptions(selector))) | 290     if (!(domains || ElemHideExceptions.hasExceptions(selector))) | 
| 291     { | 291     { | 
| 292       // The new filter's selector is unconditionally applied to all domains | 292       // The new filter's selector is unconditionally applied to all domains | 
| 293       filterBySelector.set(selector, filter); | 293       filterBySelector.set(selector, filter); | 
| 294       unconditionalSelectors = null; | 294       unconditionalSelectors = null; | 
| 295       defaultStyleSheet = null; | 295       defaultStyleSheet = null; | 
| 296     } | 296     } | 
| 297     else | 297     else | 
| 298     { | 298     { | 
| 299       // The new filter's selector only applies to some domains | 299       // The new filter's selector only applies to some domains | 
| 300       addToFiltersByDomain(filter); | 300       addToFiltersByDomain(filter, domains); | 
| 301     } | 301     } | 
| 302 | 302 | 
| 303     knownFilters.add(filter); | 303     knownFilters.add(filter); | 
| 304     filterNotifier.emit("elemhideupdate"); | 304     filterNotifier.emit("elemhideupdate"); | 
| 305   }, | 305   }, | 
| 306 | 306 | 
| 307   /** | 307   /** | 
| 308    * Removes an element hiding filter | 308    * Removes an element hiding filter | 
| 309    * @param {ElemHideFilter} filter | 309    * @param {ElemHideFilter} filter | 
| 310    */ | 310    */ | 
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 479 { | 479 { | 
| 480   let styleSheet = ""; | 480   let styleSheet = ""; | 
| 481 | 481 | 
| 482   for (let selectorGroup of splitSelectors(selectors)) | 482   for (let selectorGroup of splitSelectors(selectors)) | 
| 483     styleSheet += createRule(selectorGroup); | 483     styleSheet += createRule(selectorGroup); | 
| 484 | 484 | 
| 485   return styleSheet; | 485   return styleSheet; | 
| 486 } | 486 } | 
| 487 | 487 | 
| 488 exports.createStyleSheet = createStyleSheet; | 488 exports.createStyleSheet = createStyleSheet; | 
| OLD | NEW | 
|---|