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

Unified Diff: lib/filterClasses.js

Issue 29849575: Issue 6797 - Require active domains in snippet filters (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Add tests Created Aug. 7, 2018, 2:49 p.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/snippets.js » ('j') | test/snippets.js » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -1062,27 +1062,31 @@
// Note: The ContentFilter.prototype.domainSeparator is duplicated here, if
// that changes this must be changed too.
if (domains && /(^|,)~?(,|$)/.test(domains))
return new InvalidFilter(text, "filter_invalid_domain");
if (type == "@")
return new ElemHideException(text, domains, body);
- if (type == "$")
- return new SnippetFilter(text, domains, body);
-
- if (type == "?")
+ if (type == "?" || type == "$")
{
- // Element hiding emulation filters are inefficient so we need to make sure
- // that they're only applied if they specify active domains
+ // Element hiding emulation and snippet filters are inefficient so we need
+ // to make sure that they're only applied if they specify active domains
if (!/,[^~][^,.]*\.[^,]/.test("," + domains))
- return new InvalidFilter(text, "filter_elemhideemulation_nodomain");
+ {
+ return new InvalidFilter(text, type == "?" ?
+ "filter_elemhideemulation_nodomain" :
+ "filter_snippet_nodomain");
+ }
- return new ElemHideEmulationFilter(text, domains, body);
+ if (type == "?")
+ return new ElemHideEmulationFilter(text, domains, body);
+
+ return new SnippetFilter(text, domains, body);
}
return new ElemHideFilter(text, domains, body);
};
/**
* Base class for element hiding filters
* @param {string} text see {@link Filter Filter()}
« no previous file with comments | « no previous file | test/snippets.js » ('j') | test/snippets.js » ('J')

Powered by Google App Engine
This is Rietveld