Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/content/elemHideEmulation.js

Issue 29884580: Issue 6504 - Remove element hiding emulation code related to style sheets (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Add comment in constructor Created Sept. 19, 2018, 1:23 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(addSelectorsFunc, hideElemsFunc)
609 { 609 {
610 // Note: The first parameter to this constructor was previously used for
611 // injecting style sheets into the document for :-abp-properties() but this
612 // code has since moved on to use inline styles for all types of emulation
613 // filters (#6610). Nevertheless, there is a plan to go back to using style
614 // sheets on platforms that support the tabs.removeCSS API (#6504); hence
615 // this first parameter remains for now.
616
610 this._filteringInProgress = false; 617 this._filteringInProgress = false;
611 this._lastInvocation = -MIN_INVOCATION_INTERVAL; 618 this._lastInvocation = -MIN_INVOCATION_INTERVAL;
612 this._scheduledProcessing = null; 619 this._scheduledProcessing = null;
613 620
614 this.document = document; 621 this.document = document;
615 this.addSelectorsFunc = addSelectorsFunc;
616 this.hideElemsFunc = hideElemsFunc; 622 this.hideElemsFunc = hideElemsFunc;
617 this.observer = new MutationObserver(this.observe.bind(this)); 623 this.observer = new MutationObserver(this.observe.bind(this));
618 } 624 }
619 625
620 isSameOrigin(stylesheet) 626 isSameOrigin(stylesheet)
621 { 627 {
622 try 628 try
623 { 629 {
624 return new URL(stylesheet.href).origin == this.document.location.origin; 630 return new URL(stylesheet.href).origin == this.document.location.origin;
625 } 631 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 * @param {function} [done] 714 * @param {function} [done]
709 * Callback to call when done. 715 * Callback to call when done.
710 */ 716 */
711 _addSelectors(stylesheets, mutations, done) 717 _addSelectors(stylesheets, mutations, done)
712 { 718 {
713 if (testInfo) 719 if (testInfo)
714 testInfo.lastProcessedElements.clear(); 720 testInfo.lastProcessedElements.clear();
715 721
716 let patterns = filterPatterns(this.patterns, {stylesheets, mutations}); 722 let patterns = filterPatterns(this.patterns, {stylesheets, mutations});
717 723
718 let selectors = [];
719 let selectorFilters = [];
720
721 let elements = []; 724 let elements = [];
722 let elementFilters = []; 725 let elementFilters = [];
723 726
724 let cssStyles = []; 727 let cssStyles = [];
725 728
726 // If neither any style sheets nor any DOM mutations have been specified, 729 // If neither any style sheets nor any DOM mutations have been specified,
727 // do full processing. 730 // do full processing.
728 if (!stylesheets && !mutations) 731 if (!stylesheets && !mutations)
729 stylesheets = this.document.styleSheets; 732 stylesheets = this.document.styleSheets;
730 733
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 let generator = null; 779 let generator = null;
777 780
778 let processPatterns = () => 781 let processPatterns = () =>
779 { 782 {
780 let cycleStart = performance.now(); 783 let cycleStart = performance.now();
781 784
782 if (!pattern) 785 if (!pattern)
783 { 786 {
784 if (!patterns.length) 787 if (!patterns.length)
785 { 788 {
786 if (selectors.length > 0)
787 this.addSelectorsFunc(selectors, selectorFilters);
788 if (elements.length > 0) 789 if (elements.length > 0)
789 this.hideElemsFunc(elements, elementFilters); 790 this.hideElemsFunc(elements, elementFilters);
790 if (typeof done == "function") 791 if (typeof done == "function")
791 done(); 792 done();
792 return; 793 return;
793 } 794 }
794 795
795 pattern = patterns.shift(); 796 pattern = patterns.shift();
796 797
797 let evaluationTargets = targets; 798 let evaluationTargets = targets;
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 characterData: shouldObserveCharacterData(this.patterns), 972 characterData: shouldObserveCharacterData(this.patterns),
972 subtree: true 973 subtree: true
973 } 974 }
974 ); 975 );
975 this.document.addEventListener("load", this.onLoad.bind(this), true); 976 this.document.addEventListener("load", this.onLoad.bind(this), true);
976 } 977 }
977 } 978 }
978 } 979 }
979 980
980 exports.ElemHideEmulation = ElemHideEmulation; 981 exports.ElemHideEmulation = ElemHideEmulation;
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld