| Index: lib/filterClasses.js |
| diff --git a/lib/filterClasses.js b/lib/filterClasses.js |
| index 6bc6f29fdbf938c2d3b9a811bff24f9d85020ae0..90a79ec17c8bdc8e51524c18c318174b270a59c0 100644 |
| --- a/lib/filterClasses.js |
| +++ b/lib/filterClasses.js |
| @@ -625,15 +625,15 @@ RegExpFilter.prototype = |
| /** |
| * Tests whether the URL matches this filter |
| * @param {String} location URL to be tested |
| - * @param {String} contentType content type identifier of the URL |
| + * @param {String} typeMask bitmask of content / request types to match |
| * @param {String} docDomain domain name of the document that loads the URL |
| * @param {Boolean} thirdParty should be true if the URL is a third-party request |
| * @param {String} sitekey public key provided by the document |
| * @return {Boolean} true in case of a match |
| */ |
| - matches: function(location, contentType, docDomain, thirdParty, sitekey) |
| + matches: function(location, typeMask, docDomain, thirdParty, sitekey) |
| { |
| - if ((RegExpFilter.typeMap[contentType] & this.contentType) != 0 && |
| + if ((this.contentType & typeMask) != 0 && |
|
Sebastian Noack
2015/07/09 15:36:44
Note that |!= 0| is unneeded here.
kzar
2015/07/12 13:59:39
Done.
|
| (this.thirdParty == null || this.thirdParty == thirdParty) && |
| this.isActiveOnDomain(docDomain, sitekey) && this.regexp.test(location)) |
| { |
| @@ -761,6 +761,22 @@ RegExpFilter.typeMap = { |
| RegExpFilter.prototype.contentType &= ~(RegExpFilter.typeMap.DOCUMENT | RegExpFilter.typeMap.ELEMHIDE | RegExpFilter.typeMap.POPUP); |
| /** |
| + * Creates a content / request type mask from a content type string or |
| + * array of content type strings. |
| + * @param {String} [contentType] content / request type string(s) |
| + */ |
| +RegExpFilter.toTypeMask = function (contentType) |
|
Sebastian Noack
2015/07/09 15:36:44
I feel that this function just adds unneeded compl
kzar
2015/07/09 17:44:18
I've got to say I agree with you here, the few tim
Wladimir Palant
2015/07/10 21:07:00
Not really sure this is a good idea but well - let
kzar
2015/07/12 13:59:39
Done.
|
| +{ |
| + if (typeof contentType == "string") |
| + return RegExpFilter.typeMap[contentType]; |
| + |
| + var mask = 0; |
| + for (let type of contentType) |
| + mask |= RegExpFilter.typeMap[type]; |
| + return mask; |
| +}; |
| + |
| +/** |
| * Class for blocking filters |
| * @param {String} text see Filter() |
| * @param {String} regexpSource see RegExpFilter() |