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

Unified Diff: background.js

Issue 29321198: Issue 2376 - Implement custom filters in new options page (Closed)
Patch Set: removed the console.log Created July 13, 2015, 2:08 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 | locale/en-US/options.json » ('j') | messageResponder.js » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: background.js
===================================================================
--- a/background.js
+++ b/background.js
@@ -146,13 +146,60 @@
{
this.text = text;
this.disabled = false;
+ },
+ WhitelistFilter: function(text)
+ {
+ modules.filterClasses.Filter.call(this, text);
}
};
modules.filterClasses.Filter.fromText = function(text)
{
+ if (text.indexOf("@@") == 0)
+ return new modules.filterClasses.WhitelistFilter(text);
return new modules.filterClasses.Filter(text);
};
+ modules.filterValidation =
+ {
+ FilterParsingError: function(type, details)
+ {
+ this.type = type;
+ if (details)
+ {
+ if ("reason" in details)
+ this.reason = details.reason;
+ if ("selector" in details)
+ this.selector = details.selector;
+ }
Thomas Greiner 2015/07/13 15:54:21 You're not using either `FilterParsingError.reason
saroyanm 2015/07/14 10:20:58 Done.
+ },
+ parseFilter: function(text)
+ {
+ if (text)
+ {
+ if (text[0] == "[")
+ return {error: new modules.filterValidation.FilterParsingError("unexpected-filter-list-header")};
+ }
+ return {filter: modules.filterClasses.Filter.fromText(text)};
+ },
+ parseFilters: function(text)
+ {
+ var lines = text.split("\n");
+ var filters = [];
+ var errors = [];
+
+ for (var i = 0; i < lines.length; i++)
+ {
+ var parseResult = modules.filterValidation.parseFilter(lines[i]);
+ if (parseResult.error)
+ errors.push(parseResult.error);
+ else
+ filters.push(parseResult.filter);
+ }
+
+ return {filters: filters, errors: errors};
+ }
+ };
+
modules.synchronizer = {
Synchronizer: {}
};
@@ -221,7 +268,23 @@
"@@||alternate.de^$document",
"@@||der.postillion.com^$document",
"@@||taz.de^$document",
- "@@||amazon.de^$document"
+ "@@||amazon.de^$document",
+ "||biglemon.am/bg_poster/banner.jpg",
+ "winfuture.de###header_logo_link",
+ "###WerbungObenRechts10_GesamtDIV",
+ "###WerbungObenRechts8_GesamtDIV",
+ "###WerbungObenRechts9_GesamtDIV",
+ "###WerbungUntenLinks4_GesamtDIV",
+ "###WerbungUntenLinks7_GesamtDIV",
+ "###WerbungUntenLinks8_GesamtDIV",
+ "###WerbungUntenLinks9_GesamtDIV",
+ "###Werbung_Sky",
+ "###Werbung_Wide",
+ "###__ligatus_placeholder__",
+ "###ad-bereich1-08",
+ "###ad-bereich1-superbanner",
+ "###ad-bereich2-08",
+ "###ad-bereich2-skyscrapper"
];
var knownFilters = filters.map(modules.filterClasses.Filter.fromText);
« no previous file with comments | « no previous file | locale/en-US/options.json » ('j') | messageResponder.js » ('J')

Powered by Google App Engine
This is Rietveld