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

Delta Between Two Patch Sets: lib/matcher.js

Issue 30007559: Issue 7285 - Abstract caching logic (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Left Patch Set: Created Feb. 14, 2019, 5:36 a.m.
Right Patch Set: Add tests and change API and behavior slightly Created Feb. 16, 2019, 12:14 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« lib/caching.js ('K') | « lib/elemHide.js ('k') | test/caching.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 798
799 /** 799 /**
800 * @see Matcher#matchesAny 800 * @see Matcher#matchesAny
801 * @inheritdoc 801 * @inheritdoc
802 */ 802 */
803 matchesAny(location, typeMask, docDomain, thirdParty, sitekey, specificOnly) 803 matchesAny(location, typeMask, docDomain, thirdParty, sitekey, specificOnly)
804 { 804 {
805 let key = location + " " + typeMask + " " + docDomain + " " + thirdParty + 805 let key = location + " " + typeMask + " " + docDomain + " " + thirdParty +
806 " " + sitekey + " " + specificOnly; 806 " " + sitekey + " " + specificOnly;
807 807
808 let result = this._resultCache.read(key); 808 let result = this._resultCache.get(key);
809 if (typeof result != "undefined") 809 if (typeof result != "undefined")
810 return result; 810 return result;
811 811
812 result = this._matchesAnyInternal(location, typeMask, docDomain, 812 result = this._matchesAnyInternal(location, typeMask, docDomain,
813 thirdParty, sitekey, specificOnly); 813 thirdParty, sitekey, specificOnly);
814 814
815 this._resultCache.save(key, result); 815 this._resultCache.set(key, result);
816 816
817 return result; 817 return result;
818 } 818 }
819 819
820 /** 820 /**
821 * @typedef {object} MatcherSearchResults 821 * @typedef {object} MatcherSearchResults
822 * @property {Array.<BlockingFilter>} [blocking] List of blocking filters 822 * @property {Array.<BlockingFilter>} [blocking] List of blocking filters
823 * found. 823 * found.
824 * @property {Array.<WhitelistFilter>} [whitelist] List of whitelist filters 824 * @property {Array.<WhitelistFilter>} [whitelist] List of whitelist filters
825 * found. 825 * found.
(...skipping 15 matching lines...) Expand all
841 * 841 *
842 * @returns {MatcherSearchResults} 842 * @returns {MatcherSearchResults}
843 */ 843 */
844 search(location, typeMask, docDomain, thirdParty, sitekey, specificOnly, 844 search(location, typeMask, docDomain, thirdParty, sitekey, specificOnly,
845 filterType = "all") 845 filterType = "all")
846 { 846 {
847 let key = "* " + location + " " + typeMask + " " + docDomain + " " + 847 let key = "* " + location + " " + typeMask + " " + docDomain + " " +
848 thirdParty + " " + sitekey + " " + specificOnly + " " + 848 thirdParty + " " + sitekey + " " + specificOnly + " " +
849 filterType; 849 filterType;
850 850
851 let result = this._resultCache.read(key); 851 let result = this._resultCache.get(key);
852 if (typeof result != "undefined") 852 if (typeof result != "undefined")
853 return result; 853 return result;
854 854
855 result = this._searchInternal(location, typeMask, docDomain, thirdParty, 855 result = this._searchInternal(location, typeMask, docDomain, thirdParty,
856 sitekey, specificOnly, filterType); 856 sitekey, specificOnly, filterType);
857 857
858 this._resultCache.save(key, result); 858 this._resultCache.set(key, result);
859 859
860 return result; 860 return result;
861 } 861 }
862 862
863 /** 863 /**
864 * Tests whether the URL is whitelisted 864 * Tests whether the URL is whitelisted
865 * @see Matcher#matchesAny 865 * @see Matcher#matchesAny
866 * @inheritdoc 866 * @inheritdoc
867 * @returns {boolean} 867 * @returns {boolean}
868 */ 868 */
869 isWhitelisted(location, typeMask, docDomain, thirdParty, sitekey) 869 isWhitelisted(location, typeMask, docDomain, thirdParty, sitekey)
870 { 870 {
871 return !!this._whitelist.matchesAny(location, typeMask, docDomain, 871 return !!this._whitelist.matchesAny(location, typeMask, docDomain,
872 thirdParty, sitekey); 872 thirdParty, sitekey);
873 } 873 }
874 } 874 }
875 875
876 exports.CombinedMatcher = CombinedMatcher; 876 exports.CombinedMatcher = CombinedMatcher;
877 877
878 /** 878 /**
879 * Shared {@link CombinedMatcher} instance that should usually be used. 879 * Shared {@link CombinedMatcher} instance that should usually be used.
880 * @type {CombinedMatcher} 880 * @type {CombinedMatcher}
881 */ 881 */
882 let defaultMatcher = new CombinedMatcher(); 882 let defaultMatcher = new CombinedMatcher();
883 883
884 exports.defaultMatcher = defaultMatcher; 884 exports.defaultMatcher = defaultMatcher;
LEFTRIGHT

Powered by Google App Engine
This is Rietveld