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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 * @type {Map.<string,Filter>} | 88 * @type {Map.<string,Filter>} |
89 */ | 89 */ |
90 Filter.knownFilters = new Map(); | 90 Filter.knownFilters = new Map(); |
91 | 91 |
92 /** | 92 /** |
93 * Regular expression that content filters should match | 93 * Regular expression that content filters should match |
94 * @type {RegExp} | 94 * @type {RegExp} |
95 */ | 95 */ |
96 Filter.contentRegExp = /^([^/*|@"!]*?)#([@?$])?#(.+)$/; | 96 Filter.contentRegExp = /^([^/*|@"!]*?)#([@?$])?#(.+)$/; |
97 /** | 97 /** |
98 * Regular expression that RegExp filters specified as RegExps should match | |
99 * @type {RegExp} | |
100 */ | |
101 Filter.regexpRegExp = /^(@@)?\/.*\/(?:\$~?[\w-]+(?:=[^,\s]+)?(?:,~?[\w-]+(?:=[^,
\s]+)?)*)?$/; | |
102 /** | |
103 * Regular expression that options on a RegExp filter should match | 98 * Regular expression that options on a RegExp filter should match |
104 * @type {RegExp} | 99 * @type {RegExp} |
105 */ | 100 */ |
106 Filter.optionsRegExp = /\$(~?[\w-]+(?:=[^,]*)?(?:,~?[\w-]+(?:=[^,]*)?)*)$/; | 101 Filter.optionsRegExp = /\$(~?[\w-]+(?:=[^,]*)?(?:,~?[\w-]+(?:=[^,]*)?)*)$/; |
107 /** | 102 /** |
108 * Regular expression that matches an invalid Content Security Policy | 103 * Regular expression that matches an invalid Content Security Policy |
109 * @type {RegExp} | 104 * @type {RegExp} |
110 */ | 105 */ |
111 Filter.invalidCSPRegExp = /(;|^) ?(base-uri|referrer|report-to|report-uri|upgrad
e-insecure-requests)\b/i; | 106 Filter.invalidCSPRegExp = /(;|^) ?(base-uri|referrer|report-to|report-uri|upgrad
e-insecure-requests)\b/i; |
112 | 107 |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 { | 601 { |
607 // The filter is a regular expression - convert it immediately to | 602 // The filter is a regular expression - convert it immediately to |
608 // catch syntax errors | 603 // catch syntax errors |
609 let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), | 604 let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), |
610 this.matchCase ? "" : "i"); | 605 this.matchCase ? "" : "i"); |
611 Object.defineProperty(this, "regexp", {value: regexp}); | 606 Object.defineProperty(this, "regexp", {value: regexp}); |
612 } | 607 } |
613 else | 608 else |
614 { | 609 { |
615 // No need to convert this filter to regular expression yet, do it on demand | 610 // No need to convert this filter to regular expression yet, do it on demand |
616 this.regexpSource = regexpSource; | 611 this.pattern = regexpSource; |
617 } | 612 } |
618 } | 613 } |
619 exports.RegExpFilter = RegExpFilter; | 614 exports.RegExpFilter = RegExpFilter; |
620 | 615 |
621 RegExpFilter.prototype = extend(ActiveFilter, { | 616 RegExpFilter.prototype = extend(ActiveFilter, { |
622 /** | 617 /** |
623 * @see ActiveFilter.domainSourceIsLowerCase | 618 * @see ActiveFilter.domainSourceIsLowerCase |
624 */ | 619 */ |
625 domainSourceIsLowerCase: true, | 620 domainSourceIsLowerCase: true, |
626 | 621 |
(...skipping 14 matching lines...) Expand all Loading... |
641 }, | 636 }, |
642 | 637 |
643 /** | 638 /** |
644 * @see ActiveFilter.domainSeparator | 639 * @see ActiveFilter.domainSeparator |
645 */ | 640 */ |
646 domainSeparator: "|", | 641 domainSeparator: "|", |
647 | 642 |
648 /** | 643 /** |
649 * Expression from which a regular expression should be generated - | 644 * Expression from which a regular expression should be generated - |
650 * for delayed creation of the regexp property | 645 * for delayed creation of the regexp property |
651 * @type {string} | 646 * @type {?string} |
652 */ | 647 */ |
653 regexpSource: null, | 648 pattern: null, |
654 /** | 649 /** |
655 * Regular expression to be used when testing against this filter | 650 * Regular expression to be used when testing against this filter |
656 * @type {RegExp} | 651 * @type {RegExp} |
657 */ | 652 */ |
658 get regexp() | 653 get regexp() |
659 { | 654 { |
660 let source = filterToRegExp(this.regexpSource); | 655 let source = filterToRegExp(this.pattern); |
661 let regexp = new RegExp(source, this.matchCase ? "" : "i"); | 656 let regexp = new RegExp(source, this.matchCase ? "" : "i"); |
662 Object.defineProperty(this, "regexp", {value: regexp}); | 657 Object.defineProperty(this, "regexp", {value: regexp}); |
663 this.regexpSource = null; | |
664 return regexp; | 658 return regexp; |
665 }, | 659 }, |
666 /** | 660 /** |
667 * Content types the filter applies to, combination of values from | 661 * Content types the filter applies to, combination of values from |
668 * RegExpFilter.typeMap | 662 * RegExpFilter.typeMap |
669 * @type {number} | 663 * @type {number} |
670 */ | 664 */ |
671 contentType: 0x7FFFFFFF, | 665 contentType: 0x7FFFFFFF, |
672 /** | 666 /** |
673 * Defines whether the filter should distinguish between lower and | 667 * Defines whether the filter should distinguish between lower and |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1181 | 1175 |
1182 /** | 1176 /** |
1183 * Script that should be executed | 1177 * Script that should be executed |
1184 * @type {string} | 1178 * @type {string} |
1185 */ | 1179 */ |
1186 get script() | 1180 get script() |
1187 { | 1181 { |
1188 return this.body; | 1182 return this.body; |
1189 } | 1183 } |
1190 }); | 1184 }); |
OLD | NEW |