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

Unified Diff: lib/filterClasses.js

Issue 29329521: Issue 3222 - Expose filter type as a string property (Closed)
Patch Set: Created Oct. 29, 2015, 7:41 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
Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -45,16 +45,25 @@ Filter.prototype =
/**
* Filter subscriptions the filter belongs to
* @type Subscription[]
*/
subscriptions: null,
/**
+ * Filter type as a string, e.g. "blocking".
+ * @type String
+ */
+ get type()
+ {
+ throw new Error("Please define filter type in the subclass");
+ },
+
+ /**
* Serializes the filter to an array of strings for writing out on the disk.
* @param {string[]} buffer buffer to push the serialization results into
*/
serialize: function(buffer)
{
buffer.push("[Filter]");
buffer.push("text=" + this.text);
},
@@ -201,16 +210,18 @@ function InvalidFilter(text, reason)
this.reason = reason;
}
exports.InvalidFilter = InvalidFilter;
InvalidFilter.prototype =
{
__proto__: Filter.prototype,
+ type: "invalid",
+
/**
* Reason why this filter is invalid
* @type String
*/
reason: null,
/**
* See Filter.serialize()
@@ -229,16 +240,18 @@ function CommentFilter(text)
Filter.call(this, text);
}
exports.CommentFilter = CommentFilter;
CommentFilter.prototype =
{
__proto__: Filter.prototype,
+ type: "comment",
+
/**
* See Filter.serialize()
*/
serialize: function(buffer) {}
};
/**
* Abstract base class for filters that can get hits
@@ -796,16 +809,18 @@ function BlockingFilter(text, regexpSour
this.collapse = collapse;
}
exports.BlockingFilter = BlockingFilter;
BlockingFilter.prototype =
{
__proto__: RegExpFilter.prototype,
+ type: "blocking",
+
/**
* Defines whether the filter should collapse blocked content. Can be null (use the global preference).
* @type Boolean
*/
collapse: null
};
/**
@@ -823,17 +838,19 @@ BlockingFilter.prototype =
function WhitelistFilter(text, regexpSource, contentType, matchCase, domains, thirdParty, sitekeys)
{
RegExpFilter.call(this, text, regexpSource, contentType, matchCase, domains, thirdParty, sitekeys);
}
exports.WhitelistFilter = WhitelistFilter;
WhitelistFilter.prototype =
{
- __proto__: RegExpFilter.prototype
+ __proto__: RegExpFilter.prototype,
+
+ type: "whitelist"
};
/**
* Base class for element hiding filters
* @param {String} text see Filter()
* @param {String} [domains] Host names or domains the filter should be restricted to
* @param {String} selector CSS selector for the HTML elements that should be hidden
* @constructor
@@ -954,17 +971,19 @@ ElemHideBase.fromText = function(text, d
function ElemHideFilter(text, domains, selector)
{
ElemHideBase.call(this, text, domains, selector);
}
exports.ElemHideFilter = ElemHideFilter;
ElemHideFilter.prototype =
{
- __proto__: ElemHideBase.prototype
+ __proto__: ElemHideBase.prototype,
+
+ type: "elemhide"
};
/**
* Class for element hiding exceptions
* @param {String} text see Filter()
* @param {String} domains see ElemHideBase()
* @param {String} selector see ElemHideBase()
* @constructor
@@ -973,17 +992,19 @@ ElemHideFilter.prototype =
function ElemHideException(text, domains, selector)
{
ElemHideBase.call(this, text, domains, selector);
}
exports.ElemHideException = ElemHideException;
ElemHideException.prototype =
{
- __proto__: ElemHideBase.prototype
+ __proto__: ElemHideBase.prototype,
+
+ type: "elemhideexception"
};
/**
* Class for CSS property filters
* @param {String} text see Filter()
* @param {String} domains see ElemHideBase()
* @param {String} selector see ElemHideBase()
* @param {String} regexpSource see CSSPropertyFilter.regexpSource
@@ -1002,16 +1023,18 @@ function CSSPropertyFilter(text, domains
this.selectorSuffix = selectorSuffix;
}
exports.CSSPropertyFilter = CSSPropertyFilter;
CSSPropertyFilter.prototype =
{
__proto__: ElemHideBase.prototype,
+ type: "cssproperty",
+
/**
* Expression from which a regular expression should be generated for matching
* CSS properties - for delayed creation of the regexpString property
* @type String
*/
regexpSource: null,
/**
* Substring of CSS selector before properties for the HTML elements that
« no previous file with comments | « chrome/skin/filters.css ('k') | lib/requestNotifier.js » ('j') | lib/requestNotifier.js » ('J')

Powered by Google App Engine
This is Rietveld