| 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 587 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  598   return patterns.some(pattern => pattern.maybeDependsOnAttributes); |  598   return patterns.some(pattern => pattern.maybeDependsOnAttributes); | 
|  599 } |  599 } | 
|  600  |  600  | 
|  601 function shouldObserveCharacterData(patterns) |  601 function shouldObserveCharacterData(patterns) | 
|  602 { |  602 { | 
|  603   return patterns.some(pattern => pattern.dependsOnCharacterData); |  603   return patterns.some(pattern => pattern.dependsOnCharacterData); | 
|  604 } |  604 } | 
|  605  |  605  | 
|  606 class ElemHideEmulation |  606 class ElemHideEmulation | 
|  607 { |  607 { | 
|  608   constructor(addSelectorsFunc, hideElemsFunc) |  608   constructor(hideElemsFunc) | 
|  609   { |  609   { | 
|  610     this._filteringInProgress = false; |  610     this._filteringInProgress = false; | 
|  611     this._lastInvocation = -MIN_INVOCATION_INTERVAL; |  611     this._lastInvocation = -MIN_INVOCATION_INTERVAL; | 
|  612     this._scheduledProcessing = null; |  612     this._scheduledProcessing = null; | 
|  613  |  613  | 
|  614     this.document = document; |  614     this.document = document; | 
|  615     this.addSelectorsFunc = addSelectorsFunc; |  | 
|  616     this.hideElemsFunc = hideElemsFunc; |  615     this.hideElemsFunc = hideElemsFunc; | 
|  617     this.observer = new MutationObserver(this.observe.bind(this)); |  616     this.observer = new MutationObserver(this.observe.bind(this)); | 
|  618   } |  617   } | 
|  619  |  618  | 
|  620   isSameOrigin(stylesheet) |  619   isSameOrigin(stylesheet) | 
|  621   { |  620   { | 
|  622     try |  621     try | 
|  623     { |  622     { | 
|  624       return new URL(stylesheet.href).origin == this.document.location.origin; |  623       return new URL(stylesheet.href).origin == this.document.location.origin; | 
|  625     } |  624     } | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  708    * @param {function} [done] |  707    * @param {function} [done] | 
|  709    *    Callback to call when done. |  708    *    Callback to call when done. | 
|  710    */ |  709    */ | 
|  711   _addSelectors(stylesheets, mutations, done) |  710   _addSelectors(stylesheets, mutations, done) | 
|  712   { |  711   { | 
|  713     if (testInfo) |  712     if (testInfo) | 
|  714       testInfo.lastProcessedElements.clear(); |  713       testInfo.lastProcessedElements.clear(); | 
|  715  |  714  | 
|  716     let patterns = filterPatterns(this.patterns, {stylesheets, mutations}); |  715     let patterns = filterPatterns(this.patterns, {stylesheets, mutations}); | 
|  717  |  716  | 
|  718     let selectors = []; |  | 
|  719     let selectorFilters = []; |  | 
|  720  |  | 
|  721     let elements = []; |  717     let elements = []; | 
|  722     let elementFilters = []; |  718     let elementFilters = []; | 
|  723  |  719  | 
|  724     let cssStyles = []; |  720     let cssStyles = []; | 
|  725  |  721  | 
|  726     // If neither any style sheets nor any DOM mutations have been specified, |  722     // If neither any style sheets nor any DOM mutations have been specified, | 
|  727     // do full processing. |  723     // do full processing. | 
|  728     if (!stylesheets && !mutations) |  724     if (!stylesheets && !mutations) | 
|  729       stylesheets = this.document.styleSheets; |  725       stylesheets = this.document.styleSheets; | 
|  730  |  726  | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  776     let generator = null; |  772     let generator = null; | 
|  777  |  773  | 
|  778     let processPatterns = () => |  774     let processPatterns = () => | 
|  779     { |  775     { | 
|  780       let cycleStart = performance.now(); |  776       let cycleStart = performance.now(); | 
|  781  |  777  | 
|  782       if (!pattern) |  778       if (!pattern) | 
|  783       { |  779       { | 
|  784         if (!patterns.length) |  780         if (!patterns.length) | 
|  785         { |  781         { | 
|  786           if (selectors.length > 0) |  | 
|  787             this.addSelectorsFunc(selectors, selectorFilters); |  | 
|  788           if (elements.length > 0) |  782           if (elements.length > 0) | 
|  789             this.hideElemsFunc(elements, elementFilters); |  783             this.hideElemsFunc(elements, elementFilters); | 
|  790           if (typeof done == "function") |  784           if (typeof done == "function") | 
|  791             done(); |  785             done(); | 
|  792           return; |  786           return; | 
|  793         } |  787         } | 
|  794  |  788  | 
|  795         pattern = patterns.shift(); |  789         pattern = patterns.shift(); | 
|  796  |  790  | 
|  797         let evaluationTargets = targets; |  791         let evaluationTargets = targets; | 
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  971           characterData: shouldObserveCharacterData(this.patterns), |  965           characterData: shouldObserveCharacterData(this.patterns), | 
|  972           subtree: true |  966           subtree: true | 
|  973         } |  967         } | 
|  974       ); |  968       ); | 
|  975       this.document.addEventListener("load", this.onLoad.bind(this), true); |  969       this.document.addEventListener("load", this.onLoad.bind(this), true); | 
|  976     } |  970     } | 
|  977   } |  971   } | 
|  978 } |  972 } | 
|  979  |  973  | 
|  980 exports.ElemHideEmulation = ElemHideEmulation; |  974 exports.ElemHideEmulation = ElemHideEmulation; | 
| OLD | NEW |