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 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 return beforeOptions + "$" + options.join(); | 233 return beforeOptions + "$" + options.join(); |
234 }; | 234 }; |
235 | 235 |
236 /** | 236 /** |
237 * @see filterToRegExp | 237 * @see filterToRegExp |
238 */ | 238 */ |
239 Filter.toRegExp = filterToRegExp; | 239 Filter.toRegExp = filterToRegExp; |
240 | 240 |
241 /** | 241 /** |
242 * Class for invalid filters | 242 * Class for invalid filters |
243 * @param {string} text see Filter() | 243 * @param {string} text see {@link Filter Filter()} |
244 * @param {string} reason Reason why this filter is invalid | 244 * @param {string} reason Reason why this filter is invalid |
245 * @constructor | 245 * @constructor |
246 * @augments Filter | 246 * @augments Filter |
247 */ | 247 */ |
248 function InvalidFilter(text, reason) | 248 function InvalidFilter(text, reason) |
249 { | 249 { |
250 Filter.call(this, text); | 250 Filter.call(this, text); |
251 | 251 |
252 this.reason = reason; | 252 this.reason = reason; |
253 } | 253 } |
(...skipping 10 matching lines...) Expand all Loading... |
264 | 264 |
265 /** | 265 /** |
266 * See Filter.serialize() | 266 * See Filter.serialize() |
267 * @inheritdoc | 267 * @inheritdoc |
268 */ | 268 */ |
269 serialize(buffer) {} | 269 serialize(buffer) {} |
270 }); | 270 }); |
271 | 271 |
272 /** | 272 /** |
273 * Class for comments | 273 * Class for comments |
274 * @param {string} text see Filter() | 274 * @param {string} text see {@link Filter Filter()} |
275 * @constructor | 275 * @constructor |
276 * @augments Filter | 276 * @augments Filter |
277 */ | 277 */ |
278 function CommentFilter(text) | 278 function CommentFilter(text) |
279 { | 279 { |
280 Filter.call(this, text); | 280 Filter.call(this, text); |
281 } | 281 } |
282 exports.CommentFilter = CommentFilter; | 282 exports.CommentFilter = CommentFilter; |
283 | 283 |
284 CommentFilter.prototype = extend(Filter, { | 284 CommentFilter.prototype = extend(Filter, { |
285 type: "comment", | 285 type: "comment", |
286 | 286 |
287 /** | 287 /** |
288 * See Filter.serialize() | 288 * See Filter.serialize() |
289 * @inheritdoc | 289 * @inheritdoc |
290 */ | 290 */ |
291 serialize(buffer) {} | 291 serialize(buffer) {} |
292 }); | 292 }); |
293 | 293 |
294 /** | 294 /** |
295 * Abstract base class for filters that can get hits | 295 * Abstract base class for filters that can get hits |
296 * @param {string} text | 296 * @param {string} text |
297 * see Filter() | 297 * see {@link Filter Filter()} |
298 * @param {string} [domains] | 298 * @param {string} [domains] |
299 * Domains that the filter is restricted to separated by domainSeparator | 299 * Domains that the filter is restricted to separated by domainSeparator |
300 * e.g. "foo.com|bar.com|~baz.com" | 300 * e.g. "foo.com|bar.com|~baz.com" |
301 * @constructor | 301 * @constructor |
302 * @augments Filter | 302 * @augments Filter |
303 */ | 303 */ |
304 function ActiveFilter(text, domains) | 304 function ActiveFilter(text, domains) |
305 { | 305 { |
306 Filter.call(this, text); | 306 Filter.call(this, text); |
307 | 307 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 if (this._hitCount) | 552 if (this._hitCount) |
553 buffer.push("hitCount=" + this._hitCount); | 553 buffer.push("hitCount=" + this._hitCount); |
554 if (this._lastHit) | 554 if (this._lastHit) |
555 buffer.push("lastHit=" + this._lastHit); | 555 buffer.push("lastHit=" + this._lastHit); |
556 } | 556 } |
557 } | 557 } |
558 }); | 558 }); |
559 | 559 |
560 /** | 560 /** |
561 * Abstract base class for RegExp-based filters | 561 * Abstract base class for RegExp-based filters |
562 * @param {string} text see Filter() | 562 * @param {string} text see {@link Filter Filter()} |
563 * @param {string} regexpSource | 563 * @param {string} regexpSource |
564 * filter part that the regular expression should be build from | 564 * filter part that the regular expression should be build from |
565 * @param {number} [contentType] | 565 * @param {number} [contentType] |
566 * Content types the filter applies to, combination of values from | 566 * Content types the filter applies to, combination of values from |
567 * RegExpFilter.typeMap | 567 * RegExpFilter.typeMap |
568 * @param {boolean} [matchCase] | 568 * @param {boolean} [matchCase] |
569 * Defines whether the filter should distinguish between lower and upper case | 569 * Defines whether the filter should distinguish between lower and upper case |
570 * letters | 570 * letters |
571 * @param {string} [domains] | 571 * @param {string} [domains] |
572 * Domains that the filter is restricted to, e.g. "foo.com|bar.com|~baz.com" | 572 * Domains that the filter is restricted to, e.g. "foo.com|bar.com|~baz.com" |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 // shouldn't be there by default | 857 // shouldn't be there by default |
858 RegExpFilter.prototype.contentType &= ~(RegExpFilter.typeMap.CSP | | 858 RegExpFilter.prototype.contentType &= ~(RegExpFilter.typeMap.CSP | |
859 RegExpFilter.typeMap.DOCUMENT | | 859 RegExpFilter.typeMap.DOCUMENT | |
860 RegExpFilter.typeMap.ELEMHIDE | | 860 RegExpFilter.typeMap.ELEMHIDE | |
861 RegExpFilter.typeMap.POPUP | | 861 RegExpFilter.typeMap.POPUP | |
862 RegExpFilter.typeMap.GENERICHIDE | | 862 RegExpFilter.typeMap.GENERICHIDE | |
863 RegExpFilter.typeMap.GENERICBLOCK); | 863 RegExpFilter.typeMap.GENERICBLOCK); |
864 | 864 |
865 /** | 865 /** |
866 * Class for blocking filters | 866 * Class for blocking filters |
867 * @param {string} text see Filter() | 867 * @param {string} text see {@link Filter Filter()} |
868 * @param {string} regexpSource see RegExpFilter() | 868 * @param {string} regexpSource see {@link RegExpFilter RegExpFilter()} |
869 * @param {number} [contentType] see RegExpFilter() | 869 * @param {number} [contentType] see {@link RegExpFilter RegExpFilter()} |
870 * @param {boolean} [matchCase] see RegExpFilter() | 870 * @param {boolean} [matchCase] see {@link RegExpFilter RegExpFilter()} |
871 * @param {string} [domains] see RegExpFilter() | 871 * @param {string} [domains] see {@link RegExpFilter RegExpFilter()} |
872 * @param {boolean} [thirdParty] see RegExpFilter() | 872 * @param {boolean} [thirdParty] see {@link RegExpFilter RegExpFilter()} |
873 * @param {string} [sitekeys] see RegExpFilter() | 873 * @param {string} [sitekeys] see {@link RegExpFilter RegExpFilter()} |
874 * @param {boolean} [collapse] | 874 * @param {boolean} [collapse] |
875 * defines whether the filter should collapse blocked content, can be null | 875 * defines whether the filter should collapse blocked content, can be null |
876 * @param {string} [csp] | 876 * @param {string} [csp] |
877 * Content Security Policy to inject when the filter matches | 877 * Content Security Policy to inject when the filter matches |
878 * @param {?string} [rewrite] | 878 * @param {?string} [rewrite] |
879 * The (optional) rule specifying how to rewrite the URL. See | 879 * The (optional) rule specifying how to rewrite the URL. See |
880 * BlockingFilter.prototype.rewrite. | 880 * BlockingFilter.prototype.rewrite. |
881 * @constructor | 881 * @constructor |
882 * @augments RegExpFilter | 882 * @augments RegExpFilter |
883 */ | 883 */ |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
937 catch (e) | 937 catch (e) |
938 { | 938 { |
939 } | 939 } |
940 | 940 |
941 return url; | 941 return url; |
942 } | 942 } |
943 }); | 943 }); |
944 | 944 |
945 /** | 945 /** |
946 * Class for whitelist filters | 946 * Class for whitelist filters |
947 * @param {string} text see Filter() | 947 * @param {string} text see {@link Filter Filter()} |
948 * @param {string} regexpSource see RegExpFilter() | 948 * @param {string} regexpSource see {@link RegExpFilter RegExpFilter()} |
949 * @param {number} [contentType] see RegExpFilter() | 949 * @param {number} [contentType] see {@link RegExpFilter RegExpFilter()} |
950 * @param {boolean} [matchCase] see RegExpFilter() | 950 * @param {boolean} [matchCase] see {@link RegExpFilter RegExpFilter()} |
951 * @param {string} [domains] see RegExpFilter() | 951 * @param {string} [domains] see {@link RegExpFilter RegExpFilter()} |
952 * @param {boolean} [thirdParty] see RegExpFilter() | 952 * @param {boolean} [thirdParty] see {@link RegExpFilter RegExpFilter()} |
953 * @param {string} [sitekeys] see RegExpFilter() | 953 * @param {string} [sitekeys] see {@link RegExpFilter RegExpFilter()} |
954 * @constructor | 954 * @constructor |
955 * @augments RegExpFilter | 955 * @augments RegExpFilter |
956 */ | 956 */ |
957 function WhitelistFilter(text, regexpSource, contentType, matchCase, domains, | 957 function WhitelistFilter(text, regexpSource, contentType, matchCase, domains, |
958 thirdParty, sitekeys) | 958 thirdParty, sitekeys) |
959 { | 959 { |
960 RegExpFilter.call(this, text, regexpSource, contentType, matchCase, domains, | 960 RegExpFilter.call(this, text, regexpSource, contentType, matchCase, domains, |
961 thirdParty, sitekeys); | 961 thirdParty, sitekeys); |
962 } | 962 } |
963 exports.WhitelistFilter = WhitelistFilter; | 963 exports.WhitelistFilter = WhitelistFilter; |
964 | 964 |
965 WhitelistFilter.prototype = extend(RegExpFilter, { | 965 WhitelistFilter.prototype = extend(RegExpFilter, { |
966 type: "whitelist" | 966 type: "whitelist" |
967 }); | 967 }); |
968 | 968 |
969 /** | 969 /** |
970 * Base class for element hiding filters | 970 * Base class for element hiding filters |
971 * @param {string} text see Filter() | 971 * @param {string} text see {@link Filter Filter()} |
972 * @param {string} [domains] Host names or domains the filter should be | 972 * @param {string} [domains] Host names or domains the filter should be |
973 * restricted to | 973 * restricted to |
974 * @param {string} selector CSS selector for the HTML elements that should be | 974 * @param {string} selector CSS selector for the HTML elements that should be |
975 * hidden | 975 * hidden |
976 * @constructor | 976 * @constructor |
977 * @augments ActiveFilter | 977 * @augments ActiveFilter |
978 */ | 978 */ |
979 function ElemHideBase(text, domains, selector) | 979 function ElemHideBase(text, domains, selector) |
980 { | 980 { |
981 ActiveFilter.call(this, text, domains || null); | 981 ActiveFilter.call(this, text, domains || null); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1029 return new InvalidFilter(text, "filter_elemhideemulation_nodomain"); | 1029 return new InvalidFilter(text, "filter_elemhideemulation_nodomain"); |
1030 | 1030 |
1031 return new ElemHideEmulationFilter(text, domains, selector); | 1031 return new ElemHideEmulationFilter(text, domains, selector); |
1032 } | 1032 } |
1033 | 1033 |
1034 return new ElemHideFilter(text, domains, selector); | 1034 return new ElemHideFilter(text, domains, selector); |
1035 }; | 1035 }; |
1036 | 1036 |
1037 /** | 1037 /** |
1038 * Class for element hiding filters | 1038 * Class for element hiding filters |
1039 * @param {string} text see Filter() | 1039 * @param {string} text see {@link Filter Filter()} |
1040 * @param {string} [domains] see ElemHideBase() | 1040 * @param {string} [domains] see {@link ElemHideBase ElemHideBase()} |
1041 * @param {string} selector see ElemHideBase() | 1041 * @param {string} selector see {@link ElemHideBase ElemHideBase()} |
1042 * @constructor | 1042 * @constructor |
1043 * @augments ElemHideBase | 1043 * @augments ElemHideBase |
1044 */ | 1044 */ |
1045 function ElemHideFilter(text, domains, selector) | 1045 function ElemHideFilter(text, domains, selector) |
1046 { | 1046 { |
1047 ElemHideBase.call(this, text, domains, selector); | 1047 ElemHideBase.call(this, text, domains, selector); |
1048 } | 1048 } |
1049 exports.ElemHideFilter = ElemHideFilter; | 1049 exports.ElemHideFilter = ElemHideFilter; |
1050 | 1050 |
1051 ElemHideFilter.prototype = extend(ElemHideBase, { | 1051 ElemHideFilter.prototype = extend(ElemHideBase, { |
1052 type: "elemhide" | 1052 type: "elemhide" |
1053 }); | 1053 }); |
1054 | 1054 |
1055 /** | 1055 /** |
1056 * Class for element hiding exceptions | 1056 * Class for element hiding exceptions |
1057 * @param {string} text see Filter() | 1057 * @param {string} text see {@link Filter Filter()} |
1058 * @param {string} [domains] see ElemHideBase() | 1058 * @param {string} [domains] see {@link ElemHideBase ElemHideBase()} |
1059 * @param {string} selector see ElemHideBase() | 1059 * @param {string} selector see {@link ElemHideBase ElemHideBase()} |
1060 * @constructor | 1060 * @constructor |
1061 * @augments ElemHideBase | 1061 * @augments ElemHideBase |
1062 */ | 1062 */ |
1063 function ElemHideException(text, domains, selector) | 1063 function ElemHideException(text, domains, selector) |
1064 { | 1064 { |
1065 ElemHideBase.call(this, text, domains, selector); | 1065 ElemHideBase.call(this, text, domains, selector); |
1066 } | 1066 } |
1067 exports.ElemHideException = ElemHideException; | 1067 exports.ElemHideException = ElemHideException; |
1068 | 1068 |
1069 ElemHideException.prototype = extend(ElemHideBase, { | 1069 ElemHideException.prototype = extend(ElemHideBase, { |
1070 type: "elemhideexception" | 1070 type: "elemhideexception" |
1071 }); | 1071 }); |
1072 | 1072 |
1073 /** | 1073 /** |
1074 * Class for element hiding emulation filters | 1074 * Class for element hiding emulation filters |
1075 * @param {string} text see Filter() | 1075 * @param {string} text see {@link Filter Filter()} |
1076 * @param {string} domains see ElemHideBase() | 1076 * @param {string} domains see {@link ElemHideBase ElemHideBase()} |
1077 * @param {string} selector see ElemHideBase() | 1077 * @param {string} selector see {@link ElemHideBase ElemHideBase()} |
1078 * @constructor | 1078 * @constructor |
1079 * @augments ElemHideBase | 1079 * @augments ElemHideBase |
1080 */ | 1080 */ |
1081 function ElemHideEmulationFilter(text, domains, selector) | 1081 function ElemHideEmulationFilter(text, domains, selector) |
1082 { | 1082 { |
1083 ElemHideBase.call(this, text, domains, selector); | 1083 ElemHideBase.call(this, text, domains, selector); |
1084 } | 1084 } |
1085 exports.ElemHideEmulationFilter = ElemHideEmulationFilter; | 1085 exports.ElemHideEmulationFilter = ElemHideEmulationFilter; |
1086 | 1086 |
1087 ElemHideEmulationFilter.prototype = extend(ElemHideBase, { | 1087 ElemHideEmulationFilter.prototype = extend(ElemHideBase, { |
1088 type: "elemhideemulation" | 1088 type: "elemhideemulation" |
1089 }); | 1089 }); |
OLD | NEW |