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

Unified Diff: lib/filterClasses.js

Issue 29801609: Issue 6733 - Allow empty values in filter options (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Created June 7, 2018, 11:51 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/filterClasses.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -92,17 +92,17 @@
* Regular expression that RegExp filters specified as RegExps should match
* @type {RegExp}
*/
Filter.regexpRegExp = /^(@@)?\/.*\/(?:\$~?[\w-]+(?:=[^,\s]+)?(?:,~?[\w-]+(?:=[^,\s]+)?)*)?$/;
/**
* Regular expression that options on a RegExp filter should match
* @type {RegExp}
*/
-Filter.optionsRegExp = /\$(~?[\w-]+(?:=[^,]+)?(?:,~?[\w-]+(?:=[^,]+)?)*)$/;
+Filter.optionsRegExp = /\$(~?[\w-]+(?:=[^,]*)?(?:,~?[\w-]+(?:=[^,]*)?)*)$/;
/**
* Regular expression that matches an invalid Content Security Policy
* @type {RegExp}
*/
Filter.invalidCSPRegExp = /(;|^) ?(base-uri|referrer|report-to|report-uri|upgrade-insecure-requests)\b/i;
/**
* Creates a filter of correct type from its text representation - does the
@@ -584,17 +584,17 @@
ActiveFilter.call(this, text, domains, sitekeys);
if (contentType != null)
this.contentType = contentType;
if (matchCase)
this.matchCase = matchCase;
if (thirdParty != null)
this.thirdParty = thirdParty;
- if (sitekeys != null)
kzar 2018/06/07 13:21:56 How come you remove this check here, but add it fo
Manish Jethani 2018/06/25 13:13:44 There's an explanation, but no longer relevant.
+ if (sitekeys)
this.sitekeySource = sitekeys;
if (regexpSource.length >= 2 &&
regexpSource[0] == "/" &&
regexpSource[regexpSource.length - 1] == "/")
{
// The filter is a regular expression - convert it immediately to
// catch syntax errors
@@ -770,29 +770,29 @@
if (contentType == null)
({contentType} = RegExpFilter.prototype);
contentType &= ~RegExpFilter.typeMap[option.substr(1)];
}
else if (option == "MATCH_CASE")
matchCase = true;
else if (option == "~MATCH_CASE")
matchCase = false;
- else if (option == "DOMAIN" && value)
+ else if (option == "DOMAIN" && value != null)
domains = value.toUpperCase();
else if (option == "THIRD_PARTY")
thirdParty = true;
else if (option == "~THIRD_PARTY")
thirdParty = false;
else if (option == "COLLAPSE")
collapse = true;
else if (option == "~COLLAPSE")
collapse = false;
- else if (option == "SITEKEY" && value)
+ else if (option == "SITEKEY" && value != null)
sitekeys = value.toUpperCase();
- else if (option == "REWRITE" && value)
+ else if (option == "REWRITE" && value != null)
kzar 2018/06/07 13:21:56 Come to think of it, why don't we just allow the $
Manish Jethani 2018/06/25 13:13:44 We could do that but it would be weird to allow $r
rewrite = value;
else
return new InvalidFilter(origText, "filter_unknown_option");
}
}
// For security reasons, never match $rewrite filters
// against requests that might load any code to be executed.
« no previous file with comments | « no previous file | test/filterClasses.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld